From d1176af452aa3377ecc1e559f5f5082e3dd58c66 Mon Sep 17 00:00:00 2001 From: Mantaroh Yoshinaga Date: Thu, 23 Aug 2018 05:24:35 +0000 Subject: [PATCH 01/34] Bug 1480149 - Disable tab animations for users who prefer reduced animation. r=birtles This patch will use the 'prefers-reduced-motion' in order to disable the tab animations. Differential Revision: https://phabricator.services.mozilla.com/D4042 --HG-- extra : moz-landing-system : lando --- devtools/client/themes/common.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/devtools/client/themes/common.css b/devtools/client/themes/common.css index 4837b23cca77..51924964fb70 100644 --- a/devtools/client/themes/common.css +++ b/devtools/client/themes/common.css @@ -780,6 +780,12 @@ checkbox:-moz-focusring { transform: scaleX(1); } +@media (prefers-reduced-motion) { + .devtools-tab-line { + transition: none; + } +} + .devtools-tab:not(.selected):focus .devtools-tab-line { background: var(--tab-line-hover-color); opacity: 1; From a735040675bbe9fca8e713eb89bd5bbcb2d7c99a Mon Sep 17 00:00:00 2001 From: Jan Odvarko Date: Thu, 23 Aug 2018 07:36:08 +0000 Subject: [PATCH 02/34] Bug 1333994 - The network tab should flag resources on the tracking protection list; r=ochameau Differential Revision: https://phabricator.services.mozilla.com/D3862 --HG-- extra : moz-landing-system : lando --- devtools/client/jar.mn | 1 + .../locales/en-US/netmonitor.properties | 4 ++ .../netmonitor/src/assets/icons/shield.svg | 7 ++++ .../src/assets/styles/RequestList.css | 10 +++++ .../src/components/RequestListColumnDomain.js | 4 ++ .../src/connector/firefox-data-provider.js | 8 +++- devtools/client/netmonitor/src/constants.js | 1 + devtools/client/netmonitor/test/browser.ini | 2 + .../test/browser_net_tracking-resources.js | 39 +++++++++++++++++++ .../test/html_tracking-protection.html | 12 ++++++ .../test/fixtures/stubs/networkEvent.js | 3 ++ devtools/server/actors/network-event.js | 2 + .../network-monitor/network-observer.js | 3 +- devtools/shared/webconsole/client.js | 3 +- 14 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 devtools/client/netmonitor/src/assets/icons/shield.svg create mode 100644 devtools/client/netmonitor/test/browser_net_tracking-resources.js create mode 100644 devtools/client/netmonitor/test/html_tracking-protection.html diff --git a/devtools/client/jar.mn b/devtools/client/jar.mn index a5ff8e7a8be8..d1e1f17899bb 100644 --- a/devtools/client/jar.mn +++ b/devtools/client/jar.mn @@ -303,6 +303,7 @@ devtools.jar: content/netmonitor/src/assets/styles/Toolbar.css (netmonitor/src/assets/styles/Toolbar.css) content/netmonitor/src/assets/styles/variables.css (netmonitor/src/assets/styles/variables.css) content/netmonitor/src/assets/icons/play.svg (netmonitor/src/assets/icons/play.svg) + content/netmonitor/src/assets/icons/shield.svg (netmonitor/src/assets/icons/shield.svg) content/netmonitor/index.html (netmonitor/index.html) # Application panel diff --git a/devtools/client/locales/en-US/netmonitor.properties b/devtools/client/locales/en-US/netmonitor.properties index a68014c2a532..09572cafb215 100644 --- a/devtools/client/locales/en-US/netmonitor.properties +++ b/devtools/client/locales/en-US/netmonitor.properties @@ -868,6 +868,10 @@ netmonitor.security.connection=Connection: # in the security tab describing the server certificate section. netmonitor.security.certificate=Certificate: +# LOCALIZATION NOTE (netmonitor.trackingResource.tooltip): This is the label used +# in the Network monitor panel as a tooltip for tracking resource icon. +netmonitor.trackingResource.tooltip=This URL matches a known tracker and it would be blocked with Content Blocking enabled. + # LOCALIZATION NOTE (netmonitor.context.copy): This is the label displayed # for the copy sub-menu in the context menu for a request netmonitor.context.copy=Copy diff --git a/devtools/client/netmonitor/src/assets/icons/shield.svg b/devtools/client/netmonitor/src/assets/icons/shield.svg new file mode 100644 index 000000000000..dd5bf9522cdc --- /dev/null +++ b/devtools/client/netmonitor/src/assets/icons/shield.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/devtools/client/netmonitor/src/assets/styles/RequestList.css b/devtools/client/netmonitor/src/assets/styles/RequestList.css index fb154720e17b..55eeeb286cf3 100644 --- a/devtools/client/netmonitor/src/assets/styles/RequestList.css +++ b/devtools/client/netmonitor/src/assets/styles/RequestList.css @@ -386,6 +386,16 @@ background-image: url(chrome://devtools/skin/images/globe.svg); } +.tracking-resource { + display: inline-block; + width: 16px; + height: 16px; + margin: 0 3px 0 -3px; + vertical-align: text-bottom; + background-image: url(chrome://devtools/content/netmonitor/src/assets/icons/shield.svg); + background-repeat: no-repeat; +} + /* RemoteIP column */ .requests-list-remoteip { diff --git a/devtools/client/netmonitor/src/components/RequestListColumnDomain.js b/devtools/client/netmonitor/src/components/RequestListColumnDomain.js index c96796837e3f..c4d420686f56 100644 --- a/devtools/client/netmonitor/src/components/RequestListColumnDomain.js +++ b/devtools/client/netmonitor/src/components/RequestListColumnDomain.js @@ -55,6 +55,10 @@ class RequestListColumnDomain extends Component { onMouseDown: onSecurityIconMouseDown, title: iconTitle, }), + item.isTrackingResource && div({ + className: "tracking-resource", + title: L10N.getStr("netmonitor.trackingResource.tooltip"), + }), host, ) ); diff --git a/devtools/client/netmonitor/src/connector/firefox-data-provider.js b/devtools/client/netmonitor/src/connector/firefox-data-provider.js index 96e615fd4799..5a8fe292fad5 100644 --- a/devtools/client/netmonitor/src/connector/firefox-data-provider.js +++ b/devtools/client/netmonitor/src/connector/firefox-data-provider.js @@ -71,6 +71,7 @@ class FirefoxDataProvider { startedDateTime, fromCache, fromServiceWorker, + isTrackingResource, } = data; if (this.actionsEnabled && this.actions.addRequest) { @@ -89,6 +90,7 @@ class FirefoxDataProvider { fromCache, fromServiceWorker, + isTrackingResource, }, true); } @@ -323,6 +325,7 @@ class FirefoxDataProvider { url, }, startedDateTime, + isTrackingResource, } = networkInfo; await this.addRequest(actor, { @@ -333,6 +336,7 @@ class FirefoxDataProvider { method, startedDateTime, url, + isTrackingResource, }); this.emit(EVENTS.NETWORK_EVENT, actor); @@ -351,7 +355,9 @@ class FirefoxDataProvider { switch (updateType) { case "securityInfo": - this.pushRequestToQueue(actor, { securityState: networkInfo.securityState }); + this.pushRequestToQueue(actor, { + securityState: networkInfo.securityState + }); break; case "responseStart": this.pushRequestToQueue(actor, { diff --git a/devtools/client/netmonitor/src/constants.js b/devtools/client/netmonitor/src/constants.js index 54772fea700d..147f15d27124 100644 --- a/devtools/client/netmonitor/src/constants.js +++ b/devtools/client/netmonitor/src/constants.js @@ -146,6 +146,7 @@ const UPDATE_PROPS = [ "responseCacheAvailable", "formDataSections", "stacktrace", + "isTrackingResource", ]; const PANELS = { diff --git a/devtools/client/netmonitor/test/browser.ini b/devtools/client/netmonitor/test/browser.ini index d68027aa5d6d..ad2f8abf9b55 100644 --- a/devtools/client/netmonitor/test/browser.ini +++ b/devtools/client/netmonitor/test/browser.ini @@ -37,6 +37,7 @@ support-files = html_sorting-test-page.html html_statistics-test-page.html html_status-codes-test-page.html + html_tracking-protection.html html_api-calls-test-page.html html_copy-as-curl.html html_curl-utils.html @@ -194,6 +195,7 @@ skip-if = true # Bug 1373558 [browser_net_timeline_ticks.js] skip-if = true # TODO: fix the test [browser_net_timing-division.js] +[browser_net_tracking-resources.js] [browser_net_truncate.js] [browser_net_view-source-debugger.js] [browser_net_waterfall-click.js] diff --git a/devtools/client/netmonitor/test/browser_net_tracking-resources.js b/devtools/client/netmonitor/test/browser_net_tracking-resources.js new file mode 100644 index 000000000000..b7fc2d6ffcf7 --- /dev/null +++ b/devtools/client/netmonitor/test/browser_net_tracking-resources.js @@ -0,0 +1,39 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const { UrlClassifierTestUtils } = + ChromeUtils.import("resource://testing-common/UrlClassifierTestUtils.jsm", {}); + +const TEST_URI = "http://tracking.example.org/browser/devtools/client/" + + "netmonitor/test/html_tracking-protection.html"; + +registerCleanupFunction(function() { + UrlClassifierTestUtils.cleanupTestTrackers(); +}); + +/** + * Test that tracking resources are properly marked in the Network panel. + */ +add_task(async function() { + await UrlClassifierTestUtils.addTestTrackers(); + + const { tab, monitor } = await initNetMonitor(TEST_URI); + info("Starting test..."); + + const { document, store, windowRequire } = monitor.panelWin; + const Actions = windowRequire("devtools/client/netmonitor/src/actions/index"); + + store.dispatch(Actions.batchEnable(false)); + + // Reload the page + const wait = waitForAllRequestsFinished(monitor); + tab.linkedBrowser.reload(); + await wait; + + const requests = document.querySelectorAll(".request-list-item .tracking-resource"); + is(requests.length, 1, "There should be one tracking request"); + + await teardown(monitor); +}); diff --git a/devtools/client/netmonitor/test/html_tracking-protection.html b/devtools/client/netmonitor/test/html_tracking-protection.html new file mode 100644 index 000000000000..17f0e459e3d1 --- /dev/null +++ b/devtools/client/netmonitor/test/html_tracking-protection.html @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/devtools/client/webconsole/test/fixtures/stubs/networkEvent.js b/devtools/client/webconsole/test/fixtures/stubs/networkEvent.js index 15adf707d760..acadbdd39de1 100644 --- a/devtools/client/webconsole/test/fixtures/stubs/networkEvent.js +++ b/devtools/client/webconsole/test/fixtures/stubs/networkEvent.js @@ -266,6 +266,7 @@ stubPackets.set(`GET request`, { "timings": {}, "updates": [], "private": false, + "isTrackingResource": false, "from": "server1.conn0.child1/consoleActor2" }); @@ -317,6 +318,7 @@ stubPackets.set(`XHR GET request`, { "timings": {}, "updates": [], "private": false, + "isTrackingResource": false, "from": "server1.conn1.child1/consoleActor2" }); @@ -368,6 +370,7 @@ stubPackets.set(`XHR POST request`, { "timings": {}, "updates": [], "private": false, + "isTrackingResource": false, "from": "server1.conn2.child1/consoleActor2" }); diff --git a/devtools/server/actors/network-event.js b/devtools/server/actors/network-event.js index 5109c8850325..deabd52d80e9 100644 --- a/devtools/server/actors/network-event.js +++ b/devtools/server/actors/network-event.js @@ -65,6 +65,7 @@ const NetworkEventActor = protocol.ActorClassWithSpec(networkEventSpec, { fromCache: this._fromCache, fromServiceWorker: this._fromServiceWorker, private: this._private, + isTrackingResource: this._isTrackingResource, }; }, @@ -103,6 +104,7 @@ const NetworkEventActor = protocol.ActorClassWithSpec(networkEventSpec, { this._cause = networkEvent.cause; this._fromCache = networkEvent.fromCache; this._fromServiceWorker = networkEvent.fromServiceWorker; + this._isTrackingResource = networkEvent.isTrackingResource; this._channelId = networkEvent.channelId; // Stack trace info isn't sent automatically. The client diff --git a/devtools/server/actors/network-monitor/network-observer.js b/devtools/server/actors/network-monitor/network-observer.js index bc919c1e8389..4df902d2603b 100644 --- a/devtools/server/actors/network-monitor/network-observer.js +++ b/devtools/server/actors/network-monitor/network-observer.js @@ -313,7 +313,7 @@ NetworkObserver.prototype = { this.openResponses.set(channel, response); if (topic === "http-on-examine-cached-response") { - // Service worker requests emits cached-reponse notification on non-e10s, + // Service worker requests emits cached-response notification on non-e10s, // and we fake one on e10s. const fromServiceWorker = this.interceptedChannels.has(channel); this.interceptedChannels.delete(channel); @@ -491,6 +491,7 @@ NetworkObserver.prototype = { .toISOString(); event.fromCache = fromCache; event.fromServiceWorker = fromServiceWorker; + event.isTrackingResource = channel.isTrackingResource; httpActivity.fromServiceWorker = fromServiceWorker; if (extraStringData) { diff --git a/devtools/shared/webconsole/client.js b/devtools/shared/webconsole/client.js index 8584b7bb2fdb..2bd2c929c15c 100644 --- a/devtools/shared/webconsole/client.js +++ b/devtools/shared/webconsole/client.js @@ -110,7 +110,8 @@ WebConsoleClient.prototype = { updates: [], private: actor.private, fromCache: actor.fromCache, - fromServiceWorker: actor.fromServiceWorker + fromServiceWorker: actor.fromServiceWorker, + isTrackingResource: actor.isTrackingResource, }; this._networkRequests.set(actor.actor, networkInfo); From c5f59ca2f94a504b7e0636f0f6d28b7a925f3e01 Mon Sep 17 00:00:00 2001 From: Masayuki Nakano Date: Thu, 23 Aug 2018 06:42:11 +0000 Subject: [PATCH 03/34] Bug 1484125 - part 0: Add automated tests for nsITableEditor::GetTableSize() r=m_kato Differential Revision: https://phabricator.services.mozilla.com/D3951 --HG-- extra : moz-landing-system : lando --- editor/libeditor/tests/mochitest.ini | 1 + .../test_nsITableEditor_getTableSize.html | 95 +++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 editor/libeditor/tests/test_nsITableEditor_getTableSize.html diff --git a/editor/libeditor/tests/mochitest.ini b/editor/libeditor/tests/mochitest.ini index af328e27af18..d3032bda8657 100644 --- a/editor/libeditor/tests/mochitest.ini +++ b/editor/libeditor/tests/mochitest.ini @@ -291,6 +291,7 @@ skip-if = toolkit == 'android' && debug # bug 1480702, causes permanent failure skip-if = toolkit == 'android' && debug # bug 1480702, causes permanent failure of non-related test [test_nsITableEditor_getCellIndexes.html] [test_nsITableEditor_getFirstRow.html] +[test_nsITableEditor_getTableSize.html] [test_resizers_appearance.html] [test_resizers_resizing_elements.html] skip-if = android_version == '18' || (verify && debug && os == 'win') # bug 1147989 diff --git a/editor/libeditor/tests/test_nsITableEditor_getTableSize.html b/editor/libeditor/tests/test_nsITableEditor_getTableSize.html new file mode 100644 index 000000000000..4d4fc8dfa6e4 --- /dev/null +++ b/editor/libeditor/tests/test_nsITableEditor_getTableSize.html @@ -0,0 +1,95 @@ + + + + Test for nsITableEditor.getTableSize() + + + + +
+
+
+
+
+ + + + + From 41eb258e25564a5b4c897beee7861a203faf321d Mon Sep 17 00:00:00 2001 From: Masayuki Nakano Date: Thu, 23 Aug 2018 07:32:16 +0000 Subject: [PATCH 04/34] Bug 1484125 - part 1: Create TableSize struct to compute and store number of rows and columns of a element r=m_kato HTMLEditor::GetTableSize() is an XPCOM method but used internally a lot. Therefore, it shouldn't be called for internal use. Additionally, the callers need to declare two int32_t variables, but this causes the code messy. Therefore, this patch creates TableSize struct and it implements HTMLEditor::GetTableSize(). Then, all callers of it is replaced with TableSize struct. New TableSize struct does not support computes
element from anchor of Selection since there is no user of this in C++ code. Differential Revision: https://phabricator.services.mozilla.com/D3953 --HG-- extra : moz-landing-system : lando --- editor/libeditor/HTMLEditor.h | 39 +++ editor/libeditor/HTMLTableEditor.cpp | 477 +++++++++++++++++---------- editor/nsITableEditor.idl | 31 +- 3 files changed, 364 insertions(+), 183 deletions(-) diff --git a/editor/libeditor/HTMLEditor.h b/editor/libeditor/HTMLEditor.h index f555729a24e1..d2688df5306b 100644 --- a/editor/libeditor/HTMLEditor.h +++ b/editor/libeditor/HTMLEditor.h @@ -1065,6 +1065,45 @@ protected: // Shouldn't be used by friend classes ErrorResult& aRv); }; + /** + * TableSize stores and computes number of rows and columns of a
+ * element. + */ + struct MOZ_STACK_CLASS TableSize final + { + int32_t mRowCount; + int32_t mColumnCount; + + /** + * @param aHTMLEditor The editor which creates the instance. + * @param aTableOrElementInTable If a
element, computes number + * of rows and columns of it. + * If another element in a
element, + * computes number of rows and columns + * of nearest ancestor
element. + * Otherwise, i.e., non-
element + * not in
, returns error. + * @param aRv Returns error if the element is not + * in
or layout information is + * not available. + */ + TableSize(HTMLEditor& aHTMLEditor, Element& aTableOrElementInTable, + ErrorResult& aRv) + : mRowCount(-1) + , mColumnCount(-1) + { + MOZ_ASSERT(!aRv.Failed()); + Update(aHTMLEditor, aTableOrElementInTable, aRv); + } + + /** + * Update mRowCount and mColumnCount for aTableOrElementInTable. + * See above for the detail. + */ + void Update(HTMLEditor& aHTMLEditor, Element& aTableOrElementInTable, + ErrorResult& aRv); + }; + /** * PasteInternal() pasts text with replacing selected content. * This tries to dispatch ePaste event first. If its defaultPrevent() is diff --git a/editor/libeditor/HTMLTableEditor.cpp b/editor/libeditor/HTMLTableEditor.cpp index fc8a0b0ee239..6d07a37cbfdc 100644 --- a/editor/libeditor/HTMLTableEditor.cpp +++ b/editor/libeditor/HTMLTableEditor.cpp @@ -410,9 +410,11 @@ HTMLEditor::InsertTableColumn(int32_t aNumber, } } - int32_t rowCount, colCount, rowIndex; - rv = GetTableSize(table, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + ErrorResult error; + TableSize tableSize(*this, *table, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } //We reset caret in destructor... AutoSelectionSetterAfterTableEdit setCaret(*this, table, startRowIndex, @@ -424,14 +426,13 @@ HTMLEditor::InsertTableColumn(int32_t aNumber, // If we are inserting after all existing columns // Make sure table is "well formed" // before appending new column - if (startColIndex >= colCount) { + if (startColIndex >= tableSize.mColumnCount) { NormalizeTable(table); } - ErrorResult error; RefPtr rowElement; - for (rowIndex = 0; rowIndex < rowCount; rowIndex++) { - if (startColIndex < colCount) { + for (int32_t rowIndex = 0; rowIndex < tableSize.mRowCount; rowIndex++) { + if (startColIndex < tableSize.mColumnCount) { // We are inserting before an existing column rv = GetCellDataAt(table, rowIndex, startColIndex, getter_AddRefs(curCell), @@ -469,7 +470,7 @@ HTMLEditor::InsertTableColumn(int32_t aNumber, } else { if (NS_WARN_IF(!rowElement)) { // XXX Looks like that when rowIndex is 0, startColIndex is always - // same as or larger than colCount. Is it true? + // same as or larger than tableSize.mColumnCount. Is it true? return NS_ERROR_FAILURE; } rowElement = GetNextTableRowElement(*rowElement, error); @@ -531,9 +532,11 @@ HTMLEditor::InsertTableRow(int32_t aNumber, NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_TRUE(curCell, NS_ERROR_FAILURE); - int32_t rowCount, colCount; - rv = GetTableSize(table, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + ErrorResult error; + TableSize tableSize(*this, *table, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } AutoPlaceholderBatch beginBatching(this); // Prevent auto insertion of BR in new cell until we're done @@ -563,7 +566,7 @@ HTMLEditor::InsertTableRow(int32_t aNumber, RefPtr cellForRowParent; int32_t cellsInRow = 0; - if (startRowIndex < rowCount) { + if (startRowIndex < tableSize.mRowCount) { // We are inserting above an existing row // Get each cell in the insert row to adjust for COLSPAN effects while we // count how many cells are needed @@ -603,12 +606,12 @@ HTMLEditor::InsertTableRow(int32_t aNumber, } else { // We are adding a new row after all others // If it weren't for colspan=0 effect, - // we could simply use colCount for number of new cells... + // we could simply use tableSize.mColumnCount for number of new cells... // XXX colspan=0 support has now been removed in table layout so maybe this can be cleaned up now? (bug 1243183) - cellsInRow = colCount; + cellsInRow = tableSize.mColumnCount; // ...but we must compensate for all cells with rowSpan = 0 in the last row - int32_t lastRow = rowCount-1; + int32_t lastRow = tableSize.mRowCount - 1; int32_t tempColIndex = 0; while (NS_SUCCEEDED(GetCellDataAt(table, lastRow, tempColIndex, getter_AddRefs(curCell), @@ -647,7 +650,7 @@ HTMLEditor::InsertTableRow(int32_t aNumber, int32_t newRowOffset = parentOfRow->ComputeIndexOf(parentRow); // Adjust for when adding past the end - if (aAfter && startRowIndex >= rowCount) { + if (aAfter && startRowIndex >= tableSize.mRowCount) { newRowOffset++; } @@ -666,10 +669,9 @@ HTMLEditor::InsertTableRow(int32_t aNumber, // Don't use transaction system yet! (not until entire row is // inserted) - ErrorResult result; - newRow->AppendChild(*newCell, result); - if (NS_WARN_IF(result.Failed())) { - return result.StealNSResult(); + newRow->AppendChild(*newCell, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); } } @@ -748,9 +750,13 @@ HTMLEditor::DeleteTableCell(int32_t aNumber) nullptr, nullptr, &startRowIndex, &startColIndex); - NS_ENSURE_SUCCESS(rv, rv); - // Don't fail if we didn't find a table or cell - NS_ENSURE_TRUE(table && cell, NS_SUCCESS_EDITOR_ELEMENT_NOT_FOUND); + if (NS_WARN_IF(NS_FAILED(rv))) { + return rv; + } + if (NS_WARN_IF(!table) || NS_WARN_IF(!cell)) { + // Don't fail if we didn't find a table or cell. + return NS_SUCCESS_EDITOR_ELEMENT_NOT_FOUND; + } AutoPlaceholderBatch beginBatching(this); // Prevent rules testing until we're done @@ -764,11 +770,12 @@ HTMLEditor::DeleteTableCell(int32_t aNumber) // When 2 or more cells are selected, ignore aNumber and use selected cells. if (firstCell && selection->RangeCount() > 1) { - int32_t rowCount, colCount; - rv = GetTableSize(table, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); - ErrorResult error; + TableSize tableSize(*this, *table, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } + CellIndexes firstCellIndexes(*firstCell, error); if (NS_WARN_IF(error.Failed())) { return error.StealNSResult(); @@ -795,7 +802,8 @@ HTMLEditor::DeleteTableCell(int32_t aNumber) // Clear so we don't repeat AllCellsInRowSelected within the same row checkToDeleteRow = false; - deleteRow = AllCellsInRowSelected(table, startRowIndex, colCount); + deleteRow = + AllCellsInRowSelected(table, startRowIndex, tableSize.mColumnCount); if (deleteRow) { // First, find the next cell in a different row // to continue after we delete this row @@ -831,7 +839,9 @@ HTMLEditor::DeleteTableCell(int32_t aNumber) // Clear this so we don't repeat AllCellsInColSelected within the same Col checkToDeleteColumn = false; - deleteCol = AllCellsInColumnSelected(table, startColIndex, colCount); + deleteCol = + AllCellsInColumnSelected(table, startColIndex, + tableSize.mColumnCount); if (deleteCol) { // First, find the next cell in a different column // to continue after we delete this column @@ -886,6 +896,7 @@ HTMLEditor::DeleteTableCell(int32_t aNumber) } } } else { + ErrorResult error; for (int32_t i = 0; i < aNumber; i++) { rv = GetCellContext(getter_AddRefs(selection), getter_AddRefs(table), @@ -908,11 +919,12 @@ HTMLEditor::DeleteTableCell(int32_t aNumber) // We should delete the row instead, // but first check if its the only row left // so we can delete the entire table - int32_t rowCount, colCount; - rv = GetTableSize(table, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + TableSize tableSize(*this, *table, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } - if (rowCount == 1) { + if (tableSize.mRowCount == 1) { return DeleteTable2(table, selection); } @@ -1021,7 +1033,7 @@ HTMLEditor::DeleteTableColumn(int32_t aNumber) RefPtr selection; RefPtr table; RefPtr cell; - int32_t startRowIndex, startColIndex, rowCount, colCount; + int32_t startRowIndex, startColIndex; nsresult rv = GetCellContext(getter_AddRefs(selection), getter_AddRefs(table), getter_AddRefs(cell), @@ -1031,18 +1043,21 @@ HTMLEditor::DeleteTableColumn(int32_t aNumber) // Don't fail if no cell found NS_ENSURE_TRUE(table && cell, NS_SUCCESS_EDITOR_ELEMENT_NOT_FOUND); - rv = GetTableSize(table, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + ErrorResult error; + TableSize tableSize(*this, *table, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } AutoPlaceholderBatch beginBatching(this); // Shortcut the case of deleting all columns in table - if (!startColIndex && aNumber >= colCount) { + if (!startColIndex && aNumber >= tableSize.mColumnCount) { return DeleteTable2(table, selection); } // Check for counts too high - aNumber = std::min(aNumber,(colCount-startColIndex)); + aNumber = std::min(aNumber, (tableSize.mColumnCount - startColIndex)); // Prevent rules testing until we're done AutoTopLevelEditSubActionNotifier maybeTopLevelEditSubAction( @@ -1056,7 +1071,6 @@ HTMLEditor::DeleteTableColumn(int32_t aNumber) uint32_t rangeCount = selection->RangeCount(); - ErrorResult error; if (firstCell && rangeCount > 1) { CellIndexes firstCellIndexes(*firstCell, error); if (NS_WARN_IF(error.Failed())) { @@ -1115,13 +1129,16 @@ nsresult HTMLEditor::DeleteColumn(Element* aTable, int32_t aColIndex) { - NS_ENSURE_TRUE(aTable, NS_ERROR_NULL_POINTER); + if (NS_WARN_IF(!aTable)) { + return NS_ERROR_INVALID_ARG; + } RefPtr cell; int32_t startRowIndex, startColIndex, rowSpan, colSpan, actualRowSpan, actualColSpan; bool isSelected; int32_t rowIndex = 0; + ErrorResult error; do { nsresult rv = GetCellDataAt(aTable, rowIndex, aColIndex, getter_AddRefs(cell), @@ -1160,11 +1177,12 @@ HTMLEditor::DeleteColumn(Element* aTable, // But first check if its the only row left // so we can delete the entire table // (This should never happen but it's the safe thing to do) - int32_t rowCount, colCount; - rv = GetTableSize(aTable, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + TableSize tableSize(*this, *aTable, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } - if (rowCount == 1) { + if (tableSize.mRowCount == 1) { RefPtr selection = GetSelection(); NS_ENSURE_TRUE(selection, NS_ERROR_FAILURE); return DeleteTable2(aTable, selection); @@ -1202,21 +1220,27 @@ HTMLEditor::DeleteTableRow(int32_t aNumber) RefPtr table; RefPtr cell; int32_t startRowIndex, startColIndex; - int32_t rowCount, colCount; nsresult rv = GetCellContext(getter_AddRefs(selection), getter_AddRefs(table), getter_AddRefs(cell), nullptr, nullptr, &startRowIndex, &startColIndex); - NS_ENSURE_SUCCESS(rv, rv); - // Don't fail if no cell found - NS_ENSURE_TRUE(cell, NS_SUCCESS_EDITOR_ELEMENT_NOT_FOUND); + if (NS_WARN_IF(NS_FAILED(rv))) { + return rv; + } + if (NS_WARN_IF(!table) || NS_WARN_IF(!cell)) { + // Don't fail if no cell found. + return NS_SUCCESS_EDITOR_ELEMENT_NOT_FOUND; + } - rv = GetTableSize(table, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + ErrorResult error; + TableSize tableSize(*this, *table, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } // Shortcut the case of deleting all rows in table - if (!startRowIndex && aNumber >= rowCount) { + if (!startRowIndex && aNumber >= tableSize.mRowCount) { return DeleteTable2(table, selection); } @@ -1231,8 +1255,6 @@ HTMLEditor::DeleteTableRow(int32_t aNumber) NS_ENSURE_SUCCESS(rv, rv); uint32_t rangeCount = selection->RangeCount(); - - ErrorResult error; if (firstCell && rangeCount > 1) { // Fetch indexes again - may be different for selected cells CellIndexes firstCellIndexes(*firstCell, error); @@ -1285,7 +1307,7 @@ HTMLEditor::DeleteTableRow(int32_t aNumber) } } else { // Check for counts too high - aNumber = std::min(aNumber,(rowCount-startRowIndex)); + aNumber = std::min(aNumber, (tableSize.mRowCount - startRowIndex)); for (int32_t i = 0; i < aNumber; i++) { rv = DeleteRow(table, startRowIndex); // If failed in current row, try the next @@ -1309,7 +1331,9 @@ nsresult HTMLEditor::DeleteRow(Element* aTable, int32_t aRowIndex) { - NS_ENSURE_TRUE(aTable, NS_ERROR_NULL_POINTER); + if (NS_WARN_IF(!aTable)) { + return NS_ERROR_INVALID_ARG; + } RefPtr cell; RefPtr cellInDeleteRow; @@ -1327,21 +1351,25 @@ HTMLEditor::DeleteRow(Element* aTable, nsTArray > spanCellList; nsTArray newSpanList; - int32_t rowCount, colCount; - nsresult rv = GetTableSize(aTable, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + ErrorResult error; + TableSize tableSize(*this, *aTable, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } // Scan through cells in row to do rowspan adjustments // Note that after we delete row, startRowIndex will point to the // cells in the next row to be deleted do { - if (aRowIndex >= rowCount || colIndex >= colCount) { + if (aRowIndex >= tableSize.mRowCount || + colIndex >= tableSize.mColumnCount) { break; } - rv = GetCellDataAt(aTable, aRowIndex, colIndex, getter_AddRefs(cell), - &startRowIndex, &startColIndex, &rowSpan, &colSpan, - &actualRowSpan, &actualColSpan, &isSelected); + nsresult rv = + GetCellDataAt(aTable, aRowIndex, colIndex, getter_AddRefs(cell), + &startRowIndex, &startColIndex, &rowSpan, &colSpan, + &actualRowSpan, &actualColSpan, &isSelected); // We don't fail if we don't find a cell, so this must be real bad if (NS_FAILED(rv)) { return rv; @@ -1391,7 +1419,7 @@ HTMLEditor::DeleteRow(Element* aTable, RefPtr parentRow = GetElementOrParentByTagNameInternal(*nsGkAtoms::tr, *cellInDeleteRow); if (parentRow) { - rv = DeleteNodeWithTransaction(*parentRow); + nsresult rv = DeleteNodeWithTransaction(*parentRow); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } @@ -1401,8 +1429,10 @@ HTMLEditor::DeleteRow(Element* aTable, for (uint32_t i = 0, n = spanCellList.Length(); i < n; i++) { Element* cellPtr = spanCellList[i]; if (cellPtr) { - rv = SetRowSpan(cellPtr, newSpanList[i]); - NS_ENSURE_SUCCESS(rv, rv); + nsresult rv = SetRowSpan(cellPtr, newSpanList[i]); + if (NS_WARN_IF(NS_FAILED(rv))) { + return rv; + } } } return NS_OK; @@ -1582,9 +1612,11 @@ HTMLEditor::SelectAllTableCells() return NS_ERROR_FAILURE; } - int32_t rowCount, colCount; - nsresult rv = GetTableSize(table, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + ErrorResult error; + TableSize tableSize(*this, *table, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } // Suppress nsISelectionListener notification // until all selection changes are finished @@ -1592,14 +1624,16 @@ HTMLEditor::SelectAllTableCells() // It is now safe to clear the selection // BE SURE TO RESET IT BEFORE LEAVING! - rv = ClearSelection(); + nsresult rv = ClearSelection(); // Select all cells in the same column as current cell bool cellSelected = false; int32_t rowSpan, colSpan, actualRowSpan, actualColSpan, currentRowIndex, currentColIndex; bool isSelected; - for (int32_t row = 0; row < rowCount; row++) { - for (int32_t col = 0; col < colCount; col += std::max(actualColSpan, 1)) { + for (int32_t row = 0; row < tableSize.mRowCount; row++) { + for (int32_t col = 0; + col < tableSize.mColumnCount; + col += std::max(actualColSpan, 1)) { rv = GetCellDataAt(table, row, col, getter_AddRefs(cell), ¤tRowIndex, ¤tColIndex, &rowSpan, &colSpan, @@ -1652,12 +1686,18 @@ HTMLEditor::SelectTableRow() getter_AddRefs(cell), nullptr, nullptr, &startRowIndex, &startColIndex); - NS_ENSURE_SUCCESS(rv, rv); - NS_ENSURE_TRUE(table, NS_ERROR_FAILURE); + if (NS_WARN_IF(NS_FAILED(rv))) { + return rv; + } + if (NS_WARN_IF(!table)) { + return NS_ERROR_FAILURE; + } - int32_t rowCount, colCount; - rv = GetTableSize(table, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + ErrorResult error; + TableSize tableSize(*this, *table, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } //Note: At this point, we could get first and last cells in row, // then call SelectBlockOfCells, but that would take just @@ -1675,7 +1715,9 @@ HTMLEditor::SelectTableRow() bool cellSelected = false; int32_t rowSpan, colSpan, actualRowSpan, actualColSpan, currentRowIndex, currentColIndex; bool isSelected; - for (int32_t col = 0; col < colCount; col += std::max(actualColSpan, 1)) { + for (int32_t col = 0; + col < tableSize.mColumnCount; + col += std::max(actualColSpan, 1)) { rv = GetCellDataAt(table, startRowIndex, col, getter_AddRefs(cell), ¤tRowIndex, ¤tColIndex, &rowSpan, &colSpan, &actualRowSpan, &actualColSpan, &isSelected); @@ -1726,12 +1768,18 @@ HTMLEditor::SelectTableColumn() getter_AddRefs(cell), nullptr, nullptr, &startRowIndex, &startColIndex); - NS_ENSURE_SUCCESS(rv, rv); - NS_ENSURE_TRUE(table, NS_ERROR_FAILURE); + if (NS_WARN_IF(NS_FAILED(rv))) { + return rv; + } + if (NS_WARN_IF(!table)) { + return NS_ERROR_FAILURE; + } - int32_t rowCount, colCount; - rv = GetTableSize(table, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + ErrorResult error; + TableSize tableSize(*this, *table, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } // Suppress nsISelectionListener notification // until all selection changes are finished @@ -1745,7 +1793,9 @@ HTMLEditor::SelectTableColumn() bool cellSelected = false; int32_t rowSpan, colSpan, actualRowSpan, actualColSpan, currentRowIndex, currentColIndex; bool isSelected; - for (int32_t row = 0; row < rowCount; row += std::max(actualRowSpan, 1)) { + for (int32_t row = 0; + row < tableSize.mRowCount; + row += std::max(actualRowSpan, 1)) { rv = GetCellDataAt(table, row, startColIndex, getter_AddRefs(cell), ¤tRowIndex, ¤tColIndex, &rowSpan, &colSpan, &actualRowSpan, &actualColSpan, &isSelected); @@ -1918,8 +1968,13 @@ HTMLEditor::SplitCellIntoRows(Element* aTable, int32_t aRowSpanBelow, Element** aNewCell) { - NS_ENSURE_TRUE(aTable, NS_ERROR_NULL_POINTER); - if (aNewCell) *aNewCell = nullptr; + if (NS_WARN_IF(!aTable)) { + return NS_ERROR_INVALID_ARG; + } + + if (aNewCell) { + *aNewCell = nullptr; + } RefPtr cell; int32_t startRowIndex, startColIndex, rowSpan, colSpan, actualRowSpan, actualColSpan; @@ -1929,17 +1984,23 @@ HTMLEditor::SplitCellIntoRows(Element* aTable, &startRowIndex, &startColIndex, &rowSpan, &colSpan, &actualRowSpan, &actualColSpan, &isSelected); - NS_ENSURE_SUCCESS(rv, rv); - NS_ENSURE_TRUE(cell, NS_ERROR_NULL_POINTER); + if (NS_WARN_IF(NS_FAILED(rv))) { + return rv; + } + if (NS_WARN_IF(!cell)) { + return NS_ERROR_FAILURE; + } // We can't split! if (actualRowSpan <= 1 || (aRowSpanAbove + aRowSpanBelow) > actualRowSpan) { return NS_OK; } - int32_t rowCount, colCount; - rv = GetTableSize(aTable, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + ErrorResult error; + TableSize tableSize(*this, *aTable, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } RefPtr cell2; RefPtr lastCellFound; @@ -1989,7 +2050,7 @@ HTMLEditor::SplitCellIntoRows(Element* aTable, colIndex += std::max(actualColSpan2, 1); // Done when past end of total number of columns - if (colIndex > colCount) { + if (colIndex > tableSize.mColumnCount) { break; } } @@ -2118,10 +2179,11 @@ HTMLEditor::JoinTableCells(bool aMergeNonContiguousContents) if (joinSelectedCells) { // We have selected cells: Join just contiguous cells // and just merge contents if not contiguous - - int32_t rowCount, colCount; - rv = GetTableSize(table, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + ErrorResult error; + TableSize tableSize(*this, *table, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } // Get spans for cell we will merge into int32_t firstRowSpan, firstColSpan; @@ -2142,18 +2204,19 @@ HTMLEditor::JoinTableCells(bool aMergeNonContiguousContents) // that we will join into one cell, // favoring adjacent cells in the same row for (rowIndex = firstRowIndex; rowIndex <= lastRowIndex; rowIndex++) { - int32_t currentRowCount = rowCount; + int32_t currentRowCount = tableSize.mRowCount; // Be sure each row doesn't have rowspan errors - rv = FixBadRowSpan(table, rowIndex, rowCount); + rv = FixBadRowSpan(table, rowIndex, tableSize.mRowCount); NS_ENSURE_SUCCESS(rv, rv); // Adjust rowcount by number of rows we removed - lastRowIndex -= (currentRowCount-rowCount); + lastRowIndex -= currentRowCount - tableSize.mRowCount; bool cellFoundInRow = false; bool lastRowIsSet = false; int32_t lastColInRow = 0; int32_t firstColInRow = firstColIndex; - for (colIndex = firstColIndex; colIndex < colCount; + for (colIndex = firstColIndex; + colIndex < tableSize.mColumnCount; colIndex += std::max(actualColSpan2, 1)) { rv = GetCellDataAt(table, rowIndex, colIndex, getter_AddRefs(cell2), &startRowIndex2, &startColIndex2, @@ -2225,8 +2288,9 @@ HTMLEditor::JoinTableCells(bool aMergeNonContiguousContents) nsTArray> deleteList; // 2nd pass: Do the joining and merging - for (rowIndex = 0; rowIndex < rowCount; rowIndex++) { - for (colIndex = 0; colIndex < colCount; + for (rowIndex = 0; rowIndex < tableSize.mRowCount; rowIndex++) { + for (colIndex = 0; + colIndex < tableSize.mColumnCount; colIndex += std::max(actualColSpan2, 1)) { rv = GetCellDataAt(table, rowIndex, colIndex, getter_AddRefs(cell2), &startRowIndex2, &startColIndex2, @@ -2458,11 +2522,15 @@ HTMLEditor::FixBadRowSpan(Element* aTable, int32_t aRowIndex, int32_t& aNewRowCount) { - NS_ENSURE_TRUE(aTable, NS_ERROR_NULL_POINTER); + if (NS_WARN_IF(!aTable)) { + return NS_ERROR_INVALID_ARG; + } - int32_t rowCount, colCount; - nsresult rv = GetTableSize(aTable, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + ErrorResult error; + TableSize tableSize(*this, *aTable, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } RefPtr cell; int32_t startRowIndex, startColIndex, rowSpan, colSpan, actualRowSpan, actualColSpan; @@ -2471,11 +2539,13 @@ HTMLEditor::FixBadRowSpan(Element* aTable, int32_t minRowSpan = -1; int32_t colIndex; - for (colIndex = 0; colIndex < colCount; + for (colIndex = 0; + colIndex < tableSize.mColumnCount; colIndex += std::max(actualColSpan, 1)) { - rv = GetCellDataAt(aTable, aRowIndex, colIndex, getter_AddRefs(cell), - &startRowIndex, &startColIndex, &rowSpan, &colSpan, - &actualRowSpan, &actualColSpan, &isSelected); + nsresult rv = + GetCellDataAt(aTable, aRowIndex, colIndex, getter_AddRefs(cell), + &startRowIndex, &startColIndex, &rowSpan, &colSpan, + &actualRowSpan, &actualColSpan, &isSelected); // NOTE: This is a *real* failure. // GetCellDataAt passes if cell is missing from cellmap if (NS_FAILED(rv)) { @@ -2495,11 +2565,13 @@ HTMLEditor::FixBadRowSpan(Element* aTable, // The amount to reduce everyone's rowspan // so at least one cell has rowspan = 1 int32_t rowsReduced = minRowSpan - 1; - for (colIndex = 0; colIndex < colCount; + for (colIndex = 0; + colIndex < tableSize.mColumnCount; colIndex += std::max(actualColSpan, 1)) { - rv = GetCellDataAt(aTable, aRowIndex, colIndex, getter_AddRefs(cell), - &startRowIndex, &startColIndex, &rowSpan, &colSpan, - &actualRowSpan, &actualColSpan, &isSelected); + nsresult rv = + GetCellDataAt(aTable, aRowIndex, colIndex, getter_AddRefs(cell), + &startRowIndex, &startColIndex, &rowSpan, &colSpan, + &actualRowSpan, &actualColSpan, &isSelected); if (NS_FAILED(rv)) { return rv; } @@ -2515,7 +2587,12 @@ HTMLEditor::FixBadRowSpan(Element* aTable, NS_ASSERTION((actualColSpan > 0),"ActualColSpan = 0 in FixBadRowSpan"); } } - return GetTableSize(aTable, &aNewRowCount, &colCount); + tableSize.Update(*this, *aTable, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } + aNewRowCount = tableSize.mRowCount; + return NS_OK; } nsresult @@ -2523,11 +2600,15 @@ HTMLEditor::FixBadColSpan(Element* aTable, int32_t aColIndex, int32_t& aNewColCount) { - NS_ENSURE_TRUE(aTable, NS_ERROR_NULL_POINTER); + if (NS_WARN_IF(!aTable)) { + return NS_ERROR_INVALID_ARG; + } - int32_t rowCount, colCount; - nsresult rv = GetTableSize(aTable, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + ErrorResult error; + TableSize tableSize(*this, *aTable, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } RefPtr cell; int32_t startRowIndex, startColIndex, rowSpan, colSpan, actualRowSpan, actualColSpan; @@ -2536,11 +2617,13 @@ HTMLEditor::FixBadColSpan(Element* aTable, int32_t minColSpan = -1; int32_t rowIndex; - for (rowIndex = 0; rowIndex < rowCount; + for (rowIndex = 0; + rowIndex < tableSize.mRowCount; rowIndex += std::max(actualRowSpan, 1)) { - rv = GetCellDataAt(aTable, rowIndex, aColIndex, getter_AddRefs(cell), - &startRowIndex, &startColIndex, &rowSpan, &colSpan, - &actualRowSpan, &actualColSpan, &isSelected); + nsresult rv = + GetCellDataAt(aTable, rowIndex, aColIndex, getter_AddRefs(cell), + &startRowIndex, &startColIndex, &rowSpan, &colSpan, + &actualRowSpan, &actualColSpan, &isSelected); // NOTE: This is a *real* failure. // GetCellDataAt passes if cell is missing from cellmap if (NS_FAILED(rv)) { @@ -2560,11 +2643,13 @@ HTMLEditor::FixBadColSpan(Element* aTable, // The amount to reduce everyone's colspan // so at least one cell has colspan = 1 int32_t colsReduced = minColSpan - 1; - for (rowIndex = 0; rowIndex < rowCount; + for (rowIndex = 0; + rowIndex < tableSize.mRowCount; rowIndex += std::max(actualRowSpan, 1)) { - rv = GetCellDataAt(aTable, rowIndex, aColIndex, getter_AddRefs(cell), - &startRowIndex, &startColIndex, &rowSpan, &colSpan, - &actualRowSpan, &actualColSpan, &isSelected); + nsresult rv = + GetCellDataAt(aTable, rowIndex, aColIndex, getter_AddRefs(cell), + &startRowIndex, &startColIndex, &rowSpan, &colSpan, + &actualRowSpan, &actualColSpan, &isSelected); if (NS_FAILED(rv)) { return rv; } @@ -2580,7 +2665,12 @@ HTMLEditor::FixBadColSpan(Element* aTable, NS_ASSERTION((actualRowSpan > 0),"ActualRowSpan = 0 in FixBadColSpan"); } } - return GetTableSize(aTable, &rowCount, &aNewColCount); + tableSize.Update(*this, *aTable, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } + aNewColCount = tableSize.mColumnCount; + return NS_OK; } NS_IMETHODIMP @@ -2600,9 +2690,11 @@ HTMLEditor::NormalizeTable(Element* aTable) return NS_OK; } - int32_t rowCount, colCount, rowIndex, colIndex; - nsresult rv = GetTableSize(table, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + ErrorResult error; + TableSize tableSize(*this, *table, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } // Save current selection AutoSelectionRestorer selectionRestorer(selection, this); @@ -2618,23 +2710,28 @@ HTMLEditor::NormalizeTable(Element* aTable) bool isSelected; // Scan all cells in each row to detect bad rowspan values - for (rowIndex = 0; rowIndex < rowCount; rowIndex++) { - rv = FixBadRowSpan(table, rowIndex, rowCount); - NS_ENSURE_SUCCESS(rv, rv); + for (int32_t rowIndex = 0; rowIndex < tableSize.mRowCount; rowIndex++) { + nsresult rv = FixBadRowSpan(table, rowIndex, tableSize.mRowCount); + if (NS_WARN_IF(NS_FAILED(rv))) { + return rv; + } } // and same for colspans - for (colIndex = 0; colIndex < colCount; colIndex++) { - rv = FixBadColSpan(table, colIndex, colCount); - NS_ENSURE_SUCCESS(rv, rv); + for (int32_t colIndex = 0; colIndex < tableSize.mColumnCount; colIndex++) { + nsresult rv = FixBadColSpan(table, colIndex, tableSize.mColumnCount); + if (NS_WARN_IF(NS_FAILED(rv))) { + return rv; + } } // Fill in missing cellmap locations with empty cells - for (rowIndex = 0; rowIndex < rowCount; rowIndex++) { + for (int32_t rowIndex = 0; rowIndex < tableSize.mRowCount; rowIndex++) { RefPtr previousCellInRow; - for (colIndex = 0; colIndex < colCount; colIndex++) { - rv = GetCellDataAt(table, rowIndex, colIndex, getter_AddRefs(cell), - &startRowIndex, &startColIndex, &rowSpan, &colSpan, - &actualRowSpan, &actualColSpan, &isSelected); + for (int32_t colIndex = 0; colIndex < tableSize.mColumnCount; colIndex++) { + nsresult rv = + GetCellDataAt(table, rowIndex, colIndex, getter_AddRefs(cell), + &startRowIndex, &startColIndex, &rowSpan, &colSpan, + &actualRowSpan, &actualColSpan, &isSelected); // NOTE: This is a *real* failure. // GetCellDataAt passes if cell is missing from cellmap if (NS_FAILED(rv)) { @@ -2796,47 +2893,68 @@ HTMLEditor::GetNumberOfCellsInRow(Element* aTable, } NS_IMETHODIMP -HTMLEditor::GetTableSize(Element* aTable, +HTMLEditor::GetTableSize(Element* aTableOrElementInTable, int32_t* aRowCount, - int32_t* aColCount) + int32_t* aColumnCount) { - NS_ENSURE_ARG_POINTER(aRowCount); - NS_ENSURE_ARG_POINTER(aColCount); + if (NS_WARN_IF(!aRowCount) || NS_WARN_IF(!aColumnCount)) { + return NS_ERROR_INVALID_ARG; + } + *aRowCount = 0; - *aColCount = 0; - // Get the selected talbe or the table enclosing the selection anchor - // XXX Looks like it's safe to use raw pointer here. However, layout code - // change won't be handled by editor developers so that it must be safe - // to keep using RefPtr here. - RefPtr table; - if (aTable) { - table = GetElementOrParentByTagNameInternal(*nsGkAtoms::table, *aTable); - if (NS_WARN_IF(!table)) { - return NS_ERROR_FAILURE; - } - } else { + *aColumnCount = 0; + + Element* tableOrElementInTable = aTableOrElementInTable; + if (!tableOrElementInTable) { RefPtr selection = GetSelection(); if (NS_WARN_IF(!selection)) { return NS_ERROR_FAILURE; } - table = + tableOrElementInTable = GetElementOrParentByTagNameAtSelection(*selection, *nsGkAtoms::table); - if (NS_WARN_IF(!table)) { + if (NS_WARN_IF(!tableOrElementInTable)) { return NS_ERROR_FAILURE; } } - nsTableWrapperFrame* tableFrame = do_QueryFrame(table->GetPrimaryFrame()); - if (NS_WARN_IF(!tableFrame)) { - return NS_ERROR_FAILURE; + ErrorResult error; + TableSize tableSize(*this, *tableOrElementInTable, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); } - - *aRowCount = tableFrame->GetRowCount(); - *aColCount = tableFrame->GetColCount(); - + *aRowCount = tableSize.mRowCount; + *aColumnCount = tableSize.mColumnCount; return NS_OK; } +void +HTMLEditor::TableSize::Update(HTMLEditor& aHTMLEditor, + Element& aTableOrElementInTable, + ErrorResult& aRv) +{ + MOZ_ASSERT(!aRv.Failed()); + + // Currently, nsTableWrapperFrame::GetRowCount() and + // nsTableWrapperFrame::GetColCount() are safe to use without grabbing + //
element. However, editor developers may not watch layout API + // changes. So, for keeping us safer, we should use RefPtr here. + RefPtr tableElement = + aHTMLEditor.GetElementOrParentByTagNameInternal(*nsGkAtoms::table, + aTableOrElementInTable); + if (NS_WARN_IF(!tableElement)) { + aRv.Throw(NS_ERROR_FAILURE); + return; + } + nsTableWrapperFrame* tableFrame = + do_QueryFrame(tableElement->GetPrimaryFrame()); + if (NS_WARN_IF(!tableFrame)) { + aRv.Throw(NS_ERROR_FAILURE); + return; + } + mRowCount = tableFrame->GetRowCount(); + mColumnCount = tableFrame->GetColCount(); +} + NS_IMETHODIMP HTMLEditor::GetCellDataAt(Element* aTable, int32_t aRowIndex, @@ -3432,26 +3550,30 @@ HTMLEditor::GetSelectedCellsType(Element* aElement, RefPtr table; if (aElement) { table = GetElementOrParentByTagNameInternal(*nsGkAtoms::table, *aElement); + if (NS_WARN_IF(!table)) { + return NS_ERROR_FAILURE; + } } else { RefPtr selection = GetSelection(); if (NS_WARN_IF(!selection)) { - // If there is no Selection, the following GetTableSize() will return - // nullptr if we set first argument to nullptr. So, let's return error - // in this case. return NS_ERROR_FAILURE; } table = GetElementOrParentByTagNameAtSelection(*selection, *nsGkAtoms::table); + if (NS_WARN_IF(!table)) { + return NS_ERROR_FAILURE; + } } - // table might be null at this point, but if so GetTableSize will fail. - int32_t rowCount, colCount; - nsresult rv = GetTableSize(table, &rowCount, &colCount); - NS_ENSURE_SUCCESS(rv, rv); + ErrorResult error; + TableSize tableSize(*this, *table, error); + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } // Traverse all selected cells RefPtr selectedCell; - rv = GetFirstSelectedCell(nullptr, getter_AddRefs(selectedCell)); + nsresult rv = GetFirstSelectedCell(nullptr, getter_AddRefs(selectedCell)); NS_ENSURE_SUCCESS(rv, rv); if (rv == NS_SUCCESS_EDITOR_ELEMENT_NOT_FOUND) { return NS_OK; @@ -3463,7 +3585,6 @@ HTMLEditor::GetSelectedCellsType(Element* aElement, // Store indexes of each row/col to avoid duplication of searches nsTArray indexArray; - ErrorResult error; bool allCellsInRowAreSelected = false; bool allCellsInColAreSelected = false; while (NS_SUCCEEDED(rv) && selectedCell) { @@ -3474,7 +3595,8 @@ HTMLEditor::GetSelectedCellsType(Element* aElement, if (!indexArray.Contains(selectedCellIndexes.mColumn)) { indexArray.AppendElement(selectedCellIndexes.mColumn); allCellsInRowAreSelected = - AllCellsInRowSelected(table, selectedCellIndexes.mRow, colCount); + AllCellsInRowSelected(table, selectedCellIndexes.mRow, + tableSize.mColumnCount); // We're done as soon as we fail for any row if (!allCellsInRowAreSelected) { break; @@ -3503,7 +3625,8 @@ HTMLEditor::GetSelectedCellsType(Element* aElement, if (!indexArray.Contains(selectedCellIndexes.mRow)) { indexArray.AppendElement(selectedCellIndexes.mColumn); allCellsInColAreSelected = - AllCellsInColumnSelected(table, selectedCellIndexes.mColumn, rowCount); + AllCellsInColumnSelected(table, selectedCellIndexes.mColumn, + tableSize.mRowCount); // We're done as soon as we fail for any column if (!allCellsInRowAreSelected) { break; diff --git a/editor/nsITableEditor.idl b/editor/nsITableEditor.idl index 0959e4ac6d27..9fda8e93fde4 100644 --- a/editor/nsITableEditor.idl +++ b/editor/nsITableEditor.idl @@ -158,12 +158,31 @@ interface nsITableEditor : nsISupports void getCellIndexes(in Element aCellElement, out long aRowIndex, out long aColumnIndex); - /** Get the number of rows and columns in a table from the layout's cellmap - * If aTable is null, it will try to find enclosing table of selection ancho - * Note that all rows in table will not have this many because of - * ROWSPAN effects or if table is not "rectangular" (has short rows) - */ - void getTableSize(in Element aTable, + /** + * getTableSize() computes number of rows and columns. + * Note that this depends on layout information. Therefore, all pending + * layout should've been flushed before calling this. + * + * @param aTableOrElementInTable If a
element, this computes number + * of rows and columns of it. + * If another element and in a
, this + * computes number of rows and columns of + * the nearest ancestor
element. + * If element is not in
element, + * throwing an exception. + * If null, this looks for nearest ancestor + *
element containing anchor of + * Selection. If found, computes the number + * of rows and columns of the
. + * Otherwise, throwing an exception. + * @param aRowCount Number of *actual* row count. + * I.e., rowspan does NOT increase this value. + * @param aColumnCount Number of column count. + * I.e., if colspan is specified with bigger + * number than actual, the value is used + * as this. + */ + void getTableSize(in Element aTableOrElementInTable, out long aRowCount, out long aColCount); /** Get a cell element at cellmap grid coordinates From 17d425da912e0d57321dd18e776a7b993f8beae2 Mon Sep 17 00:00:00 2001 From: Masayuki Nakano Date: Thu, 23 Aug 2018 06:13:22 +0000 Subject: [PATCH 05/34] Bug 1484127 - part 0: Add automated tests for nsITableEditor::GetCellAt() r=m_kato Differential Revision: https://phabricator.services.mozilla.com/D3955 --HG-- extra : moz-landing-system : lando --- editor/libeditor/tests/mochitest.ini | 1 + .../tests/test_nsITableEditor_getCellAt.html | 139 ++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 editor/libeditor/tests/test_nsITableEditor_getCellAt.html diff --git a/editor/libeditor/tests/mochitest.ini b/editor/libeditor/tests/mochitest.ini index d3032bda8657..ae15406b0cfa 100644 --- a/editor/libeditor/tests/mochitest.ini +++ b/editor/libeditor/tests/mochitest.ini @@ -289,6 +289,7 @@ skip-if = toolkit == 'android' && debug # bug 1480702, causes permanent failure skip-if = toolkit == 'android' && debug # bug 1480702, causes permanent failure of non-related test [test_nsIHTMLEditor_setCaretAfterElement.html] skip-if = toolkit == 'android' && debug # bug 1480702, causes permanent failure of non-related test +[test_nsITableEditor_getCellAt.html] [test_nsITableEditor_getCellIndexes.html] [test_nsITableEditor_getFirstRow.html] [test_nsITableEditor_getTableSize.html] diff --git a/editor/libeditor/tests/test_nsITableEditor_getCellAt.html b/editor/libeditor/tests/test_nsITableEditor_getCellAt.html new file mode 100644 index 000000000000..b273f7757cf7 --- /dev/null +++ b/editor/libeditor/tests/test_nsITableEditor_getCellAt.html @@ -0,0 +1,139 @@ + + + + Test for nsITableEditor.getCellAt() + + + + +
+
+
+
+
+ + + + + From 65f8dc42b13951a96f5c0ca265ab5acf474c04c3 Mon Sep 17 00:00:00 2001 From: Masayuki Nakano Date: Thu, 23 Aug 2018 06:39:30 +0000 Subject: [PATCH 06/34] Bug 1484127 - part 1: Create HTMLEditor::GetTableCellElementAt() for internal use of nsITableEditor::GetCellAt() r=m_kato nsITableEditor::GetCellAt() is an XPCOM method, but this is called internally a lot. So, we should create non-virtual method for internal use. The XPCOM method retrieves a
element if given element is nullptr. However, no internal user needs this feature. So, we can create GetTableCellElementAt() simply. Then, we can get rid of nsresult and ErrorResult from it. Differential Revision: https://phabricator.services.mozilla.com/D3956 --HG-- extra : moz-landing-system : lando --- editor/libeditor/HTMLEditor.cpp | 10 +++- editor/libeditor/HTMLEditor.h | 25 ++++++++- editor/libeditor/HTMLTableEditor.cpp | 83 +++++++++++++++------------- editor/nsITableEditor.idl | 36 ++++++------ 4 files changed, 95 insertions(+), 59 deletions(-) diff --git a/editor/libeditor/HTMLEditor.cpp b/editor/libeditor/HTMLEditor.cpp index a8e8cd7246a1..d20909e155a4 100644 --- a/editor/libeditor/HTMLEditor.cpp +++ b/editor/libeditor/HTMLEditor.cpp @@ -1196,10 +1196,14 @@ HTMLEditor::TabInTable(bool inIsShift, getter_AddRefs(cell), nullptr, nullptr, &row, nullptr); - NS_ENSURE_SUCCESS(rv, rv); + if (NS_WARN_IF(NS_FAILED(rv))) { + return rv; + } + if (NS_WARN_IF(!tblElement)) { + return NS_ERROR_FAILURE; + } // ...so that we can ask for first cell in that row... - rv = GetCellAt(tblElement, row, 0, getter_AddRefs(cell)); - NS_ENSURE_SUCCESS(rv, rv); + cell = GetTableCellElementAt(*tblElement, row, 0); // ...and then set selection there. (Note that normally you should use // CollapseSelectionToDeepestNonTableFirstChild(), but we know cell is an // empty new cell, so this works fine) diff --git a/editor/libeditor/HTMLEditor.h b/editor/libeditor/HTMLEditor.h index d2688df5306b..8e7bd0193644 100644 --- a/editor/libeditor/HTMLEditor.h +++ b/editor/libeditor/HTMLEditor.h @@ -1104,6 +1104,29 @@ protected: // Shouldn't be used by friend classes ErrorResult& aRv); }; + /** + * GetTableCellElementAt() returns a
or element of aTableElement + * if there is a cell at the indexes. + * + * @param aTableElement Must be a element. + * @param aCellIndexes Indexes of cell which you want. + * If rowspan and/or colspan is specified 2 or + * larger, any indexes are allowed to retrieve + * the cell in the area. + * @return The cell element if there is in the
. + * Returns nullptr without error if the indexes + * are out of bounds. + */ + Element* GetTableCellElementAt(Element& aTableElement, + const CellIndexes& aCellIndexes) const + { + return GetTableCellElementAt(aTableElement, aCellIndexes.mRow, + aCellIndexes.mColumn); + } + Element* GetTableCellElementAt(Element& aTableElement, + int32_t aRowIndex, + int32_t aColumnIndex) const; + /** * PasteInternal() pasts text with replacing selected content. * This tries to dispatch ePaste event first. If its defaultPrevent() is @@ -1384,7 +1407,7 @@ protected: // Shouldn't be used by friend classes /** * Helper used to get nsTableWrapperFrame for a table. */ - nsTableWrapperFrame* GetTableFrame(Element* aTable); + static nsTableWrapperFrame* GetTableFrame(Element* aTable); /** * Needed to do appropriate deleting when last cell or row is about to be diff --git a/editor/libeditor/HTMLTableEditor.cpp b/editor/libeditor/HTMLTableEditor.cpp index 6d07a37cbfdc..c59660a35bb6 100644 --- a/editor/libeditor/HTMLTableEditor.cpp +++ b/editor/libeditor/HTMLTableEditor.cpp @@ -688,7 +688,7 @@ HTMLEditor::InsertTableRow(int32_t aNumber, // SetSelectionAfterTableEdit from AutoSelectionSetterAfterTableEdit will // access frame selection, so we need reframe. - // Because GetCellAt depends on frame. + // Because GetTableCellElementAt() depends on frame. nsCOMPtr ps = GetPresShell(); if (ps) { ps->FlushPendingNotifications(FlushType::Frames); @@ -1316,10 +1316,9 @@ HTMLEditor::DeleteTableRow(int32_t aNumber) } // Check if there's a cell in the "next" row - rv = GetCellAt(table, startRowIndex, startColIndex, getter_AddRefs(cell)); - NS_ENSURE_SUCCESS(rv, rv); + cell = GetTableCellElementAt(*table, startRowIndex, startColIndex); if (!cell) { - break; + return NS_OK; } } } @@ -2854,11 +2853,14 @@ HTMLEditor::CellIndexes::Update(Element& aCellElement, NS_WARNING_ASSERTION(!aRv.Failed(), "Failed to get cell indexes"); } +// static nsTableWrapperFrame* -HTMLEditor::GetTableFrame(Element* aTable) +HTMLEditor::GetTableFrame(Element* aTableElement) { - NS_ENSURE_TRUE(aTable, nullptr); - return do_QueryFrame(aTable->GetPrimaryFrame()); + if (NS_WARN_IF(!aTableElement)) { + return nullptr; + } + return do_QueryFrame(aTableElement->GetPrimaryFrame()); } //Return actual number of cells (a cell with colspan > 1 counts as just 1) @@ -3006,7 +3008,7 @@ HTMLEditor::GetCellDataAt(Element* aTable, aTable = table; } - nsTableWrapperFrame* tableFrame = GetTableFrame(aTable); + nsTableWrapperFrame* tableFrame = HTMLEditor::GetTableFrame(aTable); NS_ENSURE_TRUE(tableFrame, NS_ERROR_FAILURE); nsTableCellFrame* cellFrame = @@ -3028,48 +3030,55 @@ HTMLEditor::GetCellDataAt(Element* aTable, return NS_OK; } -// When all you want is the cell NS_IMETHODIMP -HTMLEditor::GetCellAt(Element* aTable, +HTMLEditor::GetCellAt(Element* aTableElement, int32_t aRowIndex, - int32_t aColIndex, - Element** aCell) + int32_t aColumnIndex, + Element** aCellElement) { - NS_ENSURE_ARG_POINTER(aCell); - *aCell = nullptr; + if (NS_WARN_IF(!aCellElement)) { + return NS_ERROR_INVALID_ARG; + } - // Needs to live as long as we use aTable - // XXX Really? Looks like it's safe to use raw pointer here. - // However, layout code change won't be handled by editor developers - // so that it must be safe to keep using RefPtr here. - RefPtr table; - if (!aTable) { + *aCellElement = nullptr; + + Element* tableElement = aTableElement; + if (!tableElement) { RefPtr selection = GetSelection(); if (NS_WARN_IF(!selection)) { return NS_ERROR_FAILURE; } // Get the selected table or the table enclosing the selection anchor. - table = + tableElement = GetElementOrParentByTagNameAtSelection(*selection, *nsGkAtoms::table); - if (NS_WARN_IF(!table)) { + if (NS_WARN_IF(!tableElement)) { return NS_ERROR_FAILURE; } - aTable = table; } - nsTableWrapperFrame* tableFrame = GetTableFrame(aTable); - if (!tableFrame) { - *aCell = nullptr; - return NS_SUCCESS_EDITOR_ELEMENT_NOT_FOUND; - } - - nsIContent* cell = tableFrame->GetCellAt(aRowIndex, aColIndex); - RefPtr cellElement = cell ? cell->AsElement() : nullptr; - cellElement.forget(aCell); - + RefPtr cellElement = + GetTableCellElementAt(*tableElement, aRowIndex, aColumnIndex); + cellElement.forget(aCellElement); return NS_OK; } +Element* +HTMLEditor::GetTableCellElementAt(Element& aTableElement, + int32_t aRowIndex, + int32_t aColumnIndex) const +{ + // Let's grab the
element while we're retrieving layout API since + // editor developers do not watch all layout API changes. So, it may + // become unsafe. + OwningNonNull tableElement(aTableElement); + nsTableWrapperFrame* tableFrame = HTMLEditor::GetTableFrame(tableElement); + if (!tableFrame) { + return nullptr; + } + nsIContent* cell = tableFrame->GetCellAt(aRowIndex, aColumnIndex); + return Element::FromNodeOrNull(cell); +} + // When all you want are the rowspan and colspan (not exposed in nsITableEditor) nsresult HTMLEditor::GetCellSpansAt(Element* aTable, @@ -3078,7 +3087,7 @@ HTMLEditor::GetCellSpansAt(Element* aTable, int32_t& aActualRowSpan, int32_t& aActualColSpan) { - nsTableWrapperFrame* tableFrame = GetTableFrame(aTable); + nsTableWrapperFrame* tableFrame = HTMLEditor::GetTableFrame(aTable); if (!tableFrame) { return NS_ERROR_FAILURE; } @@ -3403,11 +3412,7 @@ HTMLEditor::SetSelectionAfterTableEdit(Element* aTable, RefPtr cell; bool done = false; do { - nsresult rv = GetCellAt(aTable, aRow, aCol, getter_AddRefs(cell)); - if (NS_FAILED(rv)) { - break; - } - + cell = GetTableCellElementAt(*aTable, aRow, aCol); if (cell) { if (aSelected) { // Reselect the cell diff --git a/editor/nsITableEditor.idl b/editor/nsITableEditor.idl index 9fda8e93fde4..8959653315b4 100644 --- a/editor/nsITableEditor.idl +++ b/editor/nsITableEditor.idl @@ -185,22 +185,26 @@ interface nsITableEditor : nsISupports void getTableSize(in Element aTableOrElementInTable, out long aRowCount, out long aColCount); - /** Get a cell element at cellmap grid coordinates - * A cell that spans across multiple cellmap locations will - * be returned multiple times, once for each location it occupies - * - * @param aTable A table in the document - * @param aRowIndex, aColIndex The 0-based cellmap indexes - * - * (in C++ returns: NS_EDITOR_ELEMENT_NOT_FOUND if an element is not found - * passes NS_SUCCEEDED macro) - * - * You can scan for all cells in a row or column - * by iterating through the appropriate indexes - * until the returned aCell is null - */ - Element getCellAt(in Element aTable, - in long aRowIndex, in long aColIndex); + /** + * getCellAt() returns a
or element in a if there is a + * cell at the indexes. + * + * @param aTableElement If not null, must be a
element. + * If null, looks for the nearest ancestor
+ * to look for a cell. + * @param aRowIndex Row index of the cell. + * @param aColumnIndex Column index of the cell. + * @return Returns a
or element if there is. + * Otherwise, returns null without throwing + * exception. + * If aTableElement is not null and not a + * element, throwing an exception. + * If aTableElement is null and anchor of Selection + * is not in any
element, throwing an + * exception. + */ + Element getCellAt(in Element aTableElement, + in long aRowIndex, in long aColumnIndex); /** Get a cell at cellmap grid coordinates and associated data * A cell that spans across multiple cellmap locations will From eafbded463e0c7b6b40c52228a150d3a6a6ad61f Mon Sep 17 00:00:00 2001 From: Alexandre Poirot Date: Wed, 22 Aug 2018 12:16:23 +0000 Subject: [PATCH 07/34] Bug 1485300 - Remove duplicated implementation of NetworkObserver. r=Honza MozReview-Commit-ID: F3yDYfmsv59 Differential Revision: https://phabricator.services.mozilla.com/D3970 --HG-- extra : moz-landing-system : lando --- .../network-response-listener.js | 1048 ----------------- 1 file changed, 1048 deletions(-) diff --git a/devtools/server/actors/network-monitor/network-response-listener.js b/devtools/server/actors/network-monitor/network-response-listener.js index bf88d867a292..08773ba8f0e3 100644 --- a/devtools/server/actors/network-monitor/network-response-listener.js +++ b/devtools/server/actors/network-monitor/network-response-listener.js @@ -14,28 +14,12 @@ loader.lazyRequireGetter(this, "NetworkHelper", "devtools/shared/webconsole/network-helper"); loader.lazyRequireGetter(this, "DevToolsUtils", "devtools/shared/DevToolsUtils"); -loader.lazyRequireGetter(this, "NetworkThrottleManager", - "devtools/shared/webconsole/throttle", true); loader.lazyRequireGetter(this, "CacheEntry", "devtools/shared/platform/cache-entry", true); -loader.lazyRequireGetter(this, "matchRequest", - "devtools/server/actors/network-monitor/network-observer", true); loader.lazyImporter(this, "NetUtil", "resource://gre/modules/NetUtil.jsm"); -loader.lazyServiceGetter(this, "gActivityDistributor", - "@mozilla.org/network/http-activity-distributor;1", - "nsIHttpActivityDistributor"); // Network logging -// The maximum uint32 value. -const PR_UINT32_MAX = 4294967295; - -// HTTP status codes. -const HTTP_MOVED_PERMANENTLY = 301; -const HTTP_FOUND = 302; -const HTTP_SEE_OTHER = 303; -const HTTP_TEMPORARY_REDIRECT = 307; - /** * The network response listener implements the nsIStreamListener and * nsIRequestObserver interfaces. This is used within the NetworkObserver feature @@ -521,1035 +505,3 @@ NetworkResponseListener.prototype = { } }, }; - -/** - * The network monitor uses the nsIHttpActivityDistributor to monitor network - * requests. The nsIObserverService is also used for monitoring - * http-on-examine-response notifications. All network request information is - * routed to the remote Web Console. - * - * @constructor - * @param object filters - * Object with the filters to use for network requests: - * - window (nsIDOMWindow): filter network requests by the associated - * window object. - * - outerWindowID (number): filter requests by their top frame's outerWindowID. - * Filters are optional. If any of these filters match the request is - * logged (OR is applied). If no filter is provided then all requests are - * logged. - * @param object owner - * The network monitor owner. This object needs to hold: - * - onNetworkEvent(requestInfo) - * This method is invoked once for every new network request and it is - * given the initial network request information as an argument. - * onNetworkEvent() must return an object which holds several add*() - * methods which are used to add further network request/response information. - */ -function NetworkObserver(filters, owner) { - this.filters = filters; - this.owner = owner; - this.openRequests = new Map(); - this.openResponses = new Map(); - this._httpResponseExaminer = - DevToolsUtils.makeInfallible(this._httpResponseExaminer).bind(this); - this._httpModifyExaminer = - DevToolsUtils.makeInfallible(this._httpModifyExaminer).bind(this); - this._serviceWorkerRequest = this._serviceWorkerRequest.bind(this); - this._throttleData = null; - this._throttler = null; -} - -exports.NetworkObserver = NetworkObserver; - -NetworkObserver.prototype = { - filters: null, - - httpTransactionCodes: { - 0x5001: "REQUEST_HEADER", - 0x5002: "REQUEST_BODY_SENT", - 0x5003: "RESPONSE_START", - 0x5004: "RESPONSE_HEADER", - 0x5005: "RESPONSE_COMPLETE", - 0x5006: "TRANSACTION_CLOSE", - - 0x804b0003: "STATUS_RESOLVING", - 0x804b000b: "STATUS_RESOLVED", - 0x804b0007: "STATUS_CONNECTING_TO", - 0x804b0004: "STATUS_CONNECTED_TO", - 0x804b0005: "STATUS_SENDING_TO", - 0x804b000a: "STATUS_WAITING_FOR", - 0x804b0006: "STATUS_RECEIVING_FROM", - 0x804b000c: "STATUS_TLS_STARTING", - 0x804b000d: "STATUS_TLS_ENDING" - }, - - httpDownloadActivities: [ - gActivityDistributor.ACTIVITY_SUBTYPE_RESPONSE_START, - gActivityDistributor.ACTIVITY_SUBTYPE_RESPONSE_HEADER, - gActivityDistributor.ACTIVITY_SUBTYPE_RESPONSE_COMPLETE, - gActivityDistributor.ACTIVITY_SUBTYPE_TRANSACTION_CLOSE - ], - - // Network response bodies are piped through a buffer of the given size (in - // bytes). - responsePipeSegmentSize: null, - - owner: null, - - /** - * Whether to save the bodies of network requests and responses. - * @type boolean - */ - saveRequestAndResponseBodies: true, - - /** - * Object that holds the HTTP activity objects for ongoing requests. - */ - openRequests: null, - - /** - * Object that holds response headers coming from this._httpResponseExaminer. - */ - openResponses: null, - - /** - * The network monitor initializer. - */ - init: function() { - this.responsePipeSegmentSize = Services.prefs - .getIntPref("network.buffer.cache.size"); - this.interceptedChannels = new Set(); - - if (Services.appinfo.processType != Ci.nsIXULRuntime.PROCESS_TYPE_CONTENT) { - gActivityDistributor.addObserver(this); - Services.obs.addObserver(this._httpResponseExaminer, - "http-on-examine-response"); - Services.obs.addObserver(this._httpResponseExaminer, - "http-on-examine-cached-response"); - Services.obs.addObserver(this._httpModifyExaminer, - "http-on-modify-request"); - } - // In child processes, only watch for service worker requests - // everything else only happens in the parent process - Services.obs.addObserver(this._serviceWorkerRequest, - "service-worker-synthesized-response"); - }, - - get throttleData() { - return this._throttleData; - }, - - set throttleData(value) { - this._throttleData = value; - // Clear out any existing throttlers - this._throttler = null; - }, - - _getThrottler: function() { - if (this.throttleData !== null && this._throttler === null) { - this._throttler = new NetworkThrottleManager(this.throttleData); - } - return this._throttler; - }, - - _serviceWorkerRequest: function(subject, topic, data) { - const channel = subject.QueryInterface(Ci.nsIHttpChannel); - - if (!matchRequest(channel, this.filters)) { - return; - } - - this.interceptedChannels.add(subject); - - // Service workers never fire http-on-examine-cached-response, so fake one. - this._httpResponseExaminer(channel, "http-on-examine-cached-response"); - }, - - /** - * Observe notifications for the http-on-examine-response topic, coming from - * the nsIObserverService. - * - * @private - * @param nsIHttpChannel subject - * @param string topic - * @returns void - */ - _httpResponseExaminer: function(subject, topic) { - // The httpResponseExaminer is used to retrieve the uncached response - // headers. The data retrieved is stored in openResponses. The - // NetworkResponseListener is responsible with updating the httpActivity - // object with the data from the new object in openResponses. - - if (!this.owner || - (topic != "http-on-examine-response" && - topic != "http-on-examine-cached-response") || - !(subject instanceof Ci.nsIHttpChannel)) { - return; - } - - const channel = subject.QueryInterface(Ci.nsIHttpChannel); - - if (!matchRequest(channel, this.filters)) { - return; - } - - const response = { - id: gSequenceId(), - channel: channel, - headers: [], - cookies: [], - }; - - const setCookieHeaders = []; - - channel.visitOriginalResponseHeaders({ - visitHeader: function(name, value) { - const lowerName = name.toLowerCase(); - if (lowerName == "set-cookie") { - setCookieHeaders.push(value); - } - response.headers.push({ name: name, value: value }); - } - }); - - if (!response.headers.length) { - // No need to continue. - return; - } - - if (setCookieHeaders.length) { - response.cookies = setCookieHeaders.reduce((result, header) => { - const cookies = NetworkHelper.parseSetCookieHeader(header); - return result.concat(cookies); - }, []); - } - - // Determine the HTTP version. - const httpVersionMaj = {}; - const httpVersionMin = {}; - - channel.QueryInterface(Ci.nsIHttpChannelInternal); - channel.getResponseVersion(httpVersionMaj, httpVersionMin); - - response.status = channel.responseStatus; - response.statusText = channel.responseStatusText; - response.httpVersion = "HTTP/" + httpVersionMaj.value + "." + - httpVersionMin.value; - - this.openResponses.set(channel, response); - - if (topic === "http-on-examine-cached-response") { - // Service worker requests emits cached-reponse notification on non-e10s, - // and we fake one on e10s. - const fromServiceWorker = this.interceptedChannels.has(channel); - this.interceptedChannels.delete(channel); - - // If this is a cached response, there never was a request event - // so we need to construct one here so the frontend gets all the - // expected events. - const httpActivity = this._createNetworkEvent(channel, { - fromCache: !fromServiceWorker, - fromServiceWorker: fromServiceWorker - }); - httpActivity.owner.addResponseStart({ - httpVersion: response.httpVersion, - remoteAddress: "", - remotePort: "", - status: response.status, - statusText: response.statusText, - headersSize: 0, - }, "", true); - - // There also is never any timing events, so we can fire this - // event with zeroed out values. - const timings = this._setupHarTimings(httpActivity, true); - httpActivity.owner.addEventTimings(timings.total, timings.timings, - timings.offsets); - } - }, - - /** - * Observe notifications for the http-on-modify-request topic, coming from - * the nsIObserverService. - * - * @private - * @param nsIHttpChannel aSubject - * @returns void - */ - _httpModifyExaminer: function(subject) { - const throttler = this._getThrottler(); - if (throttler) { - const channel = subject.QueryInterface(Ci.nsIHttpChannel); - if (matchRequest(channel, this.filters)) { - // Read any request body here, before it is throttled. - const httpActivity = this.createOrGetActivityObject(channel); - this._onRequestBodySent(httpActivity); - throttler.manageUpload(channel); - } - } - }, - - /** - * A helper function for observeActivity. This does whatever work - * is required by a particular http activity event. Arguments are - * the same as for observeActivity. - */ - _dispatchActivity: function(httpActivity, channel, activityType, - activitySubtype, timestamp, extraSizeData, - extraStringData) { - const transCodes = this.httpTransactionCodes; - - // Store the time information for this activity subtype. - if (activitySubtype in transCodes) { - const stage = transCodes[activitySubtype]; - if (stage in httpActivity.timings) { - httpActivity.timings[stage].last = timestamp; - } else { - httpActivity.timings[stage] = { - first: timestamp, - last: timestamp, - }; - } - } - - switch (activitySubtype) { - case gActivityDistributor.ACTIVITY_SUBTYPE_REQUEST_BODY_SENT: - this._onRequestBodySent(httpActivity); - if (httpActivity.sentBody !== null) { - httpActivity.owner.addRequestPostData({ text: httpActivity.sentBody }); - httpActivity.sentBody = null; - } - break; - case gActivityDistributor.ACTIVITY_SUBTYPE_RESPONSE_HEADER: - this._onResponseHeader(httpActivity, extraStringData); - break; - case gActivityDistributor.ACTIVITY_SUBTYPE_TRANSACTION_CLOSE: - this._onTransactionClose(httpActivity); - break; - default: - break; - } - }, - - /** - * Begin observing HTTP traffic that originates inside the current tab. - * - * @see https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIHttpActivityObserver - * - * @param nsIHttpChannel channel - * @param number activityType - * @param number activitySubtype - * @param number timestamp - * @param number extraSizeData - * @param string extraStringData - */ - observeActivity: - DevToolsUtils.makeInfallible(function(channel, activityType, activitySubtype, - timestamp, extraSizeData, - extraStringData) { - if (!this.owner || - activityType != gActivityDistributor.ACTIVITY_TYPE_HTTP_TRANSACTION && - activityType != gActivityDistributor.ACTIVITY_TYPE_SOCKET_TRANSPORT) { - return; - } - - if (!(channel instanceof Ci.nsIHttpChannel)) { - return; - } - - channel = channel.QueryInterface(Ci.nsIHttpChannel); - - if (activitySubtype == - gActivityDistributor.ACTIVITY_SUBTYPE_REQUEST_HEADER) { - this._onRequestHeader(channel, timestamp, extraStringData); - return; - } - - // Iterate over all currently ongoing requests. If channel can't - // be found within them, then exit this function. - const httpActivity = this._findActivityObject(channel); - if (!httpActivity) { - return; - } - - // If we're throttling, we must not report events as they arrive - // from platform, but instead let the throttler emit the events - // after some time has elapsed. - if (httpActivity.downloadThrottle && - this.httpDownloadActivities.includes(activitySubtype)) { - const callback = this._dispatchActivity.bind(this); - httpActivity.downloadThrottle - .addActivityCallback(callback, httpActivity, channel, activityType, - activitySubtype, timestamp, extraSizeData, - extraStringData); - } else { - this._dispatchActivity(httpActivity, channel, activityType, - activitySubtype, timestamp, extraSizeData, - extraStringData); - } - }), - - /** - * - */ - _createNetworkEvent: function(channel, { timestamp, extraStringData, - fromCache, fromServiceWorker }) { - const httpActivity = this.createOrGetActivityObject(channel); - - channel.QueryInterface(Ci.nsIPrivateBrowsingChannel); - httpActivity.private = channel.isChannelPrivate; - - if (timestamp) { - httpActivity.timings.REQUEST_HEADER = { - first: timestamp, - last: timestamp - }; - } - - const event = {}; - event.method = channel.requestMethod; - event.channelId = channel.channelId; - event.url = channel.URI.spec; - event.private = httpActivity.private; - event.headersSize = 0; - event.startedDateTime = - (timestamp ? new Date(Math.round(timestamp / 1000)) : new Date()) - .toISOString(); - event.fromCache = fromCache; - event.fromServiceWorker = fromServiceWorker; - httpActivity.fromServiceWorker = fromServiceWorker; - - if (extraStringData) { - event.headersSize = extraStringData.length; - } - - // Determine the cause and if this is an XHR request. - let causeType = Ci.nsIContentPolicy.TYPE_OTHER; - let causeUri = null; - let stacktrace; - - if (channel.loadInfo) { - causeType = channel.loadInfo.externalContentPolicyType; - const { loadingPrincipal } = channel.loadInfo; - if (loadingPrincipal && loadingPrincipal.URI) { - causeUri = loadingPrincipal.URI.spec; - } - } - - event.cause = { - type: causeTypeToString(causeType), - loadingDocumentUri: causeUri, - stacktrace - }; - - httpActivity.isXHR = event.isXHR = - (causeType === Ci.nsIContentPolicy.TYPE_XMLHTTPREQUEST || - causeType === Ci.nsIContentPolicy.TYPE_FETCH); - - // Determine the HTTP version. - const httpVersionMaj = {}; - const httpVersionMin = {}; - channel.QueryInterface(Ci.nsIHttpChannelInternal); - channel.getRequestVersion(httpVersionMaj, httpVersionMin); - - event.httpVersion = "HTTP/" + httpVersionMaj.value + "." + - httpVersionMin.value; - - event.discardRequestBody = !this.saveRequestAndResponseBodies; - event.discardResponseBody = !this.saveRequestAndResponseBodies; - - const headers = []; - let cookies = []; - let cookieHeader = null; - - // Copy the request header data. - channel.visitRequestHeaders({ - visitHeader: function(name, value) { - if (name == "Cookie") { - cookieHeader = value; - } - headers.push({ name: name, value: value }); - } - }); - - if (cookieHeader) { - cookies = NetworkHelper.parseCookieHeader(cookieHeader); - } - - httpActivity.owner = this.owner.onNetworkEvent(event); - - this._setupResponseListener(httpActivity, fromCache); - - httpActivity.owner.addRequestHeaders(headers, extraStringData); - httpActivity.owner.addRequestCookies(cookies); - - return httpActivity; - }, - - /** - * Handler for ACTIVITY_SUBTYPE_REQUEST_HEADER. When a request starts the - * headers are sent to the server. This method creates the |httpActivity| - * object where we store the request and response information that is - * collected through its lifetime. - * - * @private - * @param nsIHttpChannel channel - * @param number timestamp - * @param string extraStringData - * @return void - */ - _onRequestHeader: function(channel, timestamp, extraStringData) { - if (!matchRequest(channel, this.filters)) { - return; - } - - this._createNetworkEvent(channel, { timestamp, extraStringData }); - }, - - /** - * Find an HTTP activity object for the channel. - * - * @param nsIHttpChannel channel - * The HTTP channel whose activity object we want to find. - * @return object - * The HTTP activity object, or null if it is not found. - */ - _findActivityObject: function(channel) { - return this.openRequests.get(channel) || null; - }, - - /** - * Find an existing HTTP activity object, or create a new one. This - * object is used for storing all the request and response - * information. - * - * This is a HAR-like object. Conformance to the spec is not guaranteed at - * this point. - * - * @see http://www.softwareishard.com/blog/har-12-spec - * @param nsIHttpChannel channel - * The HTTP channel for which the HTTP activity object is created. - * @return object - * The new HTTP activity object. - */ - createOrGetActivityObject: function(channel) { - let httpActivity = this._findActivityObject(channel); - if (!httpActivity) { - const win = NetworkHelper.getWindowForRequest(channel); - const charset = win ? win.document.characterSet : null; - - httpActivity = { - id: gSequenceId(), - channel: channel, - // see _onRequestBodySent() - charset: charset, - sentBody: null, - url: channel.URI.spec, - headersSize: null, - // needed for host specific security info - hostname: channel.URI.host, - discardRequestBody: !this.saveRequestAndResponseBodies, - discardResponseBody: !this.saveRequestAndResponseBodies, - // internal timing information, see observeActivity() - timings: {}, - // see _onResponseHeader() - responseStatus: null, - // the activity owner which is notified when changes happen - owner: null, - }; - - this.openRequests.set(channel, httpActivity); - } - - return httpActivity; - }, - - /** - * Setup the network response listener for the given HTTP activity. The - * NetworkResponseListener is responsible for storing the response body. - * - * @private - * @param object httpActivity - * The HTTP activity object we are tracking. - */ - _setupResponseListener: function(httpActivity, fromCache) { - const channel = httpActivity.channel; - channel.QueryInterface(Ci.nsITraceableChannel); - - if (!fromCache) { - const throttler = this._getThrottler(); - if (throttler) { - httpActivity.downloadThrottle = throttler.manage(channel); - } - } - - // The response will be written into the outputStream of this pipe. - // This allows us to buffer the data we are receiving and read it - // asynchronously. - // Both ends of the pipe must be blocking. - const sink = Cc["@mozilla.org/pipe;1"].createInstance(Ci.nsIPipe); - - // The streams need to be blocking because this is required by the - // stream tee. - sink.init(false, false, this.responsePipeSegmentSize, PR_UINT32_MAX, null); - - // Add listener for the response body. - const newListener = new NetworkResponseListener(this, httpActivity); - - // Remember the input stream, so it isn't released by GC. - newListener.inputStream = sink.inputStream; - newListener.sink = sink; - - const tee = Cc["@mozilla.org/network/stream-listener-tee;1"] - .createInstance(Ci.nsIStreamListenerTee); - - const originalListener = channel.setNewListener(tee); - - tee.init(originalListener, sink.outputStream, newListener); - }, - - /** - * Handler for ACTIVITY_SUBTYPE_REQUEST_BODY_SENT. The request body is logged - * here. - * - * @private - * @param object httpActivity - * The HTTP activity object we are working with. - */ - _onRequestBodySent: function(httpActivity) { - // Return early if we don't need the request body, or if we've - // already found it. - if (httpActivity.discardRequestBody || httpActivity.sentBody !== null) { - return; - } - - let sentBody = NetworkHelper.readPostTextFromRequest(httpActivity.channel, - httpActivity.charset); - - if (sentBody !== null && this.window && - httpActivity.url == this.window.location.href) { - // If the request URL is the same as the current page URL, then - // we can try to get the posted text from the page directly. - // This check is necessary as otherwise the - // NetworkHelper.readPostTextFromPageViaWebNav() - // function is called for image requests as well but these - // are not web pages and as such don't store the posted text - // in the cache of the webpage. - const webNav = this.window.docShell.QueryInterface(Ci.nsIWebNavigation); - sentBody = NetworkHelper - .readPostTextFromPageViaWebNav(webNav, httpActivity.charset); - } - - if (sentBody !== null) { - httpActivity.sentBody = sentBody; - } - }, - - /** - * Handler for ACTIVITY_SUBTYPE_RESPONSE_HEADER. This method stores - * information about the response headers. - * - * @private - * @param object httpActivity - * The HTTP activity object we are working with. - * @param string extraStringData - * The uncached response headers. - */ - _onResponseHeader: function(httpActivity, extraStringData) { - // extraStringData contains the uncached response headers. The first line - // contains the response status (e.g. HTTP/1.1 200 OK). - // - // Note: The response header is not saved here. Calling the - // channel.visitResponseHeaders() method at this point sometimes causes an - // NS_ERROR_NOT_AVAILABLE exception. - // - // We could parse extraStringData to get the headers and their values, but - // that is not trivial to do in an accurate manner. Hence, we save the - // response headers in this._httpResponseExaminer(). - - const headers = extraStringData.split(/\r\n|\n|\r/); - const statusLine = headers.shift(); - const statusLineArray = statusLine.split(" "); - - const response = {}; - response.httpVersion = statusLineArray.shift(); - response.remoteAddress = httpActivity.channel.remoteAddress; - response.remotePort = httpActivity.channel.remotePort; - response.status = statusLineArray.shift(); - response.statusText = statusLineArray.join(" "); - response.headersSize = extraStringData.length; - - httpActivity.responseStatus = response.status; - httpActivity.headersSize = response.headersSize; - - // Discard the response body for known response statuses. - switch (parseInt(response.status, 10)) { - case HTTP_MOVED_PERMANENTLY: - case HTTP_FOUND: - case HTTP_SEE_OTHER: - case HTTP_TEMPORARY_REDIRECT: - httpActivity.discardResponseBody = true; - break; - } - - response.discardResponseBody = httpActivity.discardResponseBody; - - httpActivity.owner.addResponseStart(response, extraStringData); - }, - - /** - * Handler for ACTIVITY_SUBTYPE_TRANSACTION_CLOSE. This method updates the HAR - * timing information on the HTTP activity object and clears the request - * from the list of known open requests. - * - * @private - * @param object httpActivity - * The HTTP activity object we work with. - */ - _onTransactionClose: function(httpActivity) { - const result = this._setupHarTimings(httpActivity); - httpActivity.owner.addEventTimings(result.total, result.timings, - result.offsets); - this.openRequests.delete(httpActivity.channel); - }, - - /** - * Update the HTTP activity object to include timing information as in the HAR - * spec. The HTTP activity object holds the raw timing information in - * |timings| - these are timings stored for each activity notification. The - * HAR timing information is constructed based on these lower level - * data. - * - * @param object httpActivity - * The HTTP activity object we are working with. - * @param boolean fromCache - * Indicates that the result was returned from the browser cache - * @return object - * This object holds two properties: - * - total - the total time for all of the request and response. - * - timings - the HAR timings object. - */ - _setupHarTimings: function(httpActivity, fromCache) { - if (fromCache) { - // If it came from the browser cache, we have no timing - // information and these should all be 0 - return { - total: 0, - timings: { - blocked: 0, - dns: 0, - ssl: 0, - connect: 0, - send: 0, - wait: 0, - receive: 0 - }, - offsets: { - blocked: 0, - dns: 0, - ssl: 0, - connect: 0, - send: 0, - wait: 0, - receive: 0 - } - }; - } - - const timings = httpActivity.timings; - const harTimings = {}; - // If the TCP Fast Open option or tls1.3 0RTT is used tls and data can - // be dispatched in SYN packet and not after tcp socket is connected. - // To demostrate this properly we will calculated TLS and send start time - // relative to CONNECTING_TO. - // Similary if 0RTT is used, data can be sent as soon as a TLS handshake - // starts. - let secureConnectionStartTime = 0; - let secureConnectionStartTimeRelative = false; - let startSendingTime = 0; - let startSendingTimeRelative = false; - - if (timings.STATUS_RESOLVING && timings.STATUS_CONNECTING_TO) { - harTimings.blocked = timings.STATUS_RESOLVING.first - - timings.REQUEST_HEADER.first; - } else if (timings.STATUS_SENDING_TO) { - harTimings.blocked = timings.STATUS_SENDING_TO.first - - timings.REQUEST_HEADER.first; - } else { - harTimings.blocked = -1; - } - - // DNS timing information is available only in when the DNS record is not - // cached. - harTimings.dns = timings.STATUS_RESOLVING && timings.STATUS_RESOLVED ? - timings.STATUS_RESOLVED.last - - timings.STATUS_RESOLVING.first : -1; - - if (timings.STATUS_CONNECTING_TO && timings.STATUS_CONNECTED_TO) { - harTimings.connect = timings.STATUS_CONNECTED_TO.last - - timings.STATUS_CONNECTING_TO.first; - } else { - harTimings.connect = -1; - } - - if (timings.STATUS_TLS_STARTING && timings.STATUS_TLS_ENDING) { - harTimings.ssl = timings.STATUS_TLS_ENDING.last - - timings.STATUS_TLS_STARTING.first; - if (timings.STATUS_CONNECTING_TO) { - secureConnectionStartTime = - timings.STATUS_TLS_STARTING.first - timings.STATUS_CONNECTING_TO.first; - } - if (secureConnectionStartTime < 0) { - secureConnectionStartTime = 0; - } - secureConnectionStartTimeRelative = true; - } else { - harTimings.ssl = -1; - } - - // sometimes the connection information events are attached to a speculative - // channel instead of this one, but necko might glue them back together in the - // nsITimedChannel interface used by Resource and Navigation Timing - const timedChannel = httpActivity.channel.QueryInterface(Ci.nsITimedChannel); - - let tcTcpConnectEndTime = 0; - let tcConnectStartTime = 0; - let tcConnectEndTime = 0; - let tcSecureConnectionStartTime = 0; - let tcDomainLookupEndTime = 0; - let tcDomainLookupStartTime = 0; - - if (timedChannel) { - tcTcpConnectEndTime = timedChannel.tcpConnectEndTime; - tcConnectStartTime = timedChannel.connectStartTime; - tcConnectEndTime = timedChannel.connectEndTime; - tcSecureConnectionStartTime = timedChannel.secureConnectionStartTime; - tcDomainLookupEndTime = timedChannel.domainLookupEndTime; - tcDomainLookupStartTime = timedChannel.domainLookupStartTime; - } - - // Make sure the above values are at least timedChannel.asyncOpenTime. - if (timedChannel && timedChannel.asyncOpenTime) { - if ((tcTcpConnectEndTime != 0) && - (tcTcpConnectEndTime < timedChannel.asyncOpenTime)) { - tcTcpConnectEndTime = 0; - } - if ((tcConnectStartTime != 0) && - (tcConnectStartTime < timedChannel.asyncOpenTime)) { - tcConnectStartTime = 0; - } - if ((tcConnectEndTime != 0) && - (tcConnectEndTime < timedChannel.asyncOpenTime)) { - tcConnectEndTime = 0; - } - if ((tcSecureConnectionStartTime != 0) && - (tcSecureConnectionStartTime < timedChannel.asyncOpenTime)) { - tcSecureConnectionStartTime = 0; - } - if ((tcDomainLookupEndTime != 0) && - (tcDomainLookupEndTime < timedChannel.asyncOpenTime)) { - tcDomainLookupEndTime = 0; - } - if ((tcDomainLookupStartTime != 0) && - (tcDomainLookupStartTime < timedChannel.asyncOpenTime)) { - tcDomainLookupStartTime = 0; - } - } - - if ((harTimings.connect <= 0) && timedChannel && - (tcTcpConnectEndTime != 0) && (tcConnectStartTime != 0)) { - harTimings.connect = tcTcpConnectEndTime - tcConnectStartTime; - if (tcSecureConnectionStartTime != 0) { - harTimings.ssl = tcConnectEndTime - tcSecureConnectionStartTime; - secureConnectionStartTime = - tcSecureConnectionStartTime - tcConnectStartTime; - secureConnectionStartTimeRelative = true; - } else { - harTimings.ssl = -1; - } - } else if (timedChannel && timings.STATUS_TLS_STARTING && - (tcSecureConnectionStartTime != 0)) { - // It can happen that TCP Fast Open actually have not sent any data and - // timings.STATUS_TLS_STARTING.first value will be corrected in - // timedChannel.secureConnectionStartTime - if (tcSecureConnectionStartTime > timings.STATUS_TLS_STARTING.first) { - // TCP Fast Open actually did not sent any data. - harTimings.ssl = - tcConnectEndTime - tcSecureConnectionStartTime; - secureConnectionStartTimeRelative = false; - } - } - - if ((harTimings.dns <= 0) && timedChannel && - (tcDomainLookupEndTime != 0) && (tcDomainLookupStartTime != 0)) { - harTimings.dns = tcDomainLookupEndTime - tcDomainLookupStartTime; - } - - if (timings.STATUS_SENDING_TO) { - harTimings.send = - timings.STATUS_SENDING_TO.last - timings.STATUS_SENDING_TO.first; - if (timings.STATUS_CONNECTING_TO) { - startSendingTime = - timings.STATUS_SENDING_TO.first - timings.STATUS_CONNECTING_TO.first; - startSendingTimeRelative = true; - } else if (tcConnectStartTime != 0) { - startSendingTime = timings.STATUS_SENDING_TO.first - tcConnectStartTime; - startSendingTimeRelative = true; - } - if (startSendingTime < 0) { - startSendingTime = 0; - } - } else if (timings.REQUEST_HEADER && timings.REQUEST_BODY_SENT) { - harTimings.send = timings.REQUEST_BODY_SENT.last - timings.REQUEST_HEADER.first; - } else { - harTimings.send = -1; - } - - if (timings.RESPONSE_START) { - harTimings.wait = timings.RESPONSE_START.first - - (timings.REQUEST_BODY_SENT || - timings.STATUS_SENDING_TO).last; - } else { - harTimings.wait = -1; - } - - if (timings.RESPONSE_START && timings.RESPONSE_COMPLETE) { - harTimings.receive = timings.RESPONSE_COMPLETE.last - - timings.RESPONSE_START.first; - } else { - harTimings.receive = -1; - } - - if (secureConnectionStartTimeRelative) { - const time = Math.max(Math.round(secureConnectionStartTime / 1000), -1); - secureConnectionStartTime = time; - } - if (startSendingTimeRelative) { - const time = Math.max(Math.round(startSendingTime / 1000), -1); - startSendingTime = time; - } - - const ot = this._calculateOffsetAndTotalTime(harTimings, - secureConnectionStartTime, - startSendingTimeRelative, - secureConnectionStartTimeRelative, - startSendingTime); - return { - total: ot.total, - timings: harTimings, - offsets: ot.offsets - }; - }, - - _calculateOffsetAndTotalTime: function(harTimings, - secureConnectionStartTime, - startSendingTimeRelative, - secureConnectionStartTimeRelative, - startSendingTime) { - let totalTime = 0; - for (const timing in harTimings) { - const time = Math.max(Math.round(harTimings[timing] / 1000), -1); - harTimings[timing] = time; - if ((time > -1) && (timing != "connect") && (timing != "ssl")) { - totalTime += time; - } - } - - // connect, ssl and send times can be overlapped. - if (startSendingTimeRelative) { - totalTime += startSendingTime; - } else if (secureConnectionStartTimeRelative) { - totalTime += secureConnectionStartTime; - totalTime += harTimings.ssl; - } - - const offsets = {}; - offsets.blocked = 0; - offsets.dns = harTimings.blocked; - offsets.connect = offsets.dns + harTimings.dns; - if (secureConnectionStartTimeRelative) { - offsets.ssl = offsets.connect + secureConnectionStartTime; - } else { - offsets.ssl = offsets.connect + harTimings.connect; - } - if (startSendingTimeRelative) { - offsets.send = offsets.connect + startSendingTime; - if (!secureConnectionStartTimeRelative) { - offsets.ssl = offsets.send - harTimings.ssl; - } - } else { - offsets.send = offsets.ssl + harTimings.ssl; - } - offsets.wait = offsets.send + harTimings.send; - offsets.receive = offsets.wait + harTimings.wait; - - return { - total: totalTime, - offsets: offsets - }; - }, - - /** - * Suspend Web Console activity. This is called when all Web Consoles are - * closed. - */ - destroy: function() { - if (Services.appinfo.processType != Ci.nsIXULRuntime.PROCESS_TYPE_CONTENT) { - gActivityDistributor.removeObserver(this); - Services.obs.removeObserver(this._httpResponseExaminer, - "http-on-examine-response"); - Services.obs.removeObserver(this._httpResponseExaminer, - "http-on-examine-cached-response"); - Services.obs.removeObserver(this._httpModifyExaminer, - "http-on-modify-request"); - } - - Services.obs.removeObserver(this._serviceWorkerRequest, - "service-worker-synthesized-response"); - - this.interceptedChannels.clear(); - this.openRequests.clear(); - this.openResponses.clear(); - this.owner = null; - this.filters = null; - this._throttler = null; - }, -}; - -function gSequenceId() { - return gSequenceId.n++; -} -gSequenceId.n = 1; - -/** - * Convert a nsIContentPolicy constant to a display string - */ -const LOAD_CAUSE_STRINGS = { - [Ci.nsIContentPolicy.TYPE_INVALID]: "invalid", - [Ci.nsIContentPolicy.TYPE_OTHER]: "other", - [Ci.nsIContentPolicy.TYPE_SCRIPT]: "script", - [Ci.nsIContentPolicy.TYPE_IMAGE]: "img", - [Ci.nsIContentPolicy.TYPE_STYLESHEET]: "stylesheet", - [Ci.nsIContentPolicy.TYPE_OBJECT]: "object", - [Ci.nsIContentPolicy.TYPE_DOCUMENT]: "document", - [Ci.nsIContentPolicy.TYPE_SUBDOCUMENT]: "subdocument", - [Ci.nsIContentPolicy.TYPE_REFRESH]: "refresh", - [Ci.nsIContentPolicy.TYPE_XBL]: "xbl", - [Ci.nsIContentPolicy.TYPE_PING]: "ping", - [Ci.nsIContentPolicy.TYPE_XMLHTTPREQUEST]: "xhr", - [Ci.nsIContentPolicy.TYPE_OBJECT_SUBREQUEST]: "objectSubdoc", - [Ci.nsIContentPolicy.TYPE_DTD]: "dtd", - [Ci.nsIContentPolicy.TYPE_FONT]: "font", - [Ci.nsIContentPolicy.TYPE_MEDIA]: "media", - [Ci.nsIContentPolicy.TYPE_WEBSOCKET]: "websocket", - [Ci.nsIContentPolicy.TYPE_CSP_REPORT]: "csp", - [Ci.nsIContentPolicy.TYPE_XSLT]: "xslt", - [Ci.nsIContentPolicy.TYPE_BEACON]: "beacon", - [Ci.nsIContentPolicy.TYPE_FETCH]: "fetch", - [Ci.nsIContentPolicy.TYPE_IMAGESET]: "imageset", - [Ci.nsIContentPolicy.TYPE_WEB_MANIFEST]: "webManifest" -}; - -function causeTypeToString(causeType) { - return LOAD_CAUSE_STRINGS[causeType] || "unknown"; -} From eed058e5081ce072c4dc6c1941296365e0b5ef79 Mon Sep 17 00:00:00 2001 From: fvsch Date: Thu, 23 Aug 2018 07:59:53 +0000 Subject: [PATCH 08/34] Bug 1479750 - Part 1: Tweak clear icon and devtools-separator style; r=nchevobbe Differential Revision: https://phabricator.services.mozilla.com/D3482 --HG-- extra : moz-landing-system : lando --- .../netmonitor/src/assets/styles/Toolbar.css | 4 -- devtools/client/themes/images/clear.svg | 4 +- devtools/client/themes/toolbars.css | 38 +++++++++++-------- devtools/client/themes/toolbox.css | 7 +++- devtools/client/themes/webconsole.css | 5 +-- 5 files changed, 31 insertions(+), 27 deletions(-) diff --git a/devtools/client/netmonitor/src/assets/styles/Toolbar.css b/devtools/client/netmonitor/src/assets/styles/Toolbar.css index e9ded6e3a53a..47b9599e5626 100644 --- a/devtools/client/netmonitor/src/assets/styles/Toolbar.css +++ b/devtools/client/netmonitor/src/assets/styles/Toolbar.css @@ -33,10 +33,6 @@ align-items: center; } -.devtools-toolbar-group .devtools-separator { - height: 24px; -} - .devtools-toolbar-two-rows-1, .devtools-toolbar-two-rows-2, .devtools-toolbar-single-row { diff --git a/devtools/client/themes/images/clear.svg b/devtools/client/themes/images/clear.svg index 72b83baf14e1..c27baa554791 100644 --- a/devtools/client/themes/images/clear.svg +++ b/devtools/client/themes/images/clear.svg @@ -2,6 +2,6 @@ - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> - - + + diff --git a/devtools/client/themes/toolbars.css b/devtools/client/themes/toolbars.css index 31b1ea862355..60d728bf93b8 100644 --- a/devtools/client/themes/toolbars.css +++ b/devtools/client/themes/toolbars.css @@ -4,17 +4,20 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* CSS Variables specific to the devtools toolbar that aren't defined by the themes */ +:root { + --magnifying-glass-image: url(chrome://devtools/skin/images/search.svg); + --filter-image: url(chrome://devtools/skin/images/filter.svg); + --tool-options-image: url(chrome://devtools/skin/images/tool-options.svg); + --separator-block-margin: 4px; + --separator-inline-margin: 1px; +} + .theme-light { --searchbox-background-color: var(--theme-highlight-yellow); --searchbox-border-color: #ffbf00; --searcbox-no-match-background-color: #ffe5e5; --searcbox-no-match-border-color: #e52e2e; - - --magnifying-glass-image: url(chrome://devtools/skin/images/search.svg); - --filter-image: url(chrome://devtools/skin/images/filter.svg); - --tool-options-image: url(chrome://devtools/skin/images/tool-options.svg); - - --separator-border-image: linear-gradient(transparent 4px, rgba(0,0,0,.1) 4px, rgba(0,0,0,.1) calc(100% - 4px), transparent calc(100% - 4px)); + --separator-border-color: rgba(0,0,0,.1); } .theme-dark { @@ -22,12 +25,7 @@ --searchbox-border-color: #d99f2b; --searcbox-no-match-background-color: #402325; --searcbox-no-match-border-color: #cc3d3d; - - --magnifying-glass-image: url(chrome://devtools/skin/images/search.svg); - --filter-image: url(chrome://devtools/skin/images/filter.svg); - --tool-options-image: url(chrome://devtools/skin/images/tool-options.svg); - - --separator-border-image: linear-gradient(transparent 4px, rgba(100%,100%,100%,.2) 4px, rgba(100%,100%,100%,.2) calc(100% - 4px), transparent calc(100% - 4px)); + --separator-border-color: rgba(100%,100%,100%,.2); } /* Toolbars */ @@ -73,10 +71,20 @@ border-bottom: none; } +/* Expected space around a separator: + * ----------------------- + * 4 + * [button] 2 | 2 [button] + * 4 + * ----------------------- + * We're using a 1px horizontal margin, since buttons already have their own + * 1px horizontal margin, and margins don't collapse between flex items. + * Some separators may be using a bigger, 6px horizontal margin. + */ .devtools-separator { - border-inline-start: 1px solid; - border-image: var(--separator-border-image) 1 1; - height: inherit; + border-inline-start: 1px solid var(--separator-border-color); + height: calc(100% - 2 * var(--separator-block-margin)); + margin: var(--separator-block-margin) var(--separator-inline-margin); } /* In-tools sidebar */ diff --git a/devtools/client/themes/toolbox.css b/devtools/client/themes/toolbox.css index d2deb49656ff..144d93265743 100644 --- a/devtools/client/themes/toolbox.css +++ b/devtools/client/themes/toolbox.css @@ -205,9 +205,12 @@ margin-inline-end: 3px; } +#toolbox-buttons-start > .devtools-separator { + --separator-inline-margin: 0; +} + #toolbox-buttons-end > .devtools-separator { - margin-inline-start: 5px; - margin-inline-end: 5px; + --separator-inline-margin: 5px; } #toolbox-close { diff --git a/devtools/client/themes/webconsole.css b/devtools/client/themes/webconsole.css index 43c7f901c44d..d791be274f54 100644 --- a/devtools/client/themes/webconsole.css +++ b/devtools/client/themes/webconsole.css @@ -538,6 +538,7 @@ a.learn-more-link.webconsole-learn-more-link { } .devtools-toolbar.webconsole-filterbar-secondary { + --separator-inline-margin: 5px; display: flex; width: 100%; align-items: center; @@ -588,10 +589,6 @@ a.learn-more-link.webconsole-learn-more-link { -moz-user-select: none; } -.webconsole-filterbar-secondary .devtools-separator { - margin: 0 5px; -} - .webconsole-filterbar-filtered-messages { /* Needed so the bar takes the whole horizontal space when it is wrapped */ flex-grow: 1; From 905bea9a0c1fc565166fdb4b704b17bdac1c0b11 Mon Sep 17 00:00:00 2001 From: fvsch Date: Thu, 23 Aug 2018 08:00:24 +0000 Subject: [PATCH 09/34] Bug 1479750 - Part 2: Improve console alignment, visual consistency and icons; r=nchevobbe Depends on D3482 Differential Revision: https://phabricator.services.mozilla.com/D3483 --HG-- extra : moz-landing-system : lando --- devtools/client/jar.mn | 5 +- devtools/client/themes/debugger.css | 14 +- .../client/themes/images/commandline-icon.svg | 42 -- .../client/themes/images/webconsole/alert.svg | 7 + .../client/themes/images/webconsole/info.svg | 7 + .../client/themes/images/webconsole/input.svg | 8 + .../themes/images/webconsole/return.svg | 7 + devtools/client/themes/variables.css | 12 +- devtools/client/themes/webconsole.css | 531 ++++++++---------- .../webconsole/components/CollapseButton.js | 12 +- 10 files changed, 282 insertions(+), 363 deletions(-) delete mode 100644 devtools/client/themes/images/commandline-icon.svg create mode 100644 devtools/client/themes/images/webconsole/alert.svg create mode 100644 devtools/client/themes/images/webconsole/info.svg create mode 100644 devtools/client/themes/images/webconsole/input.svg create mode 100644 devtools/client/themes/images/webconsole/return.svg diff --git a/devtools/client/jar.mn b/devtools/client/jar.mn index d1e1f17899bb..a04e46e51a81 100644 --- a/devtools/client/jar.mn +++ b/devtools/client/jar.mn @@ -130,7 +130,6 @@ devtools.jar: skin/images/filetypes/dir-close.svg (themes/images/filetypes/dir-close.svg) skin/images/filetypes/dir-open.svg (themes/images/filetypes/dir-open.svg) skin/images/filetypes/globe.svg (themes/images/filetypes/globe.svg) - skin/images/commandline-icon.svg (themes/images/commandline-icon.svg) skin/images/alerticon-warning.png (themes/images/alerticon-warning.png) skin/images/alerticon-warning@2x.png (themes/images/alerticon-warning@2x.png) skin/rules.css (themes/rules.css) @@ -151,6 +150,10 @@ devtools.jar: skin/images/breakpoint.svg (themes/images/breakpoint.svg) skin/webconsole.css (themes/webconsole.css) skin/images/webconsole.svg (themes/images/webconsole.svg) + skin/images/webconsole/alert.svg (themes/images/webconsole/alert.svg) + skin/images/webconsole/info.svg (themes/images/webconsole/info.svg) + skin/images/webconsole/input.svg (themes/images/webconsole/input.svg) + skin/images/webconsole/return.svg (themes/images/webconsole/return.svg) skin/images/breadcrumbs-scrollbutton.svg (themes/images/breadcrumbs-scrollbutton.svg) skin/animation.css (themes/animation.css) skin/animationinspector.css (themes/animationinspector.css) diff --git a/devtools/client/themes/debugger.css b/devtools/client/themes/debugger.css index 4c42f3cdd650..fc2fff8fb3d7 100644 --- a/devtools/client/themes/debugger.css +++ b/devtools/client/themes/debugger.css @@ -285,10 +285,16 @@ } .dbg-expression-arrow { - background-image: var(--theme-command-line-image-focus); - width: 16px; - height: 16px; - margin: 2px; + background-image: var(--theme-console-input-image); + width: 12px; + height: 12px; + margin: 4px; + -moz-context-properties: fill; + fill: #75BFFF; +} + +.theme-light .dbg-expression-arrow { + fill: #0060DF; } .dbg-expression-input { diff --git a/devtools/client/themes/images/commandline-icon.svg b/devtools/client/themes/images/commandline-icon.svg deleted file mode 100644 index d48ede604159..000000000000 --- a/devtools/client/themes/images/commandline-icon.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/devtools/client/themes/images/webconsole/alert.svg b/devtools/client/themes/images/webconsole/alert.svg new file mode 100644 index 000000000000..972bd6e5ce16 --- /dev/null +++ b/devtools/client/themes/images/webconsole/alert.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/devtools/client/themes/images/webconsole/info.svg b/devtools/client/themes/images/webconsole/info.svg new file mode 100644 index 000000000000..28827fdeff62 --- /dev/null +++ b/devtools/client/themes/images/webconsole/info.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/devtools/client/themes/images/webconsole/input.svg b/devtools/client/themes/images/webconsole/input.svg new file mode 100644 index 000000000000..388e36e28024 --- /dev/null +++ b/devtools/client/themes/images/webconsole/input.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/devtools/client/themes/images/webconsole/return.svg b/devtools/client/themes/images/webconsole/return.svg new file mode 100644 index 000000000000..35a8e7221c56 --- /dev/null +++ b/devtools/client/themes/images/webconsole/return.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/devtools/client/themes/variables.css b/devtools/client/themes/variables.css index 1a5cc777d99c..123517d09958 100644 --- a/devtools/client/themes/variables.css +++ b/devtools/client/themes/variables.css @@ -102,10 +102,6 @@ --theme-arrowpanel-dimmed-further: hsla(0,0%,80%,.45); --theme-arrowpanel-disabled-color: GrayText; - /* Command line */ - --theme-command-line-image: url(chrome://devtools/skin/images/commandline-icon.svg#light-theme); - --theme-command-line-image-focus: url(chrome://devtools/skin/images/commandline-icon.svg#light-theme-focus); - --theme-codemirror-gutter-background: #f4f4f4; --theme-messageCloseButtonFilter: invert(0); } @@ -209,10 +205,6 @@ --theme-arrowpanel-dimmed-further: rgba(249,249,250,.15); --theme-arrowpanel-disabled-color: rgba(249,249,250,.5); - /* Command line */ - --theme-command-line-image: url(chrome://devtools/skin/images/commandline-icon.svg#dark-theme); - --theme-command-line-image-focus: url(chrome://devtools/skin/images/commandline-icon.svg#dark-theme-focus); - --theme-codemirror-gutter-background: #262b37; --theme-messageCloseButtonFilter: invert(1); } @@ -244,6 +236,10 @@ --select-arrow-image: url(chrome://devtools/skin/images/select-arrow.svg); --theme-pane-collapse-image: url(chrome://devtools/skin/images/pane-collapse.svg); --theme-pane-expand-image: url(chrome://devtools/skin/images/pane-expand.svg); + --theme-console-alert-image: url(chrome://devtools/skin/images/webconsole/alert.svg); + --theme-console-info-image: url(chrome://devtools/skin/images/webconsole/info.svg); + --theme-console-input-image: url(chrome://devtools/skin/images/webconsole/input.svg); + --theme-console-return-image: url(chrome://devtools/skin/images/webconsole/return.svg); /* Firefox Colors CSS Variables v1.0.3 * Colors are taken from: https://github.com/FirefoxUX/design-tokens */ diff --git a/devtools/client/themes/webconsole.css b/devtools/client/themes/webconsole.css index d791be274f54..651408983bf2 100644 --- a/devtools/client/themes/webconsole.css +++ b/devtools/client/themes/webconsole.css @@ -3,10 +3,52 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* Webconsole specific theme variables */ +:root { + /* Output rows should be 20px tall for a single line of text; + * 20 = 3 (top padding) + 14 (line-height) + 3 (bottom padding) + */ + --console-output-font-size: 11px; + --console-output-line-height: calc(14 / 11); + --console-output-vertical-padding: 3px; + /* Width of the left gutter where icons appear */ + --console-inline-start-gutter: 32px; + /* Icons perfectly centered in the left gutter "feel" closer to the window + * edge than to message text. This value pushes them slightly to the right. */ + --console-icon-horizontal-offset: 1px; +} + +.theme-dark { + --console-arrow-color: hsl(210, 6%, 52%); + --console-input-icon-color: hsl(0, 0%, 50%, 0.5); + --console-input-icon-focused: hsl(210, 100%, 73%); + --console-output-icon-info: hsl(210, 6%, 52%); + --console-output-icon-input: hsl(210, 6%, 76%); + --console-output-icon-error: hsl(0, 100%, 65%); + --console-output-icon-warning: hsl(36, 100%, 60%); + --console-output-indent-border-color: var(--theme-highlight-blue); + --error-color: hsl(0, 100%, 79%); + --error-background-color: hsl(352, 79%, 62%, 0.17); + --warning-color: hsl(43, 94%, 81%); + --warning-background-color: hsl(42, 37%, 19%); + --console-output-color: white; + --repeat-bubble-background-color: var(--blue-60); +} + .theme-light { - --error-color: #FF0000; - --error-background-color: #FFEBEB; - --warning-background-color: #FFFFC8; + --console-arrow-color: hsl(210, 6%, 67%); + --console-input-icon-color: hsl(210, 6%, 75%); + --console-input-icon-focused: hsl(210, 100%, 44%); + --console-output-icon-info: hsl(210, 6%, 67%); + --console-output-icon-input: hsl(210, 6%, 34%); + --console-output-icon-error: hsl(0, 90%, 45%); + --console-output-icon-warning: hsl(36, 100%, 45%); + --console-output-indent-border-color: var(--theme-highlight-blue); + --error-color: var(--red-70); + --error-background-color: hsl(344, 73%, 97%); + --warning-color: var(--yellow-80); + --warning-background-color: hsl(54, 100%, 92%); + --console-output-color: var(--grey-90); + --repeat-bubble-background-color: var(--theme-highlight-blue); } /* General output styles */ @@ -27,78 +69,136 @@ a { .message { display: flex; - padding: 0 7px; width: 100%; - box-sizing: border-box; + /* Avoid vertical padding, so that we can draw full-height items (e.g. indent guides). + * Use vertical margins on children instead. */ + padding-inline-start: 1px; + padding-inline-end: 8px; + border-inline-start: solid 3px transparent; + font-size: var(--console-output-font-size); + line-height: var(--console-output-line-height); +} + +.message:hover { + border-inline-start-color: var(--theme-highlight-blue); +} + +.message.error { + color: var(--error-color); + background-color: var(--error-background-color); +} + +.message.warn { + color: var(--warning-color); + background-color: var(--warning-background-color); +} + +.message.startGroup, +.message.startGroupCollapsed { + --console-output-indent-border-color: transparent; } .message > .prefix, .message > .timestamp { flex: none; color: var(--theme-comment); - margin: 3px 6px 0 0; + margin: var(--console-output-vertical-padding) 4px; +} + +@media (max-width: 500px) { + .message > .timestamp { + display: none; + } } .message > .indent { flex: none; + display: inline-block; + margin-inline-start: 12px; + border-inline-end: solid 1px var(--console-output-indent-border-color); +} + +.message > .indent[data-indent="0"] { + display: none; +} + +/* Center first level indent within the left gutter */ +.message:not(.startGroup):not(.startGroupCollapsed) > .indent[data-indent="1"] { + margin-inline-start: calc(1px + var(--console-icon-horizontal-offset)); + margin-inline-end: calc(11px - var(--console-icon-horizontal-offset)); } .message > .icon { flex: none; - margin: 3px 6px 0 0; - padding: 0 4px; - height: 1em; align-self: flex-start; -} - -.theme-light .message.error { - color: var(--error-color); - background-color: var(--error-background-color); -} - -.theme-light .message.warn { - background-color: var(--warning-background-color); -} - -.message > .icon::before { - content: ""; - background-image: url(chrome://devtools/skin/images/webconsole.svg); - background-position: 12px 12px; + /* Width and height must be a multiples of 2px to avoid blurry images. + * Height should match the text's line-height for optimal vertical alignment */ + width: 14px; + height: 14px; + margin: var(--console-output-vertical-padding) 4px; + background-image: none; + background-position: 50% 50%; background-repeat: no-repeat; - background-size: 72px 60px; - width: 12px; - height: 12px; - display: inline-block; + background-size: 12px 12px; + -moz-context-properties: fill; + fill: currentColor; } -.theme-light .message > .icon::before { - background-image: url(chrome://devtools/skin/images/webconsole.svg#light-icons); +/* Icon on unindented row should be centered within the left gutter */ +.message > .indent[data-indent="0"] + .icon { + width: 24px; + margin-inline-start: var(--console-icon-horizontal-offset); + margin-inline-end: calc(4px - var(--console-icon-horizontal-offset)); +} + +.message.command > .icon { + color: var(--console-output-icon-input); + background-image: var(--theme-console-input-image); +} + +.message.result > .icon { + color: var(--console-output-icon-info); + background-image: var(--theme-console-return-image); +} + +.message.info > .icon { + color: var(--console-output-icon-info); + background-image: var(--theme-console-info-image); +} + +.message.error > .icon { + color: var(--console-output-icon-error); + background-image: var(--theme-console-alert-image); +} + +.message.warn > .icon { + color: var(--console-output-icon-warning); + background-image: var(--theme-console-alert-image); } .message > .message-body-wrapper { flex: auto; min-width: 0px; - margin: 3px; + margin: var(--console-output-vertical-padding) 0; } .message-body-wrapper .table-widget-body { overflow: visible; } -/* The red bubble that shows the number of times a message is repeated */ +/* The bubble that shows the number of times a message is repeated */ .message-repeats { -moz-user-select: none; flex-shrink: 0; - margin: 2px 6px; + margin: 2px 5px; padding: 0 6px; height: 1.25em; color: white; - background-color: red; + background-color: var(--repeat-bubble-background-color); border-radius: 40px; font: message-box; - font-size: 0.9em; - font-weight: 600; - margin-inline-start: 5px; + font-size: 0.8em; + font-weight: normal; } .message-repeats[value="1"] { @@ -157,10 +257,6 @@ a { /* Network styles */ -.theme-dark .message.error { - background-color: rgba(235, 83, 104, 0.17); -} - .console-string { color: var(--theme-highlight-lightorange); } @@ -172,10 +268,6 @@ a { color: #f5f7fa !important; /* Selection Text Color */ } -.message.network.error > .icon::before { - background-position: -12px 0; -} - .message.network > .message-body { display: flex; flex-wrap: wrap; @@ -221,54 +313,6 @@ a { margin-inline-end: 1ex; } -/* CSS styles */ - -.message.cssparser > .indent { - border-inline-end: solid #00b6f0 6px; -} - -.message.cssparser.error > .icon::before { - background-position: -12px -12px; -} - -.message.cssparser.warn > .icon::before { - background-position: -24px -12px; -} - -/* JS styles */ - -.message.exception > .indent { - border-inline-end: solid #fb9500 6px; -} - -.message.exception.error > .icon::before { - background-position: -12px -24px; -} - -.message.exception.warn > .icon::before { - background-position: -24px -24px; -} - -/* Web Developer styles */ - -.message.console-api > .indent { - border-inline-end: solid #cbcbcb 6px; -} - -/* Input and output styles */ -.message.command > .indent, -.message.result > .indent { - border-inline-end: solid #808080 6px; -} - -.message.command > .icon::before { - background-position: -48px -36px; -} - -.message.result > .icon::before { - background-position: -60px -36px; -} - /* JSTerm Styles */ html .jsterm-input-node-html, @@ -284,13 +328,17 @@ html #webconsole-notificationbox { } .jsterm-input-node { - background-image: var(--theme-command-line-image); - background-repeat: no-repeat; - background-size: 16px 16px; - background-position: 4px 4px; - color: var(--theme-content-color1); box-sizing: border-box; height: 100%; + color: var(--theme-content-color1); + /* input icon */ + background-image: var(--theme-console-input-image); + background-position-x: calc(10px + var(--console-icon-horizontal-offset)); + background-position-y: 7px; + background-repeat: no-repeat; + background-size: 12px 12px; + -moz-context-properties: fill; + fill: var(--console-input-icon-color); } .jsterm-complete-node { @@ -314,8 +362,8 @@ textarea.jsterm-complete-node { font-size: inherit; line-height: 16px; overflow-x: hidden; - padding: 4px 0; - padding-inline-start: 20px; + padding: 5px 0; + padding-inline-start: var(--console-inline-start-gutter); } textarea.jsterm-complete-node { @@ -327,25 +375,29 @@ textarea.jsterm-complete-node { } textarea.jsterm-input-node:focus { - background-image: var(--theme-command-line-image-focus); + fill: var(--console-input-icon-focused); box-shadow: none; outline: none; } /* CodeMirror-powered JsTerm */ .jsterm-cm .jsterm-input-container > .CodeMirror { - font-size: inherit; - line-height: 16px; - padding-inline-start: 20px; + font-size: var(--console-output-font-size); + line-height: var(--console-output-line-height); + /* aim for a 32px left space (a descendent has 4px padding) */ + padding-inline-start: calc(var(--console-inline-start-gutter) - 4px); /* input icon */ - background-image: var(--theme-command-line-image); + background-image: var(--theme-console-input-image); + background-position-x: calc(10px + var(--console-icon-horizontal-offset)); + background-position-y: 5px; background-repeat: no-repeat; - background-size: 16px 16px; - background-position: 4px 4px; + background-size: 12px 12px; + -moz-context-properties: fill; + fill: var(--console-input-icon-color); } .jsterm-cm .jsterm-input-container > .CodeMirror-focused { - background-image: var(--theme-command-line-image-focus); + fill: var(--console-input-icon-focused); } .jsterm-cm .cm-auto-complete-shadow-text::after { @@ -355,24 +407,12 @@ textarea.jsterm-input-node:focus { /* Security styles */ -.message.security > .indent { - border-inline-end: solid red 6px; -} - -.message.security.error > .icon::before { - background-position: -12px -48px; -} - -.message.security.warn > .icon::before { - background-position: -24px -48px; -} - .navigation-marker { color: #aaa; background: linear-gradient(#aaa, #aaa) no-repeat left 50%; background-size: 100% 2px; - margin-top: 6px; - margin-bottom: 6px; + margin-block-start: 6px; + margin-block-end: 6px; font-size: 0.9em; } @@ -388,11 +428,14 @@ textarea.jsterm-input-node:focus { .stacktrace { display: none; - padding: 5px 10px; - margin: 5px 0 0 0; overflow-y: auto; - border: 1px solid var(--theme-splitter-color); - border-radius: 3px; + margin-block-start: 5px; + margin-block-end: var(--attachment-margin-block-end); + padding-inline-start: 4px; +} + +.message.open .stacktrace { + display: block; } .consoletable { @@ -409,24 +452,9 @@ textarea.jsterm-input-node:focus { line-height: 1.25em; } -.theme-light .message.error .stacktrace { - background-color: rgba(255, 255, 255, 0.5); -} - -.theme-dark .message.error .stacktrace { - background-color: rgba(0, 0, 0, 0.5); -} - -.message.open .stacktrace { - display: block; -} - -.message .theme-twisty { - position: relative; - top: 0.1em; -} - -/*Do not mirror the twisty because container force to ltr */ +/* Do not mirror the twisty because container force to ltr + * (theme-twisty still used in network request details) + */ .message .theme-twisty:dir(rtl), .message .theme-twisty:-moz-locale-dir(rtl) { transform: none; @@ -449,8 +477,8 @@ a.learn-more-link.webconsole-learn-more-link { /* Open DOMNode in inspector button */ .open-inspector { background: url("chrome://devtools/skin/images/vview-open-inspector.png") no-repeat 0 0; - padding-left: 16px; - margin-left: 5px; + padding-inline-start: 16px; + margin-inline-start: 5px; cursor: pointer; } @@ -462,35 +490,10 @@ a.learn-more-link.webconsole-learn-more-link { filter: var(--theme-icon-checked-filter) brightness(0.9); } -@media (max-width: 500px) { - .message > .timestamp { - display: none; - } -} - #output-container { height: 100%; } -/* Webconsole specific theme variables */ -.theme-light .webconsole-output-wrapper { - --error-color: var(--red-70); - --error-background-color: #FDF2F5; - --warning-color: var(--yellow-80); - --warning-background-color: #FFFBD5; - --console-output-color: var(--grey-90); - --repeat-bubble-background-color: var(--theme-highlight-blue); -} - -.theme-dark .webconsole-output-wrapper { - --error-color: #FF9494; - --error-background-color: #442923; - --warning-color: #FCE19F; - --warning-background-color: #44391F; - --console-output-color: white; - --repeat-bubble-background-color: var(--blue-60); -} - /* This element contains the different toolbars in the console - primary, containing the clear messages button and the text search input. @@ -570,7 +573,7 @@ a.learn-more-link.webconsole-learn-more-link { .webconsole-filterbar-primary .devtools-plaininput { flex: 1 1 100%; align-self: stretch; - margin-left: 1px; + margin-inline-start: 1px; padding-inline-start: 4px; border: 1px solid transparent; } @@ -620,27 +623,6 @@ a.learn-more-link.webconsole-learn-more-link { margin-inline-start: 0.5em; } -.webconsole-output-wrapper .message { - --border-size: 3px; - border-inline-start: var(--border-size) solid transparent; -} - -.webconsole-output-wrapper .message:hover { - border-inline-start-color: var(--theme-highlight-blue); -} - -.webconsole-output-wrapper .message.warn.warn { - background-color: var(--warning-background-color); -} - -.webconsole-output-wrapper .message.error .message-body { - color: var(--error-color); -} - -.webconsole-output-wrapper .message.warn .message-body { - color: var(--warning-color); -} - /* Special casing String reps so they are legible */ .webconsole-output-wrapper .message .message-body > .objectBox-string { color: currentColor; @@ -681,44 +663,6 @@ a.learn-more-link.webconsole-learn-more-link { font-weight: bold; } -.webconsole-output-wrapper .message > .icon { - margin: var(--icon-top-margin) 0 0 0; - padding: 0 0 0 6px; -} - -.webconsole-output-wrapper .message.error > .icon::before { - /* Red warning icon */ - background-position: -24px -48px; -} - -.webconsole-output-wrapper .message.warn > .icon::before { - /* Yellow warning icon */ - background-position: -24px -24px; -} - -.webconsole-output-wrapper .message .theme-twisty { - margin: calc(var(--icon-top-margin) - 1px) 0 0 0; -} - -.message.error > .icon::before { - background-position: -12px -36px; -} - -.message.warn > .icon::before { - background-position: -24px -36px; -} - -.message.info > .icon::before { - background-position: -36px -36px; -} - -/* The bubble that shows the number of times a message is repeated */ -.webconsole-output-wrapper .message-repeats { - background-color: var(--repeat-bubble-background-color); - font-weight: normal; - font-size: 0.8em; -} - /* Prefix text that can be set by ConsoleAPI option */ .webconsole-output-wrapper .console-message-prefix { color: var(--theme-comment); @@ -781,7 +725,8 @@ a.learn-more-link.webconsole-learn-more-link { .network.message .network-info { display: none; - margin-top: 8px; + margin-block-start: 6px; + margin-block-end: 2px; border: solid 1px var(--theme-splitter-color); } @@ -805,27 +750,6 @@ a.learn-more-link.webconsole-learn-more-link { flex-wrap: wrap; } -/* Output Wrapper */ - -.webconsole-output-wrapper .message .indent { - display: inline-block; - border-inline-end: solid 1px var(--console-output-indent-border-color); -} -.webconsole-output-wrapper .message .indent[data-indent="0"] { - border-inline-end: none; -} - -.message.startGroup .indent, -.message.startGroupCollapsed .indent { - border-inline-end-color: transparent; - margin-inline-end: 5px; -} - -.message.startGroup .icon, -.message.startGroupCollapsed .icon { - display: none; -} - /* * Open DOMNode in inspector button. Style need to be reset in the new * console since its style is already defined in reps.css . @@ -834,19 +758,6 @@ a.learn-more-link.webconsole-learn-more-link { background-image: unset; } -/* Stacktraces */ -.webconsole-output-wrapper .stacktrace { - border: none; - margin-block-end: var(--attachment-margin-block-end); - padding: 0 0 0 4px; -} - -.theme-dark .webconsole-output-wrapper .message.error .stacktrace, -.theme-light .webconsole-output-wrapper .message.error .stacktrace { - /* Removing specificity from the old console */ - background-color: inherit; -} - /* console.table() */ .new-consoletable { width: 100%; @@ -929,10 +840,6 @@ body #output-container { * +------------------------------+--------------+ */ .webconsole-output-wrapper { - -moz-user-focus: normal; - color: var(--console-output-color); - --console-output-indent-border-color: var(--theme-selection-background); - --icon-top-margin: 3px; --object-inspector-hover-background: transparent; --attachment-margin-block-end: 3px; --primary-toolbar-height: 29px; @@ -943,6 +850,8 @@ body #output-container { height: 100vh !important; width: 100vw; overflow: hidden; + color: var(--console-output-color); + -moz-user-focus: normal; } .webconsole-flex-wrapper { @@ -965,7 +874,6 @@ body #output-container { min-height: 19px; } - .webconsole-output-wrapper #webconsole-notificationbox { flex-shrink: 0; } @@ -973,7 +881,10 @@ body #output-container { .webconsole-output-wrapper .jsterm-input-container { min-height: 28px; overflow: auto; - padding-top: 1px; +} + +.jsterm-cm .jsterm-input-container { + padding-block-start: 2px; } .webconsole-flex-wrapper > .webconsole-output:empty ~ .jsterm-input-container { @@ -1003,45 +914,69 @@ body #output-container { * used in the ObjectInspector (same background-image, width, transition). * Properties were copied from devtools/client/shared/components/reps/reps.css. */ -.webconsole-output-wrapper img.collapse-button.arrow { +.collapse-button { flex: none; + align-self: flex-start; + margin-block-start: var(--console-output-vertical-padding); + margin-inline-start: -3px; + margin-inline-end: 0; + padding: 2px 4px; + border: none; + background: transparent; +} + +.collapse-button::before { + content: ""; + display: block; + width: 10px; + height: 10px; mask: url("chrome://devtools/skin/images/devtools-components/arrow.svg") no-repeat; mask-size: 100%; - width: 9px; - height: 9px; - margin-block-start: 5px; - margin-inline-start: 4px; - margin-inline-end: 1px; transform: rotate(-90deg); transition: transform 0.125s ease; + background-color: var(--console-arrow-color); } -/* - * We need to override the margin for group arrow in order to keep the alignment - * with the indent border. - */ -.webconsole-output-wrapper .message.startGroup img.collapse-button.arrow, -.webconsole-output-wrapper .message.startGroupCollapsed img.collapse-button.arrow { - margin-inline-start: 2px; +.collapse-button[aria-expanded="true"]::before { + transform: rotate(0); } -html[dir="rtl"] .webconsole-output-wrapper img.collapse-button.arrow:not(.expanded) { - transform: rotate(90deg); +.collapse-button::-moz-focus-inner { + border: none; } -.webconsole-output-wrapper img.collapse-button.arrow.expanded { - transform: rotate(0deg); +/* Larger collapse buttons for groups and network requests */ +.message.network > .collapse-button, +.message.startGroup .collapse-button, +.message.startGroupCollapsed .collapse-button { + margin-inline-start: 0; + padding-inline-start: 6px; + padding-inline-end: 6px; } -/* Apply the same color to both message arrows and ObjectInspector ones. */ -.webconsole-output-wrapper .message img.arrow, -.webconsole-output-wrapper .sidebar img.arrow { - background-color: #AFA8AB; +/* Hide the icon, so that we can use the collapse-button in its place */ +.message.network > .icon, +.message.startGroup > .icon, +.message.startGroupCollapsed > .icon { + display: none; } -.theme-dark .webconsole-output-wrapper .message img.arrow, -.theme-dark .webconsole-output-wrapper .sidebar img.arrow { - background-color: #7F7E81; +/* Center the collapse button in the left gutter (first-level only) */ +.message.network > .collapse-button, +.message.startGroup > .indent[data-indent="0"] ~ .collapse-button, +.message.message.startGroupCollapsed > .indent[data-indent="0"] ~ .collapse-button { + margin-inline-start: calc(1px + var(--console-icon-horizontal-offset)); + margin-inline-end: calc(5px - var(--console-icon-horizontal-offset)); +} + +/* Apply a style similar to collapse-button for the object tree arrows */ +.webconsole-output-wrapper .tree .arrow, +.webconsole-output-wrapper .object-inspector .tree-node .arrow { + width: 10px; + height: 10px; + vertical-align: 0px; + line-height: 1; + background-color: var(--console-arrow-color); } /* Sidebar */ @@ -1098,10 +1033,6 @@ html[dir="rtl"] .webconsole-output-wrapper img.collapse-button.arrow:not(.expand min-width: 100%; } -.theme-twisty { - cursor: default; -} - #split-console-close-button::before { fill: var(--theme-toolbar-photon-icon-color); background-image: var(--close-button-image); diff --git a/devtools/client/webconsole/components/CollapseButton.js b/devtools/client/webconsole/components/CollapseButton.js index 8cb14350cb3e..36432ad6eb2b 100644 --- a/devtools/client/webconsole/components/CollapseButton.js +++ b/devtools/client/webconsole/components/CollapseButton.js @@ -18,14 +18,10 @@ function CollapseButton(props) { title = messageToggleDetails, } = props; - const classes = ["arrow", "collapse-button"]; - - if (open) { - classes.push("expanded"); - } - - return dom.img({ - className: classes.join(" "), + return dom.button({ + "aria-expanded": open ? "true" : "false", + "aria-label": title, + className: "arrow collapse-button", onClick, title: title, }); From 30d52fb230f0b47e2d6728f8b4b8c9a4476c993e Mon Sep 17 00:00:00 2001 From: Mark Banner Date: Thu, 23 Aug 2018 09:59:50 +0000 Subject: [PATCH 10/34] Bug 1480049 - Remove nsIAnnotationService::getPageAnnotation. r=mak This changes the meta data cache in DownloadHistory to store a copy of the meta data throughout the session, to avoid the need for async lookups when updating the UI. Differential Revision: https://phabricator.services.mozilla.com/D2597 --HG-- extra : moz-landing-system : lando --- .../test/unit/common_test_Download.js | 6 +- .../components/places/nsAnnotationService.cpp | 87 +++---------------- .../components/places/nsAnnotationService.h | 3 +- .../places/nsIAnnotationService.idl | 2 - .../components/places/tests/head_common.js | 20 +++++ .../places/tests/history/test_update.js | 8 ++ .../test_preventive_maintenance.js | 3 +- .../places/tests/unit/test_415757.js | 29 +++---- .../places/tests/unit/test_annotations.js | 5 -- .../places/tests/unit/test_browserhistory.js | 20 ++--- 10 files changed, 63 insertions(+), 120 deletions(-) diff --git a/toolkit/components/downloads/test/unit/common_test_Download.js b/toolkit/components/downloads/test/unit/common_test_Download.js index 0e5438381c26..c07a34683dd2 100644 --- a/toolkit/components/downloads/test/unit/common_test_Download.js +++ b/toolkit/components/downloads/test/unit/common_test_Download.js @@ -2415,10 +2415,8 @@ add_task(async function test_history() { Assert.equal(lastKnownTitle, expectedFile.leafName); let expectedFileURI = Services.io.newFileURI(expectedFile); - let destFileURI = PlacesUtils.annotations.getPageAnnotation( - Services.io.newURI(sourceUrl), - "downloads/destinationFileURI"); - Assert.equal(destFileURI, expectedFileURI.spec, + let pageInfo = await PlacesUtils.history.fetch(sourceUrl, {includeAnnotations: true}); + Assert.equal(pageInfo.annotations.get("downloads/destinationFileURI"), expectedFileURI.spec, "Should have saved the correct download target annotation."); // Restart and complete the download after clearing history. diff --git a/toolkit/components/places/nsAnnotationService.cpp b/toolkit/components/places/nsAnnotationService.cpp index 4337d3b47ca4..f2f1dc74e11a 100644 --- a/toolkit/components/places/nsAnnotationService.cpp +++ b/toolkit/components/places/nsAnnotationService.cpp @@ -380,50 +380,6 @@ nsAnnotationService::SetAnnotationDoubleInternal(int64_t aItemId, } -NS_IMETHODIMP -nsAnnotationService::GetPageAnnotation(nsIURI* aURI, - const nsACString& aName, - nsIVariant** _retval) -{ - NS_ENSURE_ARG(aURI); - NS_ENSURE_ARG_POINTER(_retval); - - nsCOMPtr statement; - nsresult rv = StartGetAnnotation(aURI, 0, aName, statement); - if (NS_FAILED(rv)) - return rv; - - mozStorageStatementScoper scoper(statement); - - nsCOMPtr value = new nsVariant(); - int32_t type = statement->AsInt32(kAnnoIndex_Type); - switch (type) { - case nsIAnnotationService::TYPE_INT32: - case nsIAnnotationService::TYPE_INT64: - case nsIAnnotationService::TYPE_DOUBLE: { - rv = value->SetAsDouble(statement->AsDouble(kAnnoIndex_Content)); - break; - } - case nsIAnnotationService::TYPE_STRING: { - nsAutoString valueString; - rv = statement->GetString(kAnnoIndex_Content, valueString); - if (NS_SUCCEEDED(rv)) - rv = value->SetAsAString(valueString); - break; - } - default: { - rv = NS_ERROR_UNEXPECTED; - break; - } - } - - if (NS_SUCCEEDED(rv)) { - value.forget(_retval); - } - - return rv; -} - nsresult nsAnnotationService::GetValueFromStatement(nsCOMPtr& aStatement, nsIVariant** _retval) @@ -467,7 +423,7 @@ nsAnnotationService::GetItemAnnotation(int64_t aItemId, NS_ENSURE_ARG_POINTER(_retval); nsCOMPtr statement; - nsresult rv = StartGetAnnotation(nullptr, aItemId, aName, statement); + nsresult rv = StartGetAnnotation(aItemId, aName, statement); if (NS_FAILED(rv)) return rv; @@ -492,7 +448,7 @@ nsAnnotationService::GetItemAnnotationInfo(int64_t aItemId, NS_ENSURE_ARG_POINTER(_storageType); nsCOMPtr statement; - nsresult rv = StartGetAnnotation(nullptr, aItemId, aName, statement); + nsresult rv = StartGetAnnotation(aItemId, aName, statement); if (NS_FAILED(rv)) return rv; @@ -822,42 +778,23 @@ nsAnnotationService::ItemHasAnnotation(int64_t aItemId, */ nsresult -nsAnnotationService::StartGetAnnotation(nsIURI* aURI, - int64_t aItemId, +nsAnnotationService::StartGetAnnotation(int64_t aItemId, const nsACString& aName, nsCOMPtr& aStatement) { - bool isItemAnnotation = (aItemId > 0); - - if (isItemAnnotation) { - aStatement = mDB->GetStatement( - "SELECT a.id, a.item_id, :anno_name, a.content, a.flags, " - "a.expiration, a.type " - "FROM moz_anno_attributes n " - "JOIN moz_items_annos a ON a.anno_attribute_id = n.id " - "WHERE a.item_id = :item_id " - "AND n.name = :anno_name" - ); - } - else { - aStatement = mDB->GetStatement( - "SELECT a.id, a.place_id, :anno_name, a.content, a.flags, " - "a.expiration, a.type " - "FROM moz_anno_attributes n " - "JOIN moz_annos a ON n.id = a.anno_attribute_id " - "JOIN moz_places h ON h.id = a.place_id " - "WHERE h.url_hash = hash(:page_url) AND h.url = :page_url " - "AND n.name = :anno_name" - ); - } + aStatement = mDB->GetStatement( + "SELECT a.id, a.item_id, :anno_name, a.content, a.flags, " + "a.expiration, a.type " + "FROM moz_anno_attributes n " + "JOIN moz_items_annos a ON a.anno_attribute_id = n.id " + "WHERE a.item_id = :item_id " + "AND n.name = :anno_name" + ); NS_ENSURE_STATE(aStatement); mozStorageStatementScoper getAnnoScoper(aStatement); nsresult rv; - if (isItemAnnotation) - rv = aStatement->BindInt64ByName(NS_LITERAL_CSTRING("item_id"), aItemId); - else - rv = URIBinder::Bind(aStatement, NS_LITERAL_CSTRING("page_url"), aURI); + rv = aStatement->BindInt64ByName(NS_LITERAL_CSTRING("item_id"), aItemId); NS_ENSURE_SUCCESS(rv, rv); rv = aStatement->BindUTF8StringByName(NS_LITERAL_CSTRING("anno_name"), aName); diff --git a/toolkit/components/places/nsAnnotationService.h b/toolkit/components/places/nsAnnotationService.h index 76821ffb53ba..f3b79faff53f 100644 --- a/toolkit/components/places/nsAnnotationService.h +++ b/toolkit/components/places/nsAnnotationService.h @@ -97,8 +97,7 @@ protected: static const int kAnnoIndex_DateAdded; static const int kAnnoIndex_LastModified; - nsresult StartGetAnnotation(nsIURI* aURI, - int64_t aItemId, + nsresult StartGetAnnotation(int64_t aItemId, const nsACString& aName, nsCOMPtr& aStatement); diff --git a/toolkit/components/places/nsIAnnotationService.idl b/toolkit/components/places/nsIAnnotationService.idl index 09a923890388..4aa7e47107fa 100644 --- a/toolkit/components/places/nsIAnnotationService.idl +++ b/toolkit/components/places/nsIAnnotationService.idl @@ -83,8 +83,6 @@ interface nsIAnnotationService : nsISupports * The type-specific methods throw if the given annotation is set in * a different type. */ - nsIVariant getPageAnnotation(in nsIURI aURI, - in AUTF8String aName); nsIVariant getItemAnnotation(in long long aItemId, in AUTF8String aName); diff --git a/toolkit/components/places/tests/head_common.js b/toolkit/components/places/tests/head_common.js index fd2cae3f9255..4775ab14a706 100644 --- a/toolkit/components/places/tests/head_common.js +++ b/toolkit/components/places/tests/head_common.js @@ -973,3 +973,23 @@ function getItemsWithAnnotation(name) { return rows.map(row => row.getResultByName("guid")); }); } + +/** + * Checks there are no orphan page annotations in the database, and no + * orphan anno attribute names. + */ +async function assertNoOrphanPageAnnotations() { + let db = await PlacesUtils.promiseDBConnection(); + + let rows = await db.execute(` + SELECT place_id FROM moz_annos + WHERE place_id NOT IN (SELECT id FROM moz_places) + `); + + Assert.equal(rows.length, 0, "Should not have any orphan page annotations"); + + rows = await db.execute(` + SELECT id FROM moz_anno_attributes + WHERE id NOT IN (SELECT anno_attribute_id FROM moz_annos) AND + id NOT IN (SELECT anno_attribute_id FROM moz_items_annos)`); +} diff --git a/toolkit/components/places/tests/history/test_update.js b/toolkit/components/places/tests/history/test_update.js index 81dd0e4d7aa0..6571a01ffd9e 100644 --- a/toolkit/components/places/tests/history/test_update.js +++ b/toolkit/components/places/tests/history/test_update.js @@ -185,6 +185,14 @@ add_task(async function test_change_description_and_preview_saved() { Assert.equal(previewImageURL, previewImageURLInDB, "previewImageURL should not be updated"); }); +/** + * Gets annotation information from the database for the specified URL and + * annotation name. + * + * @param {String} pageUrl The URL to search for. + * @param {String} annoName The name of the annotation to search for. + * @return {Array} An array of objects containing the annotations found. + */ async function getAnnotationInfoFromDB(pageUrl, annoName) { let db = await PlacesUtils.promiseDBConnection(); diff --git a/toolkit/components/places/tests/maintenance/test_preventive_maintenance.js b/toolkit/components/places/tests/maintenance/test_preventive_maintenance.js index f78042b6d24a..00498c939085 100644 --- a/toolkit/components/places/tests/maintenance/test_preventive_maintenance.js +++ b/toolkit/components/places/tests/maintenance/test_preventive_maintenance.js @@ -2175,7 +2175,8 @@ tests.push({ Assert.equal(ts.getTagsForURI(this._uri1).length, 1); Assert.equal((await PlacesUtils.keywords.fetch({ url: this._uri1.spec })).keyword, "testkeyword"); - Assert.equal(as.getPageAnnotation(this._uri2, "anno"), "anno"); + let pageInfo = await PlacesUtils.history.fetch(this._uri2, {includeAnnotations: true}); + Assert.equal(pageInfo.annotations.get("anno"), "anno"); Assert.equal(as.getItemAnnotation(this._bookmarkId, "anno"), "anno"); await new Promise(resolve => { diff --git a/toolkit/components/places/tests/unit/test_415757.js b/toolkit/components/places/tests/unit/test_415757.js index 9d5d0f70f338..56a7d70c205c 100644 --- a/toolkit/components/places/tests/unit/test_415757.js +++ b/toolkit/components/places/tests/unit/test_415757.js @@ -31,20 +31,18 @@ const TOTAL_SITES = 20; add_task(async function test_execute() { // add pages to global history for (let i = 0; i < TOTAL_SITES; i++) { - let site = "http://www.test-" + i + ".com/"; - let testURI = uri(site); + let uri = "http://www.test-" + i + ".com/"; let when = Date.now() * 1000 + (i * TOTAL_SITES); - await PlacesTestUtils.addVisits({ uri: testURI, visitDate: when }); + await PlacesTestUtils.addVisits({ uri, visitDate: when }); } for (let i = 0; i < TOTAL_SITES; i++) { - let site = "http://www.test.com/" + i + "/"; - let testURI = uri(site); + let uri = "http://www.test.com/" + i + "/"; let when = Date.now() * 1000 + (i * TOTAL_SITES); - await PlacesTestUtils.addVisits({ uri: testURI, visitDate: when }); + await PlacesTestUtils.addVisits({ uri, visitDate: when }); } // set a page annotation on one of the urls that will be removed - var testAnnoDeletedURI = uri("http://www.test.com/1/"); + var testAnnoDeletedURI = "http://www.test.com/1/"; var testAnnoDeletedName = "foo"; var testAnnoDeletedValue = "bar"; await PlacesUtils.history.update({ @@ -53,7 +51,7 @@ add_task(async function test_execute() { }); // set a page annotation on one of the urls that will NOT be removed - var testAnnoRetainedURI = uri("http://www.test-1.com/"); + var testAnnoRetainedURI = "http://www.test-1.com/"; var testAnnoRetainedName = "foo"; var testAnnoRetainedValue = "bar"; await PlacesUtils.history.update({ @@ -79,18 +77,11 @@ add_task(async function test_execute() { } // check that annotation on the removed item does not exists - try { - PlacesUtils.annotations.getPageAnnotation(testAnnoDeletedURI, testAnnoDeletedName); - do_throw("fetching page-annotation that doesn't exist, should've thrown"); - } catch (ex) {} + await assertNoOrphanPageAnnotations(); // check that annotation on the NOT removed item still exists - try { - var annoVal = PlacesUtils.annotations.getPageAnnotation(testAnnoRetainedURI, - testAnnoRetainedName); - } catch (ex) { - do_throw("The annotation has been removed erroneously"); - } - Assert.equal(annoVal, testAnnoRetainedValue); + let pageInfo = await PlacesUtils.history.fetch(testAnnoRetainedURI, {includeAnnotations: true}); + Assert.equal(pageInfo.annotations.get(testAnnoRetainedName), testAnnoRetainedValue, + "Should have kept the annotation for the non-removed items"); }); diff --git a/toolkit/components/places/tests/unit/test_annotations.js b/toolkit/components/places/tests/unit/test_annotations.js index 4ec046712d5d..358db163ef55 100644 --- a/toolkit/components/places/tests/unit/test_annotations.js +++ b/toolkit/components/places/tests/unit/test_annotations.js @@ -54,11 +54,6 @@ add_task(async function test_execute() { do_throw("unable to get item annotation"); } - // get annotation that doesn't exist - try { - annosvc.getPageAnnotation(testURI, "blah"); - do_throw("fetching page-annotation that doesn't exist, should've thrown"); - } catch (ex) {} try { annosvc.getItemAnnotation(testURI, "blah"); do_throw("fetching item-annotation that doesn't exist, should've thrown"); diff --git a/toolkit/components/places/tests/unit/test_browserhistory.js b/toolkit/components/places/tests/unit/test_browserhistory.js index e6412232a8e2..b96917f947b7 100644 --- a/toolkit/components/places/tests/unit/test_browserhistory.js +++ b/toolkit/components/places/tests/unit/test_browserhistory.js @@ -4,8 +4,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -const TEST_URI = NetUtil.newURI("http://mozilla.com/"); -const TEST_SUBDOMAIN_URI = NetUtil.newURI("http://foobar.mozilla.com/"); +const TEST_URI = "http://mozilla.com/"; +const TEST_SUBDOMAIN_URI = "http://foobar.mozilla.com/"; async function checkEmptyHistory() { let db = await PlacesUtils.promiseDBConnection(); @@ -26,7 +26,7 @@ add_task(async function test_removePage() { add_task(async function test_removePages() { let pages = []; for (let i = 0; i < 8; i++) { - pages.push(NetUtil.newURI(TEST_URI.spec + i)); + pages.push(TEST_URI + i); } await PlacesTestUtils.addVisits(pages.map(uri => ({ uri }))); @@ -55,14 +55,11 @@ add_task(async function test_removePages() { // Check that the bookmark and its annotation still exist. let folder = await PlacesUtils.getFolderContents(PlacesUtils.bookmarks.unfiledGuid); Assert.equal(folder.root.childCount, 1); - Assert.equal(PlacesUtils.annotations.getPageAnnotation(pages[BOOKMARK_INDEX], ANNO_NAME), - ANNO_VALUE); + let pageInfo = await PlacesUtils.history.fetch(pages[BOOKMARK_INDEX], {includeAnnotations: true}); + Assert.equal(pageInfo.annotations.get(ANNO_NAME), ANNO_VALUE); // Check the annotation on the non-bookmarked page does not exist anymore. - try { - PlacesUtils.annotations.getPageAnnotation(pages[ANNO_INDEX], ANNO_NAME); - do_throw("did not expire expire_never anno on a not bookmarked item"); - } catch (ex) {} + await assertNoOrphanPageAnnotations(); // Cleanup. await PlacesUtils.bookmarks.eraseEverything(); @@ -74,7 +71,7 @@ add_task(async function test_removePagesByTimeframe() { let startDate = (Date.now() - 10000) * 1000; for (let i = 0; i < 10; i++) { visits.push({ - uri: NetUtil.newURI(TEST_URI.spec + i), + uri: TEST_URI + i, visitDate: startDate + i * 1000, }); } @@ -89,8 +86,7 @@ add_task(async function test_removePagesByTimeframe() { // Check that we have removed the correct pages. for (let i = 0; i < 10; i++) { - Assert.equal(page_in_database(NetUtil.newURI(TEST_URI.spec + i)) == 0, - i > 0 && i < 9); + Assert.equal(page_in_database(TEST_URI + i) == 0, i > 0 && i < 9); } // Clear remaining items and check that all pages have been removed. From 4bc8a8845308b6a3529c1fe9cb87d93177399df0 Mon Sep 17 00:00:00 2001 From: Nicolas Silva Date: Thu, 23 Aug 2018 11:50:55 +0000 Subject: [PATCH 11/34] Bug 1485593 - Avoid using isdigit. r=hsivonen Differential Revision: https://phabricator.services.mozilla.com/D4066 --HG-- extra : moz-landing-system : lando --- gfx/src/FontPropertyTypes.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gfx/src/FontPropertyTypes.h b/gfx/src/FontPropertyTypes.h index ccd3e19cfcf8..d21fda411b43 100644 --- a/gfx/src/FontPropertyTypes.h +++ b/gfx/src/FontPropertyTypes.h @@ -18,6 +18,7 @@ #include #include "mozilla/Assertions.h" +#include "mozilla/TextUtils.h" #include "nsString.h" /* @@ -342,7 +343,7 @@ public: } else if (strcmp(aString, "italic") == 0) { return Italic(); } else { - if (isdigit(aString[0]) && strstr(aString, "deg")) { + if (mozilla::IsAsciiDigit(aString[0]) && strstr(aString, "deg")) { float angle = strtof(aString, nullptr); return Oblique(angle); } From c0b9a3f1ffa18ed0a259ebad7b1de5b58160441b Mon Sep 17 00:00:00 2001 From: Julien Wajsberg Date: Wed, 22 Aug 2018 20:02:33 +0000 Subject: [PATCH 12/34] Bug 1485363 - Remove inline-block so that the ellipsis works properly instead of replacing the whole element at once r=gregtatum Differential Revision: https://phabricator.services.mozilla.com/D3975 --HG-- extra : moz-landing-system : lando --- devtools/client/themes/memory.css | 4 ---- 1 file changed, 4 deletions(-) diff --git a/devtools/client/themes/memory.css b/devtools/client/themes/memory.css index 1962d98429d5..525634264259 100644 --- a/devtools/client/themes/memory.css +++ b/devtools/client/themes/memory.css @@ -489,10 +489,6 @@ html, body, #app, #memory-tool { vertical-align: middle; } -.heap-tree-item-name .frame-link { - display: inline-block; -} - /** * Heap tree view subcolumns */ From a52d435c07976f0e87f9c0e78cd0f36648f438ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Thu, 23 Aug 2018 10:43:29 +0000 Subject: [PATCH 13/34] Bug 1485525 - Land an XBL-free version of the crashtest for bug 401042. r=mats So this keeps covered if XBL goes away. Differential Revision: https://phabricator.services.mozilla.com/D4030 --HG-- extra : moz-landing-system : lando --- layout/generic/crashtests/401042-2.html | 5 +++++ layout/generic/crashtests/crashtests.list | 1 + 2 files changed, 6 insertions(+) create mode 100644 layout/generic/crashtests/401042-2.html diff --git a/layout/generic/crashtests/401042-2.html b/layout/generic/crashtests/401042-2.html new file mode 100644 index 000000000000..ba4bb12e482f --- /dev/null +++ b/layout/generic/crashtests/401042-2.html @@ -0,0 +1,5 @@ + + +
//
diff --git a/layout/generic/crashtests/crashtests.list b/layout/generic/crashtests/crashtests.list index 30905c1e2d89..250667e6cfa3 100644 --- a/layout/generic/crashtests/crashtests.list +++ b/layout/generic/crashtests/crashtests.list @@ -191,6 +191,7 @@ load 400244-1.html load 400768-1.xhtml load 400768-2.xhtml load 401042-1.xhtml +load 401042-2.html load 402380-1.html load 402380-2.html load 402872-1.html From e6844b61ad56a467c93f73effcff95ce0a69cad3 Mon Sep 17 00:00:00 2001 From: Joel Maher Date: Thu, 23 Aug 2018 12:35:17 +0000 Subject: [PATCH 14/34] Bug 1392106 - random-if more test cases for windows 7 letter rendering failures. r=RyanVM random-if statements for the last 2 days worth of annotated failures Differential Revision: https://phabricator.services.mozilla.com/D4070 --HG-- extra : moz-landing-system : lando --- layout/reftests/bidi/dirAuto/reftest.list | 2 +- layout/reftests/bidi/reftest.list | 38 +++++++++---------- layout/reftests/bugs/reftest.list | 2 +- layout/reftests/canvas/reftest.list | 4 +- layout/reftests/counters/reftest.list | 4 +- .../button-submit/reftest.list | 2 +- layout/reftests/first-letter/reftest.list | 8 ++-- layout/reftests/forms/textarea/reftest.list | 2 +- layout/reftests/mathml/reftest.list | 2 +- layout/reftests/pagination/reftest.list | 22 +++++------ layout/reftests/svg/reftest.list | 4 +- layout/reftests/svg/text/reftest.list | 12 +++--- layout/reftests/text/reftest.list | 2 +- layout/reftests/w3c-css/failures.list | 5 ++- layout/reftests/w3c-css/received/reftest.list | 16 ++++---- .../submitted/counter-styles-3/reftest.list | 8 ++-- .../w3c-css/submitted/flexbox/reftest.list | 8 ++-- .../w3c-css/submitted/lists-3/reftest.list | 4 +- 18 files changed, 74 insertions(+), 71 deletions(-) diff --git a/layout/reftests/bidi/dirAuto/reftest.list b/layout/reftests/bidi/dirAuto/reftest.list index 137d1af839e6..83ada72c41f2 100644 --- a/layout/reftests/bidi/dirAuto/reftest.list +++ b/layout/reftests/bidi/dirAuto/reftest.list @@ -1,4 +1,4 @@ -== bdi-auto-dir-default.html bdi-auto-dir-default-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == bdi-auto-dir-default.html bdi-auto-dir-default-ref.html # Bug 1392106 random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == dir_auto-set-contained-dir-L.html dir_auto-contained-dir-L-ref.html # Bug 1392106 random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == dir_auto-set-contained-dir-R.html dir_auto-contained-dir-R-ref.html # Bug 1392106 random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == dir_auto-set-contained-invalid-dir-L.html dir_auto-contained-dir-L-ref.html # Bug 1392106 diff --git a/layout/reftests/bidi/reftest.list b/layout/reftests/bidi/reftest.list index c877cb45e67e..45eb9d075ba3 100644 --- a/layout/reftests/bidi/reftest.list +++ b/layout/reftests/bidi/reftest.list @@ -122,9 +122,9 @@ fuzzy-if(skiaContent,0-1,0-3) == 698291-1.html 698291-1-ref.html == 698706-1.html 698706-1-ref.html == 704837-1.html 704837-1-ref.html random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 712600-1.html 712600-1-ref.html # Bug 1392106 -== 712600-2.html 712600-2-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 712600-2.html 712600-2-ref.html # Bug 1392106 random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 712600-2-dyn.html 712600-2-ref.html # Bug 1392106 -== 712600-3.html 712600-3-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 712600-3.html 712600-3-ref.html # Bug 1392106 == 718236-1.html 718236-1-ref.html == 718236-2.html 718236-2-ref.html == 718236-3.html 718236-3-ref.html @@ -154,24 +154,24 @@ pref(layout.css.xul-tree-pseudos.content.enabled,true) fuzzy-if(xulRuntime.widge == 1157726-1.html 1157726-1-ref.html == 1161752.html 1161752-ref.html == 1161752-5-embed.html 1161752-5-embed-ref.html -random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-1a-ltr.html brackets-1a-ltr-ref.html -random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-1a-rtl.html brackets-1a-rtl-ref.html -random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-1b-ltr.html brackets-1b-ltr-ref.html -random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-1b-rtl.html brackets-1b-rtl-ref.html -random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-1c-ltr.html brackets-1c-ltr-ref.html -random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-1c-rtl.html brackets-1c-rtl-ref.html -random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2a-ltr.html brackets-2a-ltr-ref.html -fuzzy-if(Android,0-254,0-557) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2a-rtl.html brackets-2a-rtl-ref.html -random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2b-ltr.html brackets-2b-ltr-ref.html -random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2b-rtl.html brackets-2b-rtl-ref.html -random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2c-ltr.html brackets-2c-ltr-ref.html -fuzzy-if(Android,0-254,0-231) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2c-rtl.html brackets-2c-rtl-ref.html -random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-3a-ltr.html brackets-3a-ltr-ref.html -random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-3a-rtl.html brackets-3a-rtl-ref.html -random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-3b-ltr.html brackets-3b-ltr-ref.html -random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-3b-rtl.html brackets-3b-rtl-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-1a-ltr.html brackets-1a-ltr-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-1a-rtl.html brackets-1a-rtl-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-1b-ltr.html brackets-1b-ltr-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-1b-rtl.html brackets-1b-rtl-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-1c-ltr.html brackets-1c-ltr-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-1c-rtl.html brackets-1c-rtl-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2a-ltr.html brackets-2a-ltr-ref.html # Bug 1392106 +fuzzy-if(Android,0-254,0-557) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2a-rtl.html brackets-2a-rtl-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2b-ltr.html brackets-2b-ltr-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2b-rtl.html brackets-2b-rtl-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2c-ltr.html brackets-2c-ltr-ref.html # Bug 1392106 +fuzzy-if(Android,0-254,0-231) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2c-rtl.html brackets-2c-rtl-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-3a-ltr.html brackets-3a-ltr-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-3a-rtl.html brackets-3a-rtl-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-3b-ltr.html brackets-3b-ltr-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-3b-rtl.html brackets-3b-rtl-ref.html # Bug 1392106 == 1217833-1.html 1217833-1-ref.html == 1217833-2.html 1217833-2-ref.html == 1231175-1.html 1231175-1-ref.html == 1366623-1.html 1366623-1-ref.html -== 1426042-1.html 1426042-1-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 1426042-1.html 1426042-1-ref.html # Bug 1392106 diff --git a/layout/reftests/bugs/reftest.list b/layout/reftests/bugs/reftest.list index 2d2306e8143d..4f76c2f984a5 100644 --- a/layout/reftests/bugs/reftest.list +++ b/layout/reftests/bugs/reftest.list @@ -968,7 +968,7 @@ fails == 413027-3.html 413027-3-ref.html == 413286-3.html 413286-3-ref.html == 413286-4a.html 413286-4-ref.html == 413286-4b.html 413286-4-ref.html -== 413286-5.html 413286-5-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 413286-5.html 413286-5-ref.html # Bug 1392106 == 413286-6.html 413286-6-ref.html == 413292-1.html 413292-1-ref.html fuzzy-if(Android,0-11,0-17) fuzzy-if(webrender,0-1,0-10) == 413361-1.html 413361-1-ref.html # bug 1128229 diff --git a/layout/reftests/canvas/reftest.list b/layout/reftests/canvas/reftest.list index 9ca8f07769fe..20a226f08041 100644 --- a/layout/reftests/canvas/reftest.list +++ b/layout/reftests/canvas/reftest.list @@ -102,8 +102,8 @@ fuzzy-if(skiaContent,0-1,0-43) == 1201272-1.html 1201272-1-ref.html == 1303534-1.html 1303534-1-ref.html == 1304353-text-global-alpha-1.html 1304353-text-global-alpha-1-ref.html -fuzzy-if(winWidget,0-1,0-578) == 1304353-text-global-alpha-2.html 1304353-text-global-alpha-2-ref.html -fuzzy-if(winWidget,0-94,0-1575) fuzzy-if(cocoaWidget,0-1,0-24) == 1304353-text-global-composite-op-1.html 1304353-text-global-composite-op-1-ref.html +fuzzy-if(winWidget,0-1,0-578) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 1304353-text-global-alpha-2.html 1304353-text-global-alpha-2-ref.html # Bug 1392106 +fuzzy-if(winWidget,0-94,0-1575) fuzzy-if(cocoaWidget,0-1,0-24) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 1304353-text-global-composite-op-1.html 1304353-text-global-composite-op-1-ref.html2 # Bug 1392106 == text-indent-1a.html text-indent-1-ref.html == text-indent-1b.html text-indent-1-ref.html diff --git a/layout/reftests/counters/reftest.list b/layout/reftests/counters/reftest.list index 761d137a65f6..46d1d22d6e5e 100644 --- a/layout/reftests/counters/reftest.list +++ b/layout/reftests/counters/reftest.list @@ -9,7 +9,7 @@ == t1202-counter-07-b-test.html t1202-counter-07-b-reference.html == t1202-counter-08-b-test.html t1202-counter-08-b-reference.html random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == t1202-counter-09-b-test.html t1202-counter-09-b-reference.html # Bug 1392106 -== t1202-counter-10-b-test.html t1202-counter-10-b-reference.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == t1202-counter-10-b-test.html t1202-counter-10-b-reference.html # Bug 1392106 == t1202-counter-11-b-test.html t1202-counter-11-b-reference.html == t1202-counter-12-b-test.html t1202-counter-12-b-reference.html == t1202-counter-13-b-test.html t1202-counter-13-b-reference.html @@ -26,7 +26,7 @@ random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == t1202-counter-09-b-test. == t1202-counters-07-b-test.html t1202-counters-07-b-reference.html == t1202-counters-08-b-test.html t1202-counters-08-b-reference.html random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == t1202-counters-09-b-test.html t1202-counters-09-b-reference.html # Bug 1392106 -== t1202-counters-10-b-test.html t1202-counters-10-b-reference.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == t1202-counters-10-b-test.html t1202-counters-10-b-reference.html # Bug 1392106 == t1202-counters-11-b-test.html t1202-counters-11-b-reference.html == t1202-counters-12-b-test.html t1202-counters-12-b-reference.html == t1202-counters-13-b-test.html t1202-counters-13-b-reference.html diff --git a/layout/reftests/css-submit-invalid/button-submit/reftest.list b/layout/reftests/css-submit-invalid/button-submit/reftest.list index cfb8df94e45c..d398b047dc3f 100644 --- a/layout/reftests/css-submit-invalid/button-submit/reftest.list +++ b/layout/reftests/css-submit-invalid/button-submit/reftest.list @@ -13,4 +13,4 @@ == change-type-submit-control.html invalid-ref.html == change-type-not-submit-control.html valid-ref-4.html == self-invalid.html about:blank -== remove-form.html invalid-ref-3.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == remove-form.html invalid-ref-3.html # bug 1392106 diff --git a/layout/reftests/first-letter/reftest.list b/layout/reftests/first-letter/reftest.list index 1a36da288bee..82f04ff1ce12 100644 --- a/layout/reftests/first-letter/reftest.list +++ b/layout/reftests/first-letter/reftest.list @@ -76,7 +76,7 @@ random-if(gtkWidget) random-if(winWidget&&!d2d) == font-text-styles-floater.html == overflow-inline-overflow.html overflow-inline-overflow-ref.html == 1385656.html 1385656-ref.html -== 1404167-1.html 1404167-1-ref.html -== 1404167-2.html 1404167-2-ref.html -== 1404167-3.html 1404167-3-ref.html -== 1404167-4.html 1404167-4-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 1404167-1.html 1404167-1-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 1404167-2.html 1404167-2-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 1404167-3.html 1404167-3-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 1404167-4.html 1404167-4-ref.html # Bug 1392106 diff --git a/layout/reftests/forms/textarea/reftest.list b/layout/reftests/forms/textarea/reftest.list index fbde15894190..f1f5b15a941e 100644 --- a/layout/reftests/forms/textarea/reftest.list +++ b/layout/reftests/forms/textarea/reftest.list @@ -13,5 +13,5 @@ fuzzy-if(skiaContent,0-1,0-1) == rtl.html rtl-dynamic-attr.html fuzzy-if(skiaContent,0-1,0-1) == rtl.html rtl-dynamic-style.html == rtl.html in-dynamic-rtl-doc.html fuzzy-if(skiaContent,0-1,0-3) == setvalue-framereconstruction-1.html setvalue-framereconstruction-ref.html -fuzzy-if(asyncPan&&!layersGPUAccelerated,0-102,0-4168) == padding-scrollbar-placement.html padding-scrollbar-placement-ref.html +fuzzy-if(asyncPan&&!layersGPUAccelerated,0-102,0-4168) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == padding-scrollbar-placement.html padding-scrollbar-placement-ref.html # Bug 1392106 == various-cols.html various-cols-ref.html diff --git a/layout/reftests/mathml/reftest.list b/layout/reftests/mathml/reftest.list index 4e55b707b6d3..88a74db83816 100644 --- a/layout/reftests/mathml/reftest.list +++ b/layout/reftests/mathml/reftest.list @@ -8,7 +8,7 @@ random-if(gtkWidget) == dir-3.html dir-3-ref.html # bug 1309426 == dir-7.html dir-7-ref.html fails == dir-8.html dir-8-ref.html fails == dir-9.html dir-9-ref.html # Bug 787215 -== dir-10.html dir-10-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == dir-10.html dir-10-ref.html # Bug 1392106 == dir-11.html dir-11-ref.html == css-spacing-1.html css-spacing-1-ref.html pref(mathml.disabled,true) == disabled-scriptlevel-1.html disabled-scriptlevel-1-ref.html diff --git a/layout/reftests/pagination/reftest.list b/layout/reftests/pagination/reftest.list index af8ef9197c42..77ce76d84d29 100644 --- a/layout/reftests/pagination/reftest.list +++ b/layout/reftests/pagination/reftest.list @@ -2,17 +2,17 @@ # and layout/reftests/w3c-css/submitted/multicol3/ # Pagination tests # asserts(3) == abspos-breaking-000.xhtml abspos-breaking-000.ref.xhtml # bug 1067755, 1135556 -== abspos-breaking-001.xhtml abspos-breaking-000.ref.xhtml -== abspos-breaking-002.xhtml abspos-breaking-000.ref.xhtml -== abspos-breaking-003.html abspos-breaking-003-ref.html -== abspos-breaking-004.html abspos-breaking-004-ref.html -== abspos-breaking-005.html abspos-breaking-005-ref.html -== abspos-breaking-006.html abspos-breaking-006-ref.html -pref(layout.css.box-decoration-break.enabled,true) == abspos-breaking-007.html abspos-breaking-007-ref.html -pref(layout.css.box-decoration-break.enabled,true) == abspos-breaking-008.html abspos-breaking-008-ref.html -pref(layout.css.box-decoration-break.enabled,true) == abspos-breaking-009.html abspos-breaking-009-ref.html -pref(layout.css.box-decoration-break.enabled,true) == abspos-breaking-010.html abspos-breaking-010-ref.html -== abspos-breaking-011.html abspos-breaking-011-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == abspos-breaking-001.xhtml abspos-breaking-000.ref.xhtml # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == abspos-breaking-002.xhtml abspos-breaking-000.ref.xhtml # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == abspos-breaking-003.html abspos-breaking-003-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == abspos-breaking-004.html abspos-breaking-004-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == abspos-breaking-005.html abspos-breaking-005-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == abspos-breaking-006.html abspos-breaking-006-ref.html # Bug 1392106 +pref(layout.css.box-decoration-break.enabled,true) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == abspos-breaking-007.html abspos-breaking-007-ref.html # Bug 1392106 +pref(layout.css.box-decoration-break.enabled,true) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == abspos-breaking-008.html abspos-breaking-008-ref.html # Bug 1392106 +pref(layout.css.box-decoration-break.enabled,true) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == abspos-breaking-009.html abspos-breaking-009-ref.html # Bug 1392106 +pref(layout.css.box-decoration-break.enabled,true) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == abspos-breaking-010.html abspos-breaking-010-ref.html # Bug 1392106 +== abspos-breaking-011.html abspos-breaking-011-ref.html # Bug 1392106 == abspos-breaking-dynamic-001.html abspos-breaking-dynamic-001-ref.html == abspos-breaking-dynamic-002.html abspos-breaking-dynamic-002-ref.html == abspos-breaking-dynamic-003.html abspos-breaking-dynamic-003-ref.html diff --git a/layout/reftests/svg/reftest.list b/layout/reftests/svg/reftest.list index 3623d48685f4..a64e50bbd802 100644 --- a/layout/reftests/svg/reftest.list +++ b/layout/reftests/svg/reftest.list @@ -478,7 +478,7 @@ fuzzy-if(skiaContent,0-1,0-610) == textPath-03.svg pass.svg == textPath-04.svg pass.svg == textPath-05.html pass.svg == textPath-06.svg pass.svg -== textPath-line-01.svg textPath-line-01-ref.svg +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == textPath-line-01.svg textPath-line-01-ref.svg # bug 1392106 == textPath-path-attribute-01.svg textPath-path-attribute-01-ref.svg == textPath-side-attribute-01.svg pass.svg @@ -503,7 +503,7 @@ random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy-if(skiaContent,0-1,0- random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy-if(skiaContent,0-1,0-550) == tspan-rotate-04.svg tspan-rotate-04-ref.svg # bug 1392106 random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy-if(skiaContent,0-1,0-550) == tspan-rotate-05.svg tspan-rotate-ref.svg # bug 1392106 random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy-if(skiaContent,0-1,0-550) == tspan-rotate-06.svg tspan-rotate-ref.svg # bug 1392106 -== tspan-rotate-07.svg tspan-rotate-07-ref.svg +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == tspan-rotate-07.svg tspan-rotate-07-ref.svg # Bug 1392106 == tspan-rotate-textPath-01.svg tspan-rotate-textPath-01-ref.svg fuzzy-if(skiaContent,0-1,0-100) == tspan-xy-01.svg tspan-xy-ref.svg == tspan-xy-02.svg tspan-xy-ref.svg diff --git a/layout/reftests/svg/text/reftest.list b/layout/reftests/svg/text/reftest.list index a270e1a356f4..ef4ef207c89d 100644 --- a/layout/reftests/svg/text/reftest.list +++ b/layout/reftests/svg/text/reftest.list @@ -145,14 +145,14 @@ fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)||/^Windows\x20NT\x206\.[12]/ == ignore-padding.svg ignore-prop-ref.svg random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == ignore-vertical-align.svg ignore-vertical-align-ref.svg # Bug 1392106 == ignore-overflow-scroll.svg ignore-prop-ref.svg -== ignore-text-align.svg ignore-prop-ref.svg -== ignore-text-align-2.svg ignore-text-align-2-ref.svg +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == ignore-text-align.svg ignore-prop-ref.svg # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == ignore-text-align-2.svg ignore-text-align-2-ref.svg # Bug 1392106 # pseudo-elements == pseudo-first-line.svg pseudo-first-line-ref.svg == pseudo-first-line-2.svg pseudo-first-line-2-ref.svg -== pseudo-first-letter.svg pseudo-first-letter-ref.svg -== pseudo-first-letter-2.svg pseudo-first-letter-2-ref.svg +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == pseudo-first-letter.svg pseudo-first-letter-ref.svg # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == pseudo-first-letter-2.svg pseudo-first-letter-2-ref.svg # Bug 1392106 == ignore-before-after.svg ignore-prop-ref.svg # invalid child nodes @@ -179,8 +179,8 @@ fuzzy-if(skiaContent&&winWidget,0-53,0-112) == mask-content-2.svg mask-content-2 # text and clipPaths == clipPath-applied.svg clipPath-applied-ref.svg -fuzzy-if(skiaContent&&winWidget,0-105,0-56) == clipPath-content.svg clipPath-content-ref.svg -fuzzy-if(skiaContent&&winWidget,0-53,0-112) == clipPath-content-2.svg clipPath-content-2-ref.svg +fuzzy-if(skiaContent&&winWidget,0-105,0-56) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == clipPath-content.svg clipPath-content-ref.svg # Bug 1392106 +fuzzy-if(skiaContent&&winWidget,0-53,0-112) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == clipPath-content-2.svg clipPath-content-2-ref.svg # Bug 1392106 # text and patterns fuzzy-if(cocoaWidget,0-1,0-6) fuzzy-if(skiaContent,0-65,0-313) == pattern-content.svg pattern-content-ref.svg diff --git a/layout/reftests/text/reftest.list b/layout/reftests/text/reftest.list index e950d625a64c..7afad03ed82c 100644 --- a/layout/reftests/text/reftest.list +++ b/layout/reftests/text/reftest.list @@ -322,7 +322,7 @@ pref(gfx.font_rendering.graphite.enabled,true) == glyph-decomposition-graphite.h == hyphenation-control-3.html hyphenation-control-3-ref.html == hyphenation-control-4.html hyphenation-control-4-ref.html fuzzy-if(winWidget,0-47,0-6) == hyphenation-control-5.html hyphenation-control-5-ref.html -== hyphenation-control-6.html hyphenation-control-6-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == hyphenation-control-6.html hyphenation-control-6-ref.html # Bug 1392106 == hyphenation-control-7.html hyphenation-control-7-ref.html # osx-font-smoothing - with and without subpixel AA, only under OSX diff --git a/layout/reftests/w3c-css/failures.list b/layout/reftests/w3c-css/failures.list index cbb747f550c6..31eb2b6d146c 100644 --- a/layout/reftests/w3c-css/failures.list +++ b/layout/reftests/w3c-css/failures.list @@ -130,10 +130,13 @@ fuzzy-if(OSX,0-23,0-16) css-writing-modes/text-combine-upright-decorations-001.h fuzzy-if(OSX||winWidget,0-255,0-480) css-writing-modes/text-indent-v??-0??.xht fuzzy-if(OSX||winWidget,0-226,0-960) fails-if(webrender&&cocoaWidget) css-writing-modes/text-orientation-016.xht fuzzy-if(OSX||winWidget,0-223,0-720) css-writing-modes/vertical-alignment-*.xht -fuzzy-if(OSX||winWidget,0-158,0-624) css-writing-modes/writing-mode-vertical-??-00?.* +fuzzy-if(OSX||winWidget,0-158,0-624) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) css-writing-modes/writing-mode-vertical-??-00?.* fuzzy(0-255,0-960) css-writing-modes/text-combine-upright-value-all-00?.html random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) css-writing-modes/text-combine-upright-compression-00?.html random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) css-writing-modes/text-combine-upright-inherit-all-00?.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) css-writing-modes/text-orientation-0??.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) css-writing-modes/text-orientation-mixed-v??-1??.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) css-writing-modes/text-orientation-sideways-v??-1??.html # Bug 1167911 skip css-writing-modes/abs-pos-non-replaced-icb-vlr-021.xht diff --git a/layout/reftests/w3c-css/received/reftest.list b/layout/reftests/w3c-css/received/reftest.list index 7977493e1737..9ddedaab7b94 100644 --- a/layout/reftests/w3c-css/received/reftest.list +++ b/layout/reftests/w3c-css/received/reftest.list @@ -1121,10 +1121,10 @@ fuzzy-if(OSX||winWidget,0-255,0-480) == css-writing-modes/text-indent-vrl-014.xh fuzzy-if(OSX||winWidget,0-255,0-480) == css-writing-modes/text-indent-vrl-016.xht css-writing-modes/text-indent-vrl-012-ref.xht fuzzy-if(OSX||winWidget,0-226,0-960) fails-if(webrender&&cocoaWidget) == css-writing-modes/text-orientation-016.xht css-writing-modes/text-orientation-016-ref.xht == css-writing-modes/text-orientation-mixed-srl-016.xht css-writing-modes/text-orientation-mixed-srl-016-ref.xht -== css-writing-modes/text-orientation-mixed-vlr-100.html css-writing-modes/text-orientation-mixed-vlr-100-ref.html -== css-writing-modes/text-orientation-mixed-vrl-100.html css-writing-modes/text-orientation-mixed-vrl-100-ref.html -== css-writing-modes/text-orientation-sideways-vlr-100.html css-writing-modes/text-orientation-sideways-vlr-100-ref.html -== css-writing-modes/text-orientation-sideways-vrl-100.html css-writing-modes/text-orientation-sideways-vrl-100-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == css-writing-modes/text-orientation-mixed-vlr-100.html css-writing-modes/text-orientation-mixed-vlr-100-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == css-writing-modes/text-orientation-mixed-vrl-100.html css-writing-modes/text-orientation-mixed-vrl-100-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == css-writing-modes/text-orientation-sideways-vlr-100.html css-writing-modes/text-orientation-sideways-vlr-100-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == css-writing-modes/text-orientation-sideways-vrl-100.html css-writing-modes/text-orientation-sideways-vrl-100-ref.html == css-writing-modes/text-orientation-upright-srl-018.xht css-writing-modes/text-orientation-mixed-srl-016-ref.xht == css-writing-modes/text-orientation-upright-vlr-100.html css-writing-modes/text-orientation-upright-vlr-100-ref.html == css-writing-modes/text-orientation-upright-vrl-100.html css-writing-modes/text-orientation-upright-vrl-100-ref.html @@ -1159,10 +1159,10 @@ fails == css-writing-modes/wm-propagation-body-011.xht css-writing-modes/wm-prop fails == css-writing-modes/wm-propagation-body-015.xht css-writing-modes/block-flow-direction-025-ref.xht == css-writing-modes/writing-mode-horizontal-001l.html css-writing-modes/reference/writing-mode-horizontal-001l-ref.html == css-writing-modes/writing-mode-horizontal-001r.html css-writing-modes/reference/writing-mode-horizontal-001r-ref.html -fuzzy-if(OSX||winWidget,0-158,0-624) == css-writing-modes/writing-mode-vertical-lr-002.xht css-writing-modes/reftest/writing-mode-vertical-lr-002-ref.xht -fuzzy-if(OSX||winWidget,0-158,0-624) == css-writing-modes/writing-mode-vertical-rl-001.xht css-writing-modes/reftest/writing-mode-vertical-rl-001-ref.xht -fuzzy-if(OSX||winWidget,0-158,0-624) == css-writing-modes/writing-mode-vertical-rl-002.xht css-writing-modes/reftest/writing-mode-vertical-rl-002-ref.xht -fuzzy-if(OSX||winWidget,0-158,0-624) == css-writing-modes/writing-mode-vertical-rl-003.htm css-writing-modes/writing-mode-vertical-rl-003-ref.htm +fuzzy-if(OSX||winWidget,0-158,0-624) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == css-writing-modes/writing-mode-vertical-lr-002.xht css-writing-modes/reftest/writing-mode-vertical-lr-002-ref.xht +fuzzy-if(OSX||winWidget,0-158,0-624) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == css-writing-modes/writing-mode-vertical-rl-001.xht css-writing-modes/reftest/writing-mode-vertical-rl-001-ref.xht +fuzzy-if(OSX||winWidget,0-158,0-624) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == css-writing-modes/writing-mode-vertical-rl-002.xht css-writing-modes/reftest/writing-mode-vertical-rl-002-ref.xht +fuzzy-if(OSX||winWidget,0-158,0-624) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == css-writing-modes/writing-mode-vertical-rl-003.htm css-writing-modes/writing-mode-vertical-rl-003-ref.htm skip == selectors/any-link-dynamic-001.html selectors/any-link-dynamic-001-ref.html needs-focus == selectors/focus-within-001.html selectors/focus-within-001-ref.html needs-focus == selectors/focus-within-002.html selectors/focus-within-001-ref.html diff --git a/layout/reftests/w3c-css/submitted/counter-styles-3/reftest.list b/layout/reftests/w3c-css/submitted/counter-styles-3/reftest.list index 30cc3a9b98a0..e339babc6c09 100644 --- a/layout/reftests/w3c-css/submitted/counter-styles-3/reftest.list +++ b/layout/reftests/w3c-css/submitted/counter-styles-3/reftest.list @@ -1,6 +1,6 @@ random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == system-cyclic.html system-cyclic-ref.html # Bug 1392106 -== system-fixed.html system-fixed-ref.html -== system-symbolic.html system-symbolic-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == system-fixed.html system-fixed-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == system-symbolic.html system-symbolic-ref.html # Bug 1392106 fails-if(webrender&&cocoaWidget) == system-alphabetic.html system-alphabetic-ref.html == system-numeric.html system-numeric-ref.html == system-additive.html system-additive-ref.html @@ -13,8 +13,8 @@ fails-if(webrender&&cocoaWidget) == system-alphabetic.html system-alphabetic-ref == system-additive-invalid.html system-common-invalid-ref.html == system-extends-invalid.html system-extends-invalid-ref.html random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == descriptor-negative.html descriptor-negative-ref.html # Bug 1392106 -== descriptor-prefix.html descriptor-prefix-ref.html -== descriptor-suffix.html descriptor-suffix-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == descriptor-prefix.html descriptor-prefix-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == descriptor-suffix.html descriptor-suffix-ref.html # Bug 1392106 == descriptor-range.html descriptor-range-ref.html fuzzy-if(webrender,0-22,0-3) == descriptor-pad.html descriptor-pad-ref.html == descriptor-fallback.html descriptor-fallback-ref.html diff --git a/layout/reftests/w3c-css/submitted/flexbox/reftest.list b/layout/reftests/w3c-css/submitted/flexbox/reftest.list index 41abbe8e4c77..198a5ce0ecbb 100644 --- a/layout/reftests/w3c-css/submitted/flexbox/reftest.list +++ b/layout/reftests/w3c-css/submitted/flexbox/reftest.list @@ -39,10 +39,10 @@ fuzzy-if(webrender,0-1,0-2) == flexbox-align-self-horiz-004.xhtml flexbox-align == flexbox-align-self-vert-003.xhtml flexbox-align-self-vert-003-ref.xhtml == flexbox-align-self-vert-004.xhtml flexbox-align-self-vert-004-ref.xhtml fuzzy-if(Android,0-158,0-32) == flexbox-align-self-vert-rtl-001.xhtml flexbox-align-self-vert-rtl-001-ref.xhtml -== flexbox-align-self-vert-rtl-002.xhtml flexbox-align-self-vert-rtl-002-ref.xhtml -== flexbox-align-self-vert-rtl-003.xhtml flexbox-align-self-vert-rtl-003-ref.xhtml -== flexbox-align-self-vert-rtl-004.xhtml flexbox-align-self-vert-rtl-004-ref.xhtml -== flexbox-align-self-vert-rtl-005.xhtml flexbox-align-self-vert-rtl-005-ref.xhtml +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == flexbox-align-self-vert-rtl-002.xhtml flexbox-align-self-vert-rtl-002-ref.xhtml # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == flexbox-align-self-vert-rtl-003.xhtml flexbox-align-self-vert-rtl-003-ref.xhtml # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == flexbox-align-self-vert-rtl-004.xhtml flexbox-align-self-vert-rtl-004-ref.xhtml # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == flexbox-align-self-vert-rtl-005.xhtml flexbox-align-self-vert-rtl-005-ref.xhtml # Bug 1392106 == flexbox-align-items-center-nested-001.html flexbox-align-items-center-nested-001-ref.html diff --git a/layout/reftests/w3c-css/submitted/lists-3/reftest.list b/layout/reftests/w3c-css/submitted/lists-3/reftest.list index f914145ab8f0..de525942f8e3 100644 --- a/layout/reftests/w3c-css/submitted/lists-3/reftest.list +++ b/layout/reftests/w3c-css/submitted/lists-3/reftest.list @@ -1,3 +1,3 @@ # Tests for list-style-type -== list-style-type-string-001a.html list-style-type-string-001-ref.html -== list-style-type-string-001b.html list-style-type-string-001-ref.html +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == list-style-type-string-001a.html list-style-type-string-001-ref.html # Bug 1392106 +random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == list-style-type-string-001b.html list-style-type-string-001-ref.html # Bug 1392106 From e641866f272fe10870d088d7775b6d248f5ffc20 Mon Sep 17 00:00:00 2001 From: James Willcox Date: Thu, 23 Aug 2018 13:12:20 +0000 Subject: [PATCH 15/34] Bug 1480920 - Bump versions for Android test runner packages r=jchen This also removes the trivial tests for geckoview_example that were causing problems. Differential Revision: https://phabricator.services.mozilla.com/D3991 --HG-- extra : moz-landing-system : lando --- build.gradle | 3 ++ mobile/android/geckoview/build.gradle | 6 +-- .../geckoview/test/GeckoResultTest.java | 3 -- .../test/rule/GeckoSessionTestRule.java | 48 +++++++++++-------- mobile/android/geckoview_example/build.gradle | 9 ---- .../geckoview_example/ApplicationTest.java | 13 ----- .../GeckoViewActivityTest.java | 32 ------------- .../geckoview_example/ExampleUnitTest.java | 15 ------ 8 files changed, 34 insertions(+), 95 deletions(-) delete mode 100644 mobile/android/geckoview_example/src/androidTest/java/org/mozilla/geckoview_example/ApplicationTest.java delete mode 100644 mobile/android/geckoview_example/src/androidTest/java/org/mozilla/geckoview_example/GeckoViewActivityTest.java delete mode 100644 mobile/android/geckoview_example/src/test/java/org/mozilla/geckoview_example/ExampleUnitTest.java diff --git a/build.gradle b/build.gradle index 9aa1d50da22e..825bdb4c3944 100644 --- a/build.gradle +++ b/build.gradle @@ -111,6 +111,9 @@ afterEvaluate { "-Xlint:-deprecation", // Serial, because we don't use Java serialization. "-Xlint:-serial", + // Classfile, because javac has a bug with MethodParameters attributes + // with Java 7. https://bugs.openjdk.java.net/browse/JDK-8190452 + "-Xlint:-classfile", // Turn all remaining warnings into errors, // unless marked by @SuppressWarnings. "-Werror"] diff --git a/mobile/android/geckoview/build.gradle b/mobile/android/geckoview/build.gradle index 95eceb2647e6..08965e054299 100644 --- a/mobile/android/geckoview/build.gradle +++ b/mobile/android/geckoview/build.gradle @@ -200,9 +200,9 @@ dependencies { testImplementation 'org.mockito:mockito-core:1.10.19' androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - androidTestImplementation 'com.android.support.test:runner:0.5' - androidTestImplementation 'com.android.support.test:rules:0.5' - androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2' + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test:rules:1.0.2' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' androidTestImplementation "com.android.support:support-annotations:$support_library_version" } diff --git a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/GeckoResultTest.java b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/GeckoResultTest.java index 954730c0e8e1..74a90b74ae71 100644 --- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/GeckoResultTest.java +++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/GeckoResultTest.java @@ -29,9 +29,6 @@ public class GeckoResultTest { private static class MockException extends RuntimeException { } - @Rule - public UiThreadTestRule mUiThreadTestRule = new UiThreadTestRule(); - private boolean mDone; private void waitUntilDone() { diff --git a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/rule/GeckoSessionTestRule.java b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/rule/GeckoSessionTestRule.java index 54019b3eef2c..1b4bf0de6292 100644 --- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/rule/GeckoSessionTestRule.java +++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/rule/GeckoSessionTestRule.java @@ -7,7 +7,6 @@ package org.mozilla.geckoview.test.rule; import org.mozilla.gecko.gfx.GeckoDisplay; import org.mozilla.geckoview.BuildConfig; -import org.mozilla.geckoview.GeckoResponse; import org.mozilla.geckoview.GeckoResult; import org.mozilla.geckoview.GeckoResult.OnExceptionListener; import org.mozilla.geckoview.GeckoResult.OnValueListener; @@ -32,6 +31,7 @@ import org.hamcrest.Matcher; import org.json.JSONObject; import org.junit.rules.ErrorCollector; +import org.junit.rules.TestRule; import org.junit.runner.Description; import org.junit.runners.model.Statement; @@ -42,17 +42,12 @@ import android.net.LocalSocketAddress; import android.os.Build; import android.os.Bundle; import android.os.Debug; -import android.os.Handler; import android.os.Looper; -import android.os.Message; -import android.os.MessageQueue; import android.os.Process; import android.os.SystemClock; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.test.InstrumentationRegistry; -import android.support.test.rule.UiThreadTestRule; -import android.util.Log; import android.util.Pair; import android.view.MotionEvent; import android.view.Surface; @@ -77,6 +72,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.atomic.AtomicReference; import java.util.regex.Pattern; import kotlin.jvm.JvmClassMappingKt; @@ -88,7 +84,7 @@ import kotlin.reflect.KClass; * for waiting on particular callbacks to be called, and methods for asserting that * callbacks are called in the proper order. */ -public class GeckoSessionTestRule extends UiThreadTestRule { +public class GeckoSessionTestRule implements TestRule { private static final String LOGTAG = "GeckoSessionTestRule"; private static final long DEFAULT_TIMEOUT_MILLIS = 10000; @@ -1478,23 +1474,35 @@ public class GeckoSessionTestRule extends UiThreadTestRule { @Override public Statement apply(final Statement base, final Description description) { - return super.apply(new Statement() { + return new Statement() { @Override public void evaluate() throws Throwable { - try { - prepareStatement(description); - base.evaluate(); - performTestEndCheck(); - } finally { - cleanupStatement(); + final AtomicReference exceptionRef = new AtomicReference<>(); + mInstrumentation.runOnMainSync(new Runnable() { + @Override + public void run() { + try { + prepareStatement(description); + base.evaluate(); + performTestEndCheck(); + } catch (Throwable t) { + exceptionRef.set(t); + } finally { + try { + cleanupStatement(); + } catch (Throwable t) { + exceptionRef.set(t); + } + } + } + }); + + Throwable throwable = exceptionRef.get(); + if (throwable != null) { + throw throwable; } } - }, description); - } - - @Override - protected boolean shouldRunOnUiThread(final Description description) { - return true; + }; } /** diff --git a/mobile/android/geckoview_example/build.gradle b/mobile/android/geckoview_example/build.gradle index d3a0ad8e127c..57942efbc419 100644 --- a/mobile/android/geckoview_example/build.gradle +++ b/mobile/android/geckoview_example/build.gradle @@ -15,7 +15,6 @@ android { applicationId "org.mozilla.geckoview_example" versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { @@ -30,16 +29,8 @@ android { } dependencies { - testImplementation 'junit:junit:4.12' - implementation "com.android.support:support-annotations:$support_library_version" implementation "com.android.support:appcompat-v7:$support_library_version" - androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2' - androidTestImplementation 'com.android.support.test:runner:0.5' - // Not defining this library again results in test-app assuming 23.1.1, and the following errors: - // "Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (23.4.0) and test app (23.1.1) differ." - androidTestImplementation "com.android.support:support-annotations:$support_library_version" - implementation project(path: ':geckoview') } diff --git a/mobile/android/geckoview_example/src/androidTest/java/org/mozilla/geckoview_example/ApplicationTest.java b/mobile/android/geckoview_example/src/androidTest/java/org/mozilla/geckoview_example/ApplicationTest.java deleted file mode 100644 index 88630b1974d2..000000000000 --- a/mobile/android/geckoview_example/src/androidTest/java/org/mozilla/geckoview_example/ApplicationTest.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.mozilla.geckoview_example; - -import android.app.Application; -import android.test.ApplicationTestCase; - -/** - * Testing Fundamentals - */ -public class ApplicationTest extends ApplicationTestCase { - public ApplicationTest() { - super(Application.class); - } -} \ No newline at end of file diff --git a/mobile/android/geckoview_example/src/androidTest/java/org/mozilla/geckoview_example/GeckoViewActivityTest.java b/mobile/android/geckoview_example/src/androidTest/java/org/mozilla/geckoview_example/GeckoViewActivityTest.java deleted file mode 100644 index 85ba6d068ced..000000000000 --- a/mobile/android/geckoview_example/src/androidTest/java/org/mozilla/geckoview_example/GeckoViewActivityTest.java +++ /dev/null @@ -1,32 +0,0 @@ -/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*- - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.geckoview_example; - -import android.support.test.rule.ActivityTestRule; -import android.support.test.runner.AndroidJUnit4; - -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; - -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.assertion.ViewAssertions.matches; -import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; -import static android.support.test.espresso.matcher.ViewMatchers.withId; - -@RunWith(AndroidJUnit4.class) -public class GeckoViewActivityTest { - - @Rule - public ActivityTestRule mActivityRule = new ActivityTestRule<>(GeckoViewActivity.class); - - @Test - public void testA() throws InterruptedException { - onView(withId(R.id.gecko_view)) - .check(matches(isDisplayed())); - } -} diff --git a/mobile/android/geckoview_example/src/test/java/org/mozilla/geckoview_example/ExampleUnitTest.java b/mobile/android/geckoview_example/src/test/java/org/mozilla/geckoview_example/ExampleUnitTest.java deleted file mode 100644 index 14f82340be3c..000000000000 --- a/mobile/android/geckoview_example/src/test/java/org/mozilla/geckoview_example/ExampleUnitTest.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.mozilla.geckoview_example; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * To work on unit tests, switch the Test Artifact in the Build Variants view. - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() throws Exception { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file From 1eb4a76ba430bf17f61f8eafcc54fb651a331a3f Mon Sep 17 00:00:00 2001 From: ffxbld Date: Thu, 23 Aug 2018 13:31:44 +0000 Subject: [PATCH 16/34] No Bug, mozilla-central repo-update HSTS HPKP blocklist remote-settings - a=repo-update r=mtabara Differential Revision: https://phabricator.services.mozilla.com/D4071 --HG-- extra : moz-landing-system : lando --- browser/app/blocklist.xml | 18 +++++++++++++++++- security/manager/ssl/StaticHPKPins.h | 2 +- security/manager/ssl/nsSTSPreloadList.inc | 2 +- services/settings/dumps/blocklists/addons.json | 2 +- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/browser/app/blocklist.xml b/browser/app/blocklist.xml index 2785cebd370a..ad91dd8528e1 100644 --- a/browser/app/blocklist.xml +++ b/browser/app/blocklist.xml @@ -1,5 +1,5 @@ - + @@ -2320,6 +2320,22 @@ + + + + + + + + + + + + + + + + diff --git a/security/manager/ssl/StaticHPKPins.h b/security/manager/ssl/StaticHPKPins.h index e8b801c67146..179b526ef46b 100644 --- a/security/manager/ssl/StaticHPKPins.h +++ b/security/manager/ssl/StaticHPKPins.h @@ -1174,4 +1174,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = { static const int32_t kUnknownId = -1; -static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1542881093590000); +static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1543497165654000); diff --git a/security/manager/ssl/nsSTSPreloadList.inc b/security/manager/ssl/nsSTSPreloadList.inc index 76a2322f16d9..29f523a713c7 100644 --- a/security/manager/ssl/nsSTSPreloadList.inc +++ b/security/manager/ssl/nsSTSPreloadList.inc @@ -8,7 +8,7 @@ /*****************************************************************************/ #include -const PRTime gPreloadListExpirationTime = INT64_C(1545300209985000); +const PRTime gPreloadListExpirationTime = INT64_C(1545916292150000); %% 0-1.party, 1 0.me.uk, 1 diff --git a/services/settings/dumps/blocklists/addons.json b/services/settings/dumps/blocklists/addons.json index c4870f5724a3..da9f56a63ecf 100644 --- a/services/settings/dumps/blocklists/addons.json +++ b/services/settings/dumps/blocklists/addons.json @@ -1 +1 @@ -{"data":[{"guid":"/^(({1a3fb414-0945-405c-a62a-9fe5e1a50c69})|({1a45f6aa-d80a-4317-84d2-0ce43671b08a})|({2d52a462-8bec-4708-9cd1-894b682bdc78})|({3f841cfc-de5a-421f-8bd7-2bf1d943b02a})|({5c7601bf-522b-47e5-b0f0-ea0e706af443})|({7ebe580f-71c9-4ef8-8073-f38deaeb9dfb})|({8b2188fd-1daf-4851-b387-28d964014353})|({8cee42ac-f1fe-40ae-aed6-24e3b76b2f77})|({8d13c4a9-5e8c-47a6-b583-681c83164ac9})|({9b1d775a-1877-45c9-ad48-d6fcfa4fff39})|({9efdbe5f-6e51-4a35-a41b-71dc939e6221})|({23f63efb-156e-440b-a96c-118bebc21057})|({026dfc8c-ecc8-41ba-b45f-70ffbd5cc672})|({34aa433c-27e9-4c87-a662-9f82f99eb9af})|({36f34d69-f22f-47c3-b4cd-4f37b7676107})|({39bd8607-0af4-4d6b-bd69-9a63c1825d3c})|({48c6ad6d-297c-4074-8fef-ca5f07683859})|({54aa688d-9504-481d-ba75-cfee421b98e0})|({59f59748-e6a8-4b41-87b5-9baadd75ddef})|({61d99407-1231-4edc-acc8-ab96cbbcf151})|({68ca8e3a-397a-4135-a3af-b6e4068a1eae})|({71beafd6-779b-4b7d-a78b-18a107277b59})|({83ed90f8-b07e-4c45-ba6b-ba2fe12cebb6})|({231dfb44-98e0-4bc4-b6ee-1dac4a836b08})|({273f0bce-33f4-45f6-ae03-df67df3864c2})|({392f4252-c731-4715-9f8d-d5815f766abb})|({484ec5d0-4cfd-4d96-88d0-a349bfc33780})|({569dbf47-cc10-41c4-8fd5-5f6cf4a833c7})|({578cad7a-57d5-404d-8dda-4d30de33b0c2})|({986b2c3f-e335-4b39-b3ad-46caf809d3aa})|({1091c11f-5983-410e-a715-0968754cff54})|({2330eb8a-e3fe-4b2e-9f17-9ddbfb96e6f5})|({5920b042-0af1-4658-97c1-602315d3b93d})|({6331a47f-8aae-490c-a9ad-eae786b4349f})|({6698b988-c3ef-4e1f-8740-08d52719eab5})|({30516f71-88d4-489b-a27f-d00a63ad459f})|({12089699-5570-4bf6-890f-07e7f674aa6e})|({84887738-92bf-4903-a5e8-695fd078c657})|({8562e48e-3723-412a-9ebd-b33d3d3b29dd})|({6e449795-c545-41be-92c0-5d467c147389})|({1e369c7c-6b61-436e-8978-4640687670d6})|({a03d427a-bd2e-42b6-828f-a57f38fac7b5})|({a77fc9b9-6ebb-418d-b0b6-86311c191158})|({a368025b-9828-43a1-8a5c-f6fab61c9be9})|({b1908b02-410d-4778-8856-7e259fbf471d})|({b9425ace-c2e9-4ec4-b564-4062546f4eca})|({b9845b5d-70c9-419c-a9a5-98ea8ee5cc01})|({ba99fee7-9806-4e32-8257-a33ffc3b8539})|({bdf8767d-ae4c-4d45-8f95-0ba29b910600})|({c6c4a718-cf91-4648-aa9b-170d66163cf2})|({ca0f2988-e1a8-4e83-afde-0dca56a17d5f})|({cac5db09-979b-40e3-8c8e-d96397b0eecb})|({d3b5280b-f8d8-4669-bdf6-91f23ae58042})|({d73d2f6a-ea24-4b1b-8c76-563fce9f786d})|({d77fed37-85c0-4b94-89bb-0d2849472b8d})|({d371abec-84bb-481b-acbf-235639451127})|({de47a3b4-dad1-4f4a-bdd6-8666586e29e8})|({ded6afad-2aaa-446b-b6bd-b12a8a61c945})|({e0c3a1ca-8e21-4d1b-b53b-ea115cf59172})|({e6bbf496-6489-4b48-8e5a-799aad4aa742})|({e63b262a-f9b8-4496-9c4b-9d3cbd6aea90})|({e73c1b5d-20f7-4d86-ad16-9de3c27718e2})|({eb01dc49-688f-4a21-aa8d-49bd88a8f319})|({edc9816b-60b4-493c-a090-01125e0b8018})|({effa2f97-0f07-44c8-99cb-32ac760a0621})|({f6e6fd9b-b89f-4e8d-9257-01405bc139a6})|({ff87977a-fefb-4a9d-b703-4b73dce8853d})|({ffea9e62-e516-4238-88a7-d6f9346f4955}))$/","prefs":[],"schema":1534335096640,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483191","why":"Add-ons that change the default search engine, taking away user control.","name":"Search hijacking add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"d9892a76-b22e-40bd-8073-89b0f8110ec7","last_modified":1534336165428},{"guid":"/^((Timemetric@tmetric)|(textMarkertool@underFlyingBirches\\.org)|(youpanel@jetpack)|({6f13489d-b274-45b6-80fa-e9daa140e1a4})|({568db771-c718-4587-bcd0-e3728ee53550})|({829827cd-03be-4fed-af96-dd5997806fb4})|({9077390b-89a9-41ad-998f-ab973e37f26f})|({8e7269ac-a171-4d9f-9c0a-c504848fd52f})|({aaaffe20-3306-4c64-9fe5-66986ebb248e})|({bf153de7-cdf2-4554-af46-29dabfb2aa2d})|({c579191c-6bb8-4795-adca-d1bf180b512d})|({e2a4966f-919d-4afc-a94f-5bd6e0606711})|({ee97f92d-1bfe-4e9d-816c-0dfcd63a6206}))$/","prefs":[],"schema":1534275699570,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483206","why":"Add-ons that execute malicious remote code","name":"Various malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"2734325e-143b-4962-98bf-4b18c77407e2","last_modified":1534334500118},{"guid":"/^(({0f9e469e-4245-43f8-a7a8-7e730f80d284})|({117ca2f3-df4c-4e17-a5c5-b49077e9c731})|({11db147a-a1cb-43dd-9c05-0d11683483e1})|({1ed2af70-9e89-42db-a9e8-17ae594003ac})|({24ed6bdc-3085-413b-a62e-dc5dd30272f4})|({2aa19a7a-2a43-4e0d-a3dc-abb33fa7e2b6})|({3d6fbbb3-6c80-47bb-af20-56fcaebcb9ca})|({42f4c194-8929-42b9-a9a3-afa56dd0913b})|({46740fa0-896d-4f2e-a240-9478865c47c2})|({4718da68-a373-4a03-a77b-0f49b8bb40ee})|({4d41e0b8-bf7e-45ab-bd90-c426b420e3ee})|({50957a38-c15d-42da-94f5-325bc74a554c})|({5650fc63-a7c5-4627-8d0a-99b20dcbd94b})|({5c5c38ec-08bf-493a-9352-6ccf25d60c08})|({67ecb446-9ccd-4193-a27f-7bd1521bd03c})|({71f01ffe-226d-4634-9b21-968f5ce9f8f5})|({72f31855-2412-4998-a6ff-978f89bba0c3})|({7b3c1e86-2599-4e1a-ad98-767ae38286c8})|({7c37463c-001e-4f58-9e88-aaab2a624551})|({7de64f18-8e6b-4c41-9b05-d8872b418026})|({82dcf841-c7e1-4764-bb47-caa28909e447})|({872f20ea-196e-4d11-8835-1cc4c877b1b8})|({8efee317-546f-418d-82d3-60cc5187acf5})|({93deeba1-0126-43f7-a94d-4eecfce53b33})|({9cc12446-16da-4200-b284-d5fc18670825})|({9cd27996-6068-4597-8e97-bb63f783a224})|({9fdcedc7-ffde-44c3-94f6-4196b1e0d9fc})|({a191563e-ac30-4c5a-af3d-85bb9e9f9286})|({a4cb0430-c92e-44c6-9427-6a6629c4c5f6})|({a87f1b9b-8817-4bff-80fd-db96020c56c8})|({ae29a313-c6a9-48be-918d-1e4c67ba642f})|({b2cea58a-845d-4394-9b02-8a31cfbb4873})|({b420e2be-df31-4bea-83f4-103fe0aa558c})|({b77afcab-0971-4c50-9486-f6f54845a273})|({b868c6f4-5841-4c14-86ee-d60bbfd1cec1})|({b99ae7b1-aabb-4674-ba8f-14ed32d04e76})|({b9bb8009-3716-4d0c-bcb4-35f9874e931e})|({c53c4cbc-04a7-4771-9e97-c08c85871e1e})|({ce0d1384-b99b-478e-850a-fa6dfbe5a2d4})|({cf8e8789-e75d-4823-939f-c49a9ae7fba2})|({d0f67c53-42b5-4650-b343-d9664c04c838})|({dfa77d38-f67b-4c41-80d5-96470d804d09})|({e20c916e-12ea-445b-b6f6-a42ec801b9f8})|({e2a4966f-919d-4afc-a94f-5bd6e0606711})|({e7d03b09-24b3-4d99-8e1b-c510f5d13612})|({fa8141ba-fa56-414e-91c0-898135c74c9d})|({fc99b961-5878-46b4-b091-6d2f507bf44d})|(firedocs@mozilla\\.com)|(firetasks@mozilla\\.com)|(getta@mozilla\\.com)|(javideo@mozilla\\.com)|(javideo2@mozilla\\.com)|(javideos@mozilla\\.com)|(javideosz@mozilla\\.com)|(search_free@mozilla\\.com)|(search-unlisted@mozilla\\.com)|(search-unlisted101125511@mozilla\\.com)|(search-unlisted10155511@mozilla\\.com)|(search-unlisted1025525511@mozilla\\.com)|(search-unlisted1099120071@mozilla\\.com)|(search-unlisted1099125511@mozilla\\.com)|(search-unlisted109925511@mozilla\\.com)|(search-unlisted11@mozilla\\.com)|(search-unlisted111@mozilla\\.com)|(search-unlisted12@mozilla\\.com)|(search-unlisted14400770034@mozilla\\.com)|(search-unlisted144007741154@mozilla\\.com)|(search-unlisted144436110034@mozilla\\.com)|(search-unlisted14454@mozilla\\.com)|(search-unlisted1570124111@mozilla\\.com)|(search-unlisted1570254441111@mozilla\\.com)|(search-unlisted15721239034@mozilla\\.com)|(search-unlisted157441@mozilla\\.com)|(search-unlisted15757771@mozilla\\.com)|(search-unlisted1577122001@mozilla\\.com)|(search-unlisted15777441001@mozilla\\.com)|(search-unlisted15788120036001@mozilla\\.com)|(search-unlisted157881200361111@mozilla\\.com)|(search-unlisted1578899961111@mozilla\\.com)|(search-unlisted157999658@mozilla\\.com)|(search-unlisted158436561@mozilla\\.com)|(search-unlisted158440374111@mozilla\\.com)|(search-unlisted15874111@mozilla\\.com)|(search-unlisted1741395551@mozilla\\.com)|(search-unlisted17441000051@mozilla\\.com)|(search-unlisted174410000522777441@mozilla\\.com)|(search-unlisted1768fdgfdg@mozilla\\.com)|(search-unlisted180000411@mozilla\\.com)|(search-unlisted18000411@mozilla\\.com)|(search-unlisted1800411@mozilla\\.com)|(search-unlisted18011888@mozilla\\.com)|(search-unlisted1801668@mozilla\\.com)|(search-unlisted18033411@mozilla\\.com)|(search-unlisted180888@mozilla\\.com)|(search-unlisted181438@mozilla\\.com)|(search-unlisted18411@mozilla\\.com)|(search-unlisted18922544@mozilla\\.com)|(search-unlisted1955511@mozilla\\.com)|(search-unlisted2@mozilla\\.com)|(search-unlisted3@mozilla\\.com)|(search-unlisted4@mozilla\\.com)|(search-unlisted400@mozilla\\.com)|(search-unlisted40110@mozilla\\.com)|(search-unlisted5@mozilla\\.com)|(search-unlisted55@mozilla\\.com)|(search@mozilla\\.com)|(searchazsd@mozilla\\.com)|(smart246@mozilla\\.com)|(smarter1@mozilla\\.com)|(smarters1@mozilla\\.com)|(stream@mozilla\\.com)|(tahdith@mozilla\\.com)|(therill@mozilla\\.com)|(Updates@mozilla\\.com))$/","prefs":[],"schema":1534102906482,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1480591","why":"These add-ons violate the no-surprises and user-control policy.","name":"Search engine hijacking malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cee5c2ab-1059-4b15-a78c-1203116552c4","last_modified":1534157457677},{"guid":"/^((search-unlisted2@mozilla\\.com)|(search-unlisted3@mozilla\\.com)|(search-unlisted4@mozilla\\.com)|(search-unlisted5@mozilla\\.com)|(search-unlisted11@mozilla\\.com)|(search-unlisted12@mozilla\\.com)|(search-unlisted55@mozilla\\.com)|(search-unlisted111@mozilla\\.com)|(search-unlisted400@mozilla\\.com)|(search-unlisted40110@mozilla\\.com)|(search-unlisted17441000051@mozilla\\.com)|(search-unlisted174410000522777441@mozilla\\.com)|(search-unlisted@mozilla\\.com)|({0a054930-63d7-46f4-937a-de80eab21da4})|({0b24cf69-02b8-407d-83db-e7af04fc1f3e})|({0c4df994-4f4a-4646-ae5d-8936be8a4188})|({0d50d8aa-d1ed-4930-b0a0-f3340d2f510e})|({0eb4672d-58a6-4230-b74c-50ca3716c4b0})|({0f9e469e-4245-43f8-a7a8-7e730f80d284})|({0fc9fcc7-2f47-4fd1-a811-6bd4d611294b})|({4479446e-40f3-48af-ab85-7e3bb4468227})|({1a927d5b-42e7-4407-828a-fdc441d0daae})|({1a760841-50c3-4143-9f7e-3c8f04e8f9d1})|({1bd8ba17-b3ed-412e-88db-35bc4d8771d7})|({1c7d6d9e-325a-4260-8213-82d51277fc31})|({01c9a4a4-06dd-426b-9500-2ea6fe841b88})|({1cab8ccf-deff-4743-925d-a47cbd0a6b56})|({1cb0652a-4645-412d-b7e8-0b9e9a83242f})|({1d6634ca-dd37-4a31-aad1-321f05aa2bb3})|({1d9997b2-f61e-429a-8591-999a6d62becc})|({1ed2af70-9e89-42db-a9e8-17ae594003ac})|({01f409a5-d617-47be-a574-d54325fe05d1})|({2a8bec00-0ab0-4b4d-bd3d-4f59eada8fd8})|({2aeb1f92-6ddc-49f5-b7b3-3872d7e019a9})|({2bb68b03-b528-4133-9fc4-4980fbb4e449})|({2cac0be1-10a2-4a0d-b8c5-787837ea5955})|({2d3c5a5a-8e6f-4762-8aff-b24953fe1cc9})|({2ee125f1-5a32-4f8e-b135-6e2a5a51f598})|({2f53e091-4b16-4b60-9cae-69d0c55b2e78})|({3a65e87c-7ffc-408d-927e-ebf1784efd6d})|({3a26e767-b781-4e21-aaf8-ac813d9edc9f})|({3c3ef2a3-0440-4e77-9e3c-1ca8d48f895c})|({3dca6517-0d75-42d2-b966-20467f82dca1})|({3f4191fa-8f16-47d2-9414-36bfc9e0c2bf})|({3f49e12b-bb58-4797-982c-4364030d96d9})|({4aa2f47a-0bae-4a47-8a1b-1b93313a2938})|({04abafc7-7a65-401d-97f3-af2853854373})|({4ad16913-e5cb-4292-974c-d557ef5ec5bb})|({4b1050c6-9139-4126-9331-30a836e75db9})|({4b1777ec-6fe4-4572-9a29-5af206e003bf})|({4beacbbb-1691-40e7-8c1e-4853ce2e2dee})|({4c140bc5-c2ad-41c3-a407-749473530904})|({4cbef3f0-4205-4165-8871-2844f9737602})|({4dac7c77-e117-4cae-a9f0-6bd89e9e26ab})|({04ed02dc-0cb0-40c2-8bc8-6f20843024b8})|({4f6b6aaf-c5a1-4fac-8228-ead4d359dc6d})|({4f8a15fb-45c2-4d3b-afb1-c0c8813a4a5a})|({5af74f5a-652b-4b83-a2a9-f3d21c3c0010})|({5b0f6d3c-10fd-414c-a135-dffd26d7de0f})|({5b421f02-e55e-4b63-b90e-aa0cfea01f53})|({5b620343-cd69-49b8-a7ba-f9d499ee5d3d})|({5c5cf69b-ed92-4429-8d26-ff3bb6c37269})|({5cf77367-b141-4ba4-ac2a-5b2ca3728e81})|({5da81d3d-5db1-432a-affc-4a2fe9a70749})|({5eac1066-90c3-4ba0-b361-e6315dcd6828})|({5ec4c837-59b9-496d-96e2-ff3fa74ca01f})|({5efd8c7a-ff37-41ac-a55c-af4170453fdf})|({5f4e63e4-351f-4a21-a8e5-e50dc72b5566})|({6a934ff5-e41d-43a2-baf5-2d215a869674})|({06a71249-ef35-4f61-b2c8-85c3c6ee5617})|({6ad26473-5822-4142-8881-0c56a8ebc8c0})|({6cee30bc-a27c-43ea-ac72-302862db62b2})|({6ed852d5-a72e-4f26-863f-f660e79a2ebb})|({6eee2d17-f932-4a43-a254-9e2223be8f32})|({6f13489d-b274-45b6-80fa-e9daa140e1a4})|({6fa41039-572b-44a4-acd4-01fdaebf608d})|({7ae85eef-49cf-440d-8d13-2bebf32f14cf})|({7b3c1e86-2599-4e1a-ad98-767ae38286c8})|({7b23c0de-aa3d-447f-9435-1e8eba216f09})|({7b71d75e-51f5-4a71-9207-7acb58827420})|({7c6bf09e-5526-4bce-9548-7458ec56cded})|({7ca54c8d-d515-4f2a-a21f-3d32951491a6})|({7d932012-b4dd-42cc-8a78-b15ca82d0e61})|({7d5e24a1-7bef-4d09-a952-b9519ec00d20})|({7eabad73-919d-4890-b737-8d409c719547})|({7eaf96aa-d4e7-41b0-9f12-775c2ac7f7c0})|({7f8bc48d-1c7c-41a0-8534-54adc079338f})|({7f84c4d8-bdf5-4110-a10d-fa2a6e80ef6a})|({8a6bda75-4668-4489-8869-a6f9ccbfeb84})|({8a0699a0-09c3-4cf1-b38d-fec25441650c})|({8ab8c1a2-70d4-41a8-bf78-0d0df77ac47f})|({8b4cb418-027e-4213-927a-868b33a88b4f})|({8fcfe2b3-598e-4861-a5d4-0d77993f984b})|({9a941038-82fa-4ae4-ba98-f2eb2d195345})|({9b8a3057-8bf4-4a9e-b94b-867e4e71a50c})|({9b8df895-fcdd-452a-8c46-da5be345b5bc})|({09c8fa16-4eec-4f78-b19d-9b24b1b57e1e})|({09cbfddf-5e55-4676-920d-5a16cb9e4cb5})|({9cf8d28f-f546-4871-ac4d-5faff8b5bde3})|({9d592fd5-e655-461a-9b28-9eba85d4c97f})|({9fc6e583-78a5-4a2b-8569-4297bb8b3300})|({014d98ce-dab9-4c1d-8643-166e75d7cb4d})|({18c64b09-4ccb-4c21-ba6f-ebd4a1efa034})|({21d83d85-a636-4b18-955d-376a6b19bd19})|({22ecf14b-ead6-4684-a498-7b2b839a4c97})|({23c65153-c21e-430a-a2dc-0793410a870d})|({29c69b12-8208-457e-92f4-e663b00a1f10})|({30a8d6f1-0401-4327-8c46-2e1ab45dfe77})|({30d63f93-1446-43b3-8219-deefec9c81ce})|({32cb52f8-c78a-423d-b378-0abec72304a6})|({35bfa8c0-68c1-41f8-a5dd-7f3b3c956da9})|({36a4269e-4eef-4538-baea-9dafbf6a8e2f})|({37f8e483-c782-40ed-82e9-36f101b9e41f})|({42a512a8-37e0-4e07-a1db-5b4651d75048})|({43ae5745-c40a-45ab-9c11-74316c0e9fd2})|({53fa8e1c-112b-4013-b582-0d9e8c51ca75})|({56effac7-3ae9-41e3-9b46-51469f67b3b2})|({61a486c0-ce3d-4bf1-b4f2-e186a2adecf1})|({62b55928-80cc-49f7-8a4b-ec06030d6601})|({63df223d-51cf-4f76-aad8-bbc94c895ed2})|({064d8320-e0f3-411f-9ed1-8c1349279d20})|({071b9878-a7d3-4ae3-8ef0-2eaee1923403})|({72c1ca96-c05d-46a7-bce1-c507ec3db4ea})|({76ce213c-8e57-4a14-b60a-67a5519bd7a7})|({78c2f6a0-3b54-4a21-bf25-a3348278c327})|({0079b71b-89c9-4d82-aea3-120ee12d9890})|({81ac42f3-3d17-4cff-85af-8b7f89c8826b})|({81dc4f0e-9dab-4bd2-ab9d-d9365fbf676f})|({82c8ced2-e08c-4d6c-a12b-3e8227d7fc2a})|({83d6f65c-7fc0-47d0-9864-a488bfcaa376})|({83d38ac3-121b-4f28-bf9c-1220bd3c643b})|({84b9121e-55c9-409a-9b28-c588b5096222})|({87ba49bd-daba-4071-aedf-4f32a7e63dbe})|({87c552f9-7dbb-421b-8deb-571d4a2d7a21})|({87dcb9bf-3a3e-4b93-9c85-ba750a55831a})|({89a4f24d-37d5-46e7-9d30-ba4778da1aaa})|({93c524c4-2e92-4dd7-8b37-31a69bc579e8})|({94df38fc-2dbe-4056-9b35-d9858d0264d3})|({95c7ae97-c87e-4827-a2b7-7b9934d7d642})|({95d58338-ba6a-40c8-93fd-05a34731dc0e})|({97c436a9-7232-4495-bf34-17e782d6232c})|({97fca2cd-545f-42ef-ae93-dc13b046bd3b})|({0111c475-01e6-42ea-a9b4-27bed9eb6092})|({115a8321-4414-4f4c-aee6-9f812121b446})|({158a5a56-aca0-418f-bec0-5b3bda6e9d4c})|({243a0246-cbab-4b46-93fb-249039f68d84})|({283d4f2a-bab1-43ce-90be-5129741ac988})|({408a506b-2336-4671-a490-83a1094b4097})|({0432b92a-bfcf-41b9-b5f0-df9629feece1})|({484e0ba4-a20b-4404-bb1b-b93473782ae0})|({486ecaf1-1080-48c1-8973-549bc731ccf9})|({495a84bd-5a0c-4c74-8a50-88a4ba9d74ba})|({520f2c78-7804-4f59-ae74-a192476055ed})|({543f7503-3620-4f41-8f9e-c258fdff07e9})|({0573bea9-7368-49cd-ba10-600be3535a0b})|({605a0c42-86af-40c4-bf39-f14060f316aa})|({618baeb9-e694-4c7b-9328-69f35b6a8839})|({640c40e5-a881-4d16-a4d0-6aa788399dd2})|({713d4902-ae7b-4a9a-bcf5-47f39a73aed0})|({767d394a-aa77-40c9-9365-c1916b4a2f84})|({832ffcf9-55e9-4fd1-b2eb-f19e1fac5089})|({866a0745-8b91-4199-820a-ec17de52b5f2})|({869b5825-e344-4375-839b-085d3c09ab9f})|({919fed43-3961-48d9-b0ef-893054f4f6f1})|({971d6ef0-a085-4a04-83d8-6e489907d926})|({1855d130-4893-4c79-b4aa-cbdf6fee86d3})|({02328ee7-a82b-4983-a5f7-d0fc353698f0})|({2897c767-03aa-4c2f-910a-6d0c0b9b9315})|({3908d078-e1db-40bf-9567-5845aa77b833})|({04150f98-2d7c-4ae2-8979-f5baa198a577})|({4253db7f-5136-42c3-b09d-cf38344d1e16})|({4414af84-1e1f-449b-ac85-b79f812eb69b})|({4739f233-57c1-4466-ad51-224558cf375d})|({5066a3b2-f848-4a59-a297-f268bc3a08b6})|({6072a2a8-f1bc-4c9c-b836-7ac53e3f51e4})|({7854ee87-079f-4a25-8e57-050d131404fe})|({07953f60-447e-4f53-a5ef-ed060487f616})|({8886a262-1c25-490b-b797-2e750dd9f36b})|({12473a49-06df-4770-9c47-a871e1f63aea})|({15508c91-aa0a-4b75-81a2-13055c96281d})|({18868c3a-a209-41a6-855d-f99f782d1606})|({24997a0a-9d9b-4c87-a076-766d44e1f6fd})|({27380afd-f42a-4c25-b57d-b9012e0d5d48})|({28044ca8-8e90-435e-bc63-a757af2fb6be})|({30972e0a-f613-4c46-8c87-2e59878e7180})|({31680d42-c80d-4f8a-86d3-cd4930620369})|({44685ba6-68b3-4895-879e-4efa29dfb578})|({046258c9-75c5-429d-8d5b-386cfbadc39d})|({47352fbf-80d9-4b70-9398-fb7bffa3da53})|({56316a2b-ef89-4366-b4aa-9121a2bb6dea})|({65072bef-041f-492e-8a51-acca2aaeac70})|({677e2d00-264c-4f62-a4e8-2d971349c440})|({72056a58-91a5-4de5-b831-a1fa51f0411a})|({85349ea6-2b5d-496a-9379-d4be82c2c13d})|({98363f8b-d070-47b6-acc6-65b80acac4f3})|({179710ba-0561-4551-8e8d-1809422cb09f})|({207435d0-201d-43f9-bb0f-381efe97501d})|({313e3aef-bdc9-4768-8f1f-b3beb175d781})|({387092cb-d2dc-4da5-9389-4a766c604ec2})|({0599211f-6314-4bf9-854b-84cb18da97f8})|({829827cd-03be-4fed-af96-dd5997806fb4})|({856862a5-8109-47eb-b815-a94059570888})|({1e6f5a54-2c4f-4597-aa9e-3e278c617d38})|({1490068c-d8b7-4bd2-9621-a648942b312c})|({18e5e07b-0cfa-4990-a67b-4512ecbae04b})|({3584581e-c01a-4f53-aec8-ca3293bb550d})|({5280684d-f769-43c9-8eaa-fb04f7de9199})|({5766852a-b384-4276-ad06-70c2283b4792})|({34364255-2a81-4d6e-9760-85fe616abe80})|({45621564-b408-4c29-8515-4cf1f26e4bc3})|({62237447-e365-487e-8fc3-64ddf37bdaed})|({7e7aa524-a8af-4880-8106-102a35cfbf42})|({71639610-9cc3-47e0-86ed-d5b99eaa41d5})|({78550476-29ff-4b7e-b437-195024e7e54e})|({85064550-57a8-4d06-bd4b-66f9c6925bf5})|({93070807-c5cd-4bde-a699-1319140a3a9c})|({11e7b9b3-a769-4d7f-b200-17cffa4f9291})|({22632e5e-95b9-4f05-b4b7-79033d50467f})|({03e10db6-b6a7-466a-a2b3-862e98960a85})|({23775e7d-dfcf-42b1-aaad-8017aa88fc59})|({85e31e7e-3e3a-42d3-9b7b-0a2ff1818b33})|({9e32ca65-4670-41e3-b6bb-8773e6b9bba8})|({6e43af8e-a78e-4beb-991f-7b015234eacc})|({57e61dc7-db04-4cf8-bbd3-62a15fc74138})|({01166e60-d740-440c-b640-6bf964504b3c})|({52e137bc-a330-4c25-a981-6c1ab9feb806})|({488e190b-d1f6-4de8-bffb-0c90cc805b62})|({5e257c96-bfed-457d-b57e-18f31f08d7bb})|({2134e327-8060-441c-ba68-b167b82ff5bc})|({1e68848a-2bb7-425c-81a2-524ab93763eb})|({8e888a6a-ec19-4f06-a77c-6800219c6daf})|({7e907a15-0a4c-4ff4-b64f-5eeb8f841349})|({a0ab16af-3384-4dbe-8722-476ce3947873})|({a0c54bd8-7817-4a40-b657-6dc7d59bd961})|({a0ce2605-b5fc-4265-aa65-863354e85058})|({a1f8e136-bce5-4fd3-9ed1-f260703a5582})|({a3fbc8be-dac2-4971-b76a-908464cfa0e0})|({a5a84c10-f12c-496e-80df-33386b7a1463})|({a5f90823-0a50-414f-ad34-de0f6f26f78e})|({a6b83c45-3f24-4913-a1f7-6f42411bbb54})|({a9eb2583-75e0-435a-bb6c-69d5d9b20e27})|({a32ebb9b-8649-493e-a9e9-f091f6ac1217})|({a83c1cbb-7a41-41e7-a2ae-58efcb4dc2e4})|({a506c5af-0f95-4107-86f8-3de05e2794c9})|({a02001ae-b7ed-45d7-baf2-c07f0a7b6f87})|({a5808da1-5b4f-42f2-b030-161fd11a36f7})|({a18087bb-4980-4349-898c-ca1b7a0e59cd})|({a345865c-44b9-4197-b418-934f191ce555})|({a7487703-02d8-4a82-a7d0-2859de96edb4})|({a2427e23-d349-4b25-b5b8-46960b218079})|({a015e172-2465-40fc-a6ce-d5a59992c56a})|({aaaffe20-3306-4c64-9fe5-66986ebb248e})|({abec23c3-478f-4a5b-8a38-68ccd500ec42})|({ac06c6b2-3fd6-45ee-9237-6235aa347215})|({ac037ad5-2b22-46c7-a2dc-052b799b22b5})|({ac296b47-7c03-486f-a1d6-c48b24419749})|({acbff78b-9765-4b55-84a8-1c6673560c08})|({acfe4807-8c3f-4ecc-85d1-aa804e971e91})|({ada56fe6-f6df-4517-9ed0-b301686a34cc})|({af44c8b4-4fd8-42c3-a18e-c5eb5bd822e2})|({b5a35d05-fa28-41b5-ae22-db1665f93f6b})|({b7b0948c-d050-4c4c-b588-b9d54f014c4d})|({b7f366fa-6c66-46bf-8df2-797c5e52859f})|({b9bb8009-3716-4d0c-bcb4-35f9874e931e})|({b12cfdc7-3c69-43cb-a3fb-38981b68a087})|({b019c485-2a48-4f5b-be13-a7af94bc1a3e})|({b91fcda4-88b0-4a10-9015-9365e5340563})|({b30591d6-ec24-4fae-9df6-2f3fe676c232})|({b99847d6-c932-4b52-9650-af83c9dae649})|({bbe79d30-e023-4e82-b35e-0bfdfe608672})|({bc3c2caf-2710-4246-bd22-b8dc5241693a})|({bc3c7922-e425-47e2-a2dd-0dbb71aa8423})|({bc763c41-09ca-459a-9b22-cf4474f51ebc})|({bd5ba448-b096-4bd0-9582-eb7a5c9c0948})|({be5d0c88-571b-4d01-a27a-cc2d2b75868c})|({be981b5e-1d9d-40dc-bd4f-47a7a027611c})|({be37931c-af60-4337-8708-63889f36445d})|({bea8866f-01f8-49e9-92cd-61e96c05d288})|({bf153de7-cdf2-4554-af46-29dabfb2aa2d})|({c3a2b953-025b-425d-9e6e-f1a26ee8d4c2})|({c3b71705-c3a6-4e32-bd5f-eb814d0e0f53})|({c5d359ff-ae01-4f67-a4f7-bf234b5afd6e})|({c6c8ea62-e0b1-4820-9b7f-827bc5b709f4})|({c8c8e8de-2989-4028-bbf2-d372e219ba71})|({c34f47d1-2302-4200-80d4-4f26e47b2980})|({c178b310-6ed5-4e04-9e71-76518dd5fb3e})|({c2341a34-a3a0-4234-90cf-74df1db0aa49})|({c8399f02-02f4-48e3-baea-586564311f95})|({c41807db-69a1-4c35-86c1-bc63044e4fcb})|({c383716f-b23f-47b2-b6bb-d7c1a7c218af})|({c3447081-f790-45cb-ae03-0d7f1764c88c})|({c445e470-9e5a-4521-8649-93c8848df377})|({c8e14311-4b2d-4eb0-9a6b-062c6912f50e})|({ca4fdfdb-e831-4e6e-aa8b-0f2e84f4ed07})|({ca6cb8b2-a223-496d-b0f6-35c31bc7ca2b})|({cba7ce11-952b-4dcb-ba85-a5b618c92420})|({cc6b2dc7-7d6f-470f-bccc-6a42907162d1})|({cc689da4-203f-4a0c-a7a6-a00a5abe74c5})|({ccb7b5d6-a567-40a2-9686-a097a8b583dd})|({cd28aa38-d2f1-45a3-96c3-6cfd4702ef51})|({cd89045b-2e06-46bb-9e34-48e8799e5ef2})|({cdda1813-51d6-4b1f-8a2f-8f9a74a28e14})|({ce0d1384-b99b-478e-850a-fa6dfbe5a2d4})|({ce93dcc7-f911-4098-8238-7f023dcdfd0d})|({cf9d96ff-5997-439a-b32b-98214c621eee})|({cfa458f9-b49b-4e09-8cb2-5e50bd8937cc})|({cfb50cdf-e371-4d6b-9ef2-fcfe6726db02})|({d1ab5ebd-9505-481d-a6cd-6b9db8d65977})|({d03b6b0f-4d44-4666-a6d6-f16ad9483593})|({d9d8cfc1-7112-40cc-a1e9-0c7b899aae98})|({d47ebc8a-c1ea-4a42-9ca3-f723fff034bd})|({d72d260f-c965-4641-bf49-af4135fc46cb})|({d78d27f4-9716-4f13-a8b6-842c455d6a46})|({d355bee9-07f0-47d3-8de6-59b8eecba57b})|({d461cc1b-8a36-4ff0-b330-1824c148f326})|({d97223b8-44e5-46c7-8ab5-e1d8986daf44})|({d42328e1-9749-46ba-b35c-cce85ddd4ace})|({da7d00bf-f3c8-4c66-8b54-351947c1ef68})|({db84feec-2e1f-48f0-9511-645fe4784feb})|({dc6256cc-b6d0-44ca-b42f-4091f11a9d29})|({dd1cb0ec-be2a-432b-9c90-d64c824ac371})|({dd95dd08-75d1-4f06-a75b-51979cbab247})|({ddae89bd-6793-45d8-8ec9-7f4fb7212378})|({de3b1909-d4da-45e9-8da5-7d36a30e2fc6})|({df09f268-3c92-49db-8c31-6a25a6643896})|({e2a4966f-919d-4afc-a94f-5bd6e0606711})|({e05ba06a-6d6a-4c51-b8fc-60b461ffecaf})|({e7b978ae-ffc2-4998-a99d-0f4e2f24da82})|({e7fb6f2f-52b6-4b02-b410-2937940f5049})|({e08d85c5-4c0f-4ce3-9194-760187ce93ba})|({e08ebf0b-431d-4ed1-88bb-02e5db8b9443})|({e9c47315-2a2b-4583-88f3-43d196fa11af})|({e341ed12-a703-47fe-b8dd-5948c38070e4})|({e804fa4c-08e0-4dae-a237-8680074eba07})|({e8982fbd-1bc2-4726-ad8d-10be90f660bd})|({e40673cd-9027-4f61-956c-2097c03ae2be})|({e72172d1-39c9-4f41-829d-a1b8d845d1ca})|({e73854da-9503-423b-ab27-fafea2fbf443})|({e81e7246-e697-4811-b336-72298d930857})|({ea618d26-780e-4f0f-91fd-2a6911064204})|({ea523075-66cd-4c03-ab04-5219b8dda753})|({eb3ebb14-6ced-4f60-9800-85c3de3680a4})|({ec8c5fee-0a49-44f5-bf55-f763c52889a6})|({eccd286a-5b1d-494d-82b0-92a12213d95a})|({ed352072-ddf0-4cb4-9cb6-d8aa3741c2de})|({edb476af-0505-42af-a7fd-ec9f454804c0})|({ee97f92d-1bfe-4e9d-816c-0dfcd63a6206})|({f0b809eb-be22-432f-b26f-b1cadd1755b9})|({f5ffa269-fbca-4598-bbd8-a8aa9479e0b3})|({f6c543bf-2222-4230-8ecb-f5446095b63d})|({f6df4ef7-14bd-43b5-90c9-7bd02943789c})|({f6f98e6b-f67d-4c53-8b76-0b5b6df79218})|({f38b61f3-3fed-4249-bb3d-e6c8625c7afb})|({f50e0a8f-8c32-4880-bcef-ca978ccd1d83})|({f59c2d3d-58da-4f74-b8c9-faf829f60180})|({f82b3ad5-e590-4286-891f-05adf5028d2f})|({f92c1155-97b3-40f4-9d5b-7efa897524bb})|({f95a3826-5c8e-4f82-b353-21b6c0ca3c58})|({f5758afc-9faf-42bb-9543-a4cfb0bfce9d})|({f447670d-64f5-418f-9b4a-5352d6c8e127})|({f4262989-6de0-4604-918f-663b85fad605})|({fa8bd609-0e06-4ba9-8e2e-5989f0b2e197})|({fa0808f6-25ab-4a8b-bd17-3b275c55ff09})|({fac5816b-fd0f-4db2-a16e-52394b6db41d})|({fc99b961-5878-46b4-b091-6d2f507bf44d})|({fce89242-66d3-4946-9ed0-e66078f172fc})|({fcf72e24-5831-439e-bb07-fd53a9e87a30})|({fdc0601f-1fbb-40a5-84e1-8bbe96b22502})|({feb3c734-4529-4d69-9f3a-2dae18f1d896}))$/","prefs":[],"schema":1533411700296,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1479009","why":"Malicious add-ons disguising as updates or useful add-ons, but violating data collection policies, user-control, no surprises and security.","name":"Firefox Update (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cae5d906-0b1d-4d1c-b83f-f9727b8c4a29","last_modified":1533550294490},{"guid":"{5834f62d-6164-4cdd-a0a3-c00c66ec9d13}","prefs":[],"schema":1532704368947,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1479002","why":"This add-on violates our security and user-choice/no surprises policies.","name":"Youtube Dark Mode (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"d0a401cb-0c70-4784-8288-b06a88b2ae8a","last_modified":1532705151926},{"guid":"/^((@asdfjhsdfuhw)|(@asdfsdfwe)|(@asdieieuss)|(@dghfghfgh)|(@difherk)|(@dsfgtftgjhrdf4)|(@fidfueir)|(@fsgergsdqtyy)|(@hjconsnfes)|(@isdifvdkf)|(@iweruewir)|(@oiboijdjfj)|(@safesearchavs)|(@safesearchavsext)|(@safesearchincognito)|(@safesearchscoutee)|(@sdfykhhhfg)|(@sdiosuff)|(@sdklsajd)|(@sduixcjksd)|(@sicognitores)|(@simtabtest)|(@sodiasudi)|(@test13)|(@test131)|(@test131ver)|(@test132)|(@test13s)|(@testmptys)|(\\{ac4e5b0c-13c4-4bfd-a0c3-1e73c81e8bac\\})|(\\{e78785c3-ec49-44d2-8aac-9ec7293f4a8f\\})|(general@filecheckerapp\\.com)|(general@safesearch\\.net))$/","prefs":[],"schema":1532703832328,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1475330","why":"These Add-ons violate our data collection, no surprises and user-choice policies.","name":"Safesearch (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"d664412d-ed08-4892-b247-b007a70856ff","last_modified":1532704364007},{"guid":"{dd3d7613-0246-469d-bc65-2a3cc1668adc}","prefs":[],"schema":1532684052432,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1478731","why":"This add-on violates data practices outlined in the review policy.","name":"BlockSite"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.0.3","minVersion":"0"}],"id":"e04f98b5-4480-43a3-881d-e509e4e28cdc","last_modified":1532684085999},{"guid":"{bee8b1f2-823a-424c-959c-f8f76c8b2306}","prefs":[],"schema":1532547689407,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1478731","why":"This add-on violates data practices outlined in the review policy.","name":"Popup blocker for FireFox"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.0.7.3","minVersion":"0"}],"id":"f0713a5e-7208-484e-b3a0-4e6dc6a195be","last_modified":1532684052426},{"guid":"/^((\\{39bd8607-0af4-4d6b-bd69-9a63c1825d3c\\})|(\\{273f0bce-33f4-45f6-ae03-df67df3864c2\\})|(\\{a77fc9b9-6ebb-418d-b0b6-86311c191158\\})|(\\{c6c4a718-cf91-4648-aa9b-170d66163cf2\\})|(\\{d371abec-84bb-481b-acbf-235639451127\\})|(\\{e63b262a-f9b8-4496-9c4b-9d3cbd6aea90\\}))$/","prefs":[],"schema":1532386339902,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1477950","why":"Add-ons that contain malicious functionality like search engine redirect.","name":"Smash (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c37c7c24-e738-4d06-888c-108b4d63b428","last_modified":1532424286908},{"guid":"/^((\\{ac296b47-7c03-486f-a1d6-c48b24419749\\})|(\\{1cab8ccf-deff-4743-925d-a47cbd0a6b56\\})|(\\{5da81d3d-5db1-432a-affc-4a2fe9a70749\\})|(\\{071b9878-a7d3-4ae3-8ef0-2eaee1923403\\})|(\\{261476ea-bd0e-477c-abd7-33cdf626f81f\\})|(\\{224e66d0-6b11-4c4b-9bcf-41180889898a\\})|(\\{1e90cf52-c67c-4bd9-80c3-a2bf521fc981\\})|(\\{09c4799c-00f1-439e-9e60-3827c589b372\\})|(\\{d3d2095a-9faa-466f-82ae-3114179b34d6\\})|(\\{70389ea5-7e4d-4515-835c-fbd047f229dd\\})|(\\{2e8083a5-cd88-4aaa-bb8b-e54e9753f280\\})|(\\{fbf2480b-5c19-478e-bfd0-192ad9f84dc9\\})|(\\{6c7dc694-89f8-477e-88d5-c55af4d6a846\\})|(\\{915c12c6-901a-490d-9bfc-20f00d1ad31d\\})|(\\{d3a4aa3e-f74c-4382-876d-825f592f2976\\})|(\\{0ad91ec1-f7c4-4a39-9244-3310e9fdd169\\})|(\\{9c17aa27-63c5-470a-a678-dc899ab67ed3\\})|(\\{c65efef2-9988-48db-9e0a-9ff8164182b6\\})|(\\{d54c5d25-2d51-446d-8d14-18d859e3e89a\\})|(\\{e458f1f1-a331-4486-b157-81cba19f0993\\})|(\\{d2de7e1f-6e51-41d6-ba8a-937f8a5c92ff\\})|(\\{2b08a649-9bea-4dd4-91c8-f53a84d38e19\\})|(\\{312dd57e-a590-4e19-9b26-90e308cfb103\\})|(\\{82ce595a-f9b6-4db8-9c97-b1f1c933418b\\})|(\\{0a2e64f0-ea5a-4fff-902d-530732308d8e\\})|(\\{5fbdc975-17ab-4b4e-90d7-9a64fd832a08\\})|(\\{28820707-54d8-41f0-93e9-a36ffb2a1da6\\})|(\\{64a2aed1-5dcf-4f2b-aad6-9717d23779ec\\})|(\\{ee54794f-cd16-4f7d-a7dd-515a36086f60\\})|(\\{4d381160-b2d5-4718-9a05-fc54d4b307e7\\})|(\\{60393e0e-f039-4b80-bad4-10189053c2ab\\})|(\\{0997b7b2-52d7-4d14-9aa6-d820b2e26310\\})|(\\{8214cbd6-d008-4d16-9381-3ef1e1415665\\})|(\\{6dec3d8d-0527-49a3-8f12-b05f2a8b95b2\\})|(\\{0c0d8d8f-3ae0-4c98-81ac-06453a316d16\\})|(\\{84d5ef02-a283-484a-80da-7087836c74aa\\})|(\\{24413756-2c44-47c5-8bbf-160cb37776d8\\})|(\\{cf6ac458-06e8-45d0-9cbf-ec7fc0eb1710\\})|(\\{263a5792-933a-4de1-820a-d04198e17120\\})|(\\{b5fd7f37-190d-4c0a-b8dd-8b4850c986ac\\})|(\\{cb5ef07b-c2e7-47a6-be81-2ceff8df4dd5\\})|(\\{311b20bc-b498-493c-a5e1-22ec32b0e83c\\})|(\\{b308aead-8bc1-4f37-9324-834b49903df7\\})|(\\{3a26e767-b781-4e21-aaf8-ac813d9edc9f\\}))$/","prefs":[],"schema":1532361925873,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1476553","why":"Third-party websites try to trick users into installing add-ons that inject remote scripts.","name":"Various malicious add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"52842139-3d11-41ac-9d7f-8e51122a3141","last_modified":1532372344457},{"guid":"/^((@FirefoxUpdate)|(@googledashboard)|(@smash_mov)|(@smash_tv)|(@smashdashboard)|(@smashmovs)|(@smashtvs)|(\\{0be01832-7cce-4457-b8ad-73b743914085\\})|(\\{0e1c683e-9f34-45f1-b365-a283befb471a\\})|(\\{0c72a72d-6b2e-4a0e-8a31-16581176052d\\})|(\\{0ccfc208-8441-4c27-b1cb-799accb04908\\})|(\\{0ede8d39-26f2-49c4-8014-dfc484f54a65\\})|(\\{1fc1f8e6-3575-4a6f-a4d1-c4ca1c36bd2a\\})|(\\{3a1d6607-e6a8-4012-9506-f14cd157c171\\})|(\\{03b3ac4d-59a3-4cc6-aa4d-9b39dd8b3196\\})|(\\{3bb6e889-ac7a-46ca-8eed-45ba4fbe75b5\\})|(\\{3c841114-da8c-44ea-8303-78264edfe60b\\})|(\\{3f3bcb3e-dd73-4410-b102-60a87fcb8323\\})|(\\{3f951165-fd85-42ae-96ef-6ff589a1fe72\\})|(\\{04c86cb3-5f52-4083-9e9a-e322dd02181a\\})|(\\{4d8b44ef-9b8b-4d82-b668-a49648d2749d\\})|(\\{4d25d2b4-6ae7-4a66-abc0-c3fca4cdddf6\\})|(\\{5c9a2eca-2126-4a84-82c0-efbf3d989371\\})|(\\{6ecb9f49-90f0-43a1-8f8a-e809ea4f732b\\})|(\\{6fb8289d-c6c8-4fe5-9a92-7dc6cbf35349\\})|(\\{7fea697d-327c-4d20-80d5-813a6fb26d86\\})|(\\{08a3e913-0bbc-42ba-96d7-3fa16aceccbf\\})|(\\{8b04086b-94a5-4161-910b-59e3e31e4364\\})|(\\{08c28c16-9fb6-4b32-9868-db37c1668f94\\})|(\\{8cd69708-2f5e-4282-a94f-3feebc4bce35\\})|(\\{8dc21e24-3883-4d01-b486-ef1d1106fa3d\\})|(\\{8f8cc21a-2097-488f-a213-f5786a2ccbbf\\})|(\\{9c8b93f7-3bf8-4762-b221-40c912268f96\\})|(\\{9ce66491-ef06-4da6-b602-98c2451f6395\\})|(\\{1e1acc1c-8daa-4c2e-ad05-5ef01ae65f1e\\})|(\\{10b0f607-1efa-4762-82a0-e0d9bbae4e48\\})|(\\{24f338d7-b539-49f1-b276-c9edc367a32d\\})|(\\{40c9030f-7a2f-4a58-9d0a-edccd8063218\\})|(\\{41f97b71-c7c6-40b8-83b1-a4dbff76f73d\\})|(\\{42f3034a-0c4a-4f68-a8fd-8a2440e3f011\\})|(\\{52d456e5-245a-4319-b8d2-c14fbc9755f0\\})|(\\{57ea692b-f9fe-42df-bf5e-af6953fba05a\\})|(\\{060c61d8-b48f-465d-aa4b-23325ea757c3\\})|(\\{65c1967c-6a5c-44dd-9637-0d4d8b4c339b\\})|(\\{65d40b64-b52a-46d8-b146-580ff91889cb\\})|(\\{75b7af0d-b4ed-4320-95c8-7ffd8dd2cb7c\\})|(\\{77fe9731-b683-4599-9b06-a5dcea63d432\\})|(\\{84b20d0c-9c87-4340-b4f8-1912df2ae70d\\})|(\\{92b9e511-ac81-4d47-9b8f-f92dc872447e\\})|(\\{95afafef-b580-4f66-a0fe-7f3e74be7507\\})|(\\{116a0754-20eb-4fe5-bd35-575867a0b89e\\})|(\\{118bf5f6-98b1-4543-b133-42fdaf3cbade\\})|(\\{248eacc4-195f-43b2-956c-b9ad1ae67529\\})|(\\{328f931d-83c1-4876-953c-ddc9f63fe3b4\\})|(\\{447fa5d3-1c27-4502-9e13-84452d833b89\\})|(\\{476a1fa9-bce8-4cb4-beff-cb31980cc521\\})|(\\{507a5b13-a8a3-4653-a4a7-9a03099acf48\\})|(\\{531bf931-a8c6-407b-a48f-8a53f43cd461\\})|(\\{544c7f83-ef54-4d17-aa91-274fa27514ef\\})|(\\{546ea388-2839-4215-af49-d7289514a7b1\\})|(\\{635cb424-0cd5-4446-afaf-6265c4b711b5\\})|(\\{654b21c7-6a70-446c-b9ac-8cac9592f4a9\\})|(\\{0668b0a7-7578-4fb3-a4bd-39344222daa3\\})|(\\{944ed336-d750-48f1-b0b5-3c516bfb551c\\})|(\\{1882a9ce-c0e3-4476-8185-f387fe269852\\})|(\\{5571a054-225d-4b65-97f7-3511936b3429\\})|(\\{5921be85-cddd-4aff-9b83-0b317db03fa3\\})|(\\{7082ba5c-f55e-4cd8-88d6-8bc479d3749e\\})|(\\{7322a4cb-641c-4ca2-9d83-8701a639e17a\\})|(\\{90741f13-ab72-443f-a558-167721f64883\\})|(\\{198627a5-4a7b-4857-b074-3040bc8effb8\\})|(\\{5e5b9f44-2416-4669-8362-42a0b3f97868\\})|(\\{824985b9-df2a-401c-9168-749960596007\\})|(\\{4853541f-c9d7-42c5-880f-fd460dbb5d5f\\})|(\\{6e6ff0fd-4ae4-49ae-ac0c-e2527e12359b\\})|(\\{90e8aa72-a7eb-4337-81d4-538b0b09c653\\})|(\\{02e3137a-96a4-433d-bfb2-0aa1cd4aed08\\})|(\\{9e734c09-fcb1-4e3f-acab-04d03625301c\\})|(\\{a6ad792c-69a8-4608-90f0-ff7c958ce508\\})|(\\{a512297e-4d3a-468c-bd1a-f77bd093f925\\})|(\\{a71b10ae-b044-4bf0-877e-c8aa9ad47b42\\})|(\\{a33358ad-a3fa-4ca1-9a49-612d99539263\\})|(\\{a7775382-4399-49bf-9287-11dbdff8f85f\\})|(\\{afa64d19-ddba-4bd5-9d2a-c0ba4b912173\\})|(\\{b4ab1a1d-e137-4c59-94d5-4f509358a81d\\})|(\\{b4ec2f8e-57fd-4607-bf4f-bc159ca87b26\\})|(\\{b06bfc96-c042-4b34-944c-8eb67f35630a\\})|(\\{b9dcdfb0-3420-4616-a4cb-d41b5192ba0c\\})|(\\{b8467ec4-ff65-45f4-b7c5-f58763bf9c94\\})|(\\{b48e4a17-0655-4e8e-a5e2-3040a3d87e55\\})|(\\{b6166509-5fe0-4efd-906e-1e412ff07a04\\})|(\\{bd1f666e-d473-4d13-bc4d-10dde895717e\\})|(\\{be572ad4-5dd7-4b6b-8204-5d655efaf3b3\\})|(\\{bf2a3e58-2536-44d4-b87f-62633256cf65\\})|(\\{bfc5ac5f-80bd-43e5-9acb-f6d447e0d2ce\\})|(\\{bfe3f6c1-c5fe-44af-93b3-576812cb6f1b\\})|(\\{c0b8009b-57dc-45bc-9239-74721640881d\\})|(\\{c1cf1f13-b257-4271-b922-4c57c6b6e047\\})|(\\{c3d61029-c52f-45df-8ec5-a654b228cd48\\})|(\\{c39e7c0b-79d5-4137-bef0-57cdf85c920f\\})|(\\{ce043eac-df8a-48d0-a739-ef7ed9bdf2b5\\})|(\\{cf62e95a-8ded-4c74-b3ac-f5c037880027\\})|(\\{cff02c70-7f07-4592-986f-7748a2abd9e1\\})|(\\{d1b87087-09c5-4e58-b01d-a49d714da2a2\\})|(\\{d14adc78-36bf-4cf0-9679-439e8371d090\\})|(\\{d64c923e-8819-488c-947f-716473d381b2\\})|(\\{d734e7e3-1b8e-42a7-a9b3-11b16c362790\\})|(\\{d147e8c6-c36e-46b1-b567-63a492390f07\\})|(\\{db1a103d-d1bb-4224-a5e1-8d0ec37cff70\\})|(\\{dec15b3e-1d12-4442-930e-3364e206c3c2\\})|(\\{dfa4b2e3-9e07-45a4-a152-cde1e790511d\\})|(\\{dfcda377-b965-4622-a89b-1a243c1cbcaf\\})|(\\{e4c5d262-8ee4-47d3-b096-42b8b04f590d\\})|(\\{e82c0f73-e42c-41dd-a686-0eb4b65b411c\\})|(\\{e60616a9-9b50-49d8-b1e9-cecc10a8f927\\})|(\\{e517649a-ffd7-4b49-81e0-872431898712\\})|(\\{e771e094-3b67-4c33-8647-7b20c87c2183\\})|(\\{eff5951b-b6d4-48f5-94c3-1b0e178dcca5\\})|(\\{f26a8da3-8634-4086-872e-e589cbf03375\\})|(\\{f992ac88-79d3-4960-870e-92c342ed3491\\})|(\\{f4e4fc03-be50-4257-ae99-5cd0bd4ce6d5\\})|(\\{f73636fb-c322-40e1-82fb-e3d7d06d9606\\})|(\\{f5128739-78d5-4ad7-bac7-bd1af1cfb6d1\\})|(\\{fc11e7f0-1c31-4214-a88f-6497c27b6be9\\})|(\\{feedf4f8-08c1-451f-a717-f08233a64ec9\\}))$/","prefs":[],"schema":1532097654002,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1476369","why":"These add-ons contain unwanted features and try to prevent the user from uninstalling themselves.","name":"Smash/Upater (malware) and similar"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c7d7515d-563f-459f-821c-27d4cf825dbf","last_modified":1532101113096},{"guid":"^((@mixclouddownloader)|(all-down@james\\.burrow)|(d\\.lehr@chello\\.at)|(easy-video-downloader@addonsmash)|(easy-youtube-mp3@james\\.burrow)|(gid@addonsmash)|(gmail_panel@addon_clone)|(guid-reused-by-pk-907175)|(idm@addonsmash)|(image-picka@addonsmash)|(instant-idm@addon\\.host)|(jdm@awesome\\.addons)|(open-in-idm@addonsmash)|(open-in-idm@james\\.burrow)|(open-in-vlc@awesome\\.addons)|(saveimage@addonsmash)|(thundercross@addonsmash)|(vk-download@addon\\.host)|(vk-music-downloader@addonsmash)|(whatsapp_popup@addons\\.clone)|(ytb-down@james\\.burrow)|(ytb-mp3-downloader@james\\.burrow)|(\\{0df8d631-7d88-401e-ba7e-af1425dded8a\\})|(\\{3c74e141-1993-4c04-b755-a66dd491bb47\\})|(\\{5cdd95c7-5d92-40c5-8e2a-8c52c90191d9\\})|(\\{40efedc0-8e48-404a-a779-f4016b25c0e6\\})|(\\{53d605ce-599b-4352-8a06-5e594b3d1822\\})|(\\{3697c1e8-27d7-4c63-a27e-ac16191a1545\\})|(\\{170503FA-3349-4F17-BC86-001888A5C8E2\\})|(\\{649558df-9461-4824-ad18-f2d4d4845ac8\\})|(\\{27875553-afd5-4365-86dc-019bcd60594c\\})|(\\{27875553-afd5-4365-86dc-019bcd60594c\\})|(\\{6e7624fa-7f70-4417-93db-1ec29c023275\\})|(\\{b1aea1f1-6bed-41ef-9679-1dfbd7b2554f\\})|(\\{b9acc029-d62b-4d23-b921-8e7aea34266a\\})|(\\{b9b59e13-4ac5-4eff-8dbe-c345b7619b3c\\})|(\\{b0186d2d-3126-4537-9186-a6f198547901\\})|(\\{b3e8fde8-6d97-4ac3-95e0-57b797f4c56b\\})|(\\{e6a9a96e-4a08-4719-b9bd-0e91c35aaabc\\})|(\\{e69a36e6-ee12-4fe6-87ca-66b77fc0ffbf\\})|(\\{ee3601f1-78ab-48bf-89ae-0cfe4aed1f2e\\})|(\\{f4ce48b3-ad14-4900-86cb-4604474c5b08\\})|(\\{f5c1262d-b1e8-44a4-b820-a834f0f6d605\\}))$","prefs":[],"schema":1531762485603,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1476020","why":"Add-ons repeatedly violated several of review policies.","name":"Several youtube downloading add-ons and others"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0"}],"id":"ae8ae617-590d-430b-86d4-16364372b67f","last_modified":1531762863373},{"guid":"{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}","prefs":[],"schema":1530711142817,"blockID":"i1900","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1472948","why":"This add-on violates data practices outlined in the review policy.","name":"Stylish"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.1.1","minVersion":"3.0.0"}],"id":"c635229f-7aa0-44c5-914f-80c590949071","last_modified":1530716488758},{"guid":"/^(contactus@unzipper.com|{72dcff4e-48ce-41d8-a807-823adadbe0c9}|{dc7d2ecc-9cc3-40d7-93ed-ef6f3219bd6f}|{994db3d3-ccfe-449a-81e4-f95e2da76843}|{25aef460-43d5-4bd0-aa3d-0a46a41400e6}|{178e750c-ae27-4868-a229-04951dac57f7})$/","prefs":[],"schema":1528400492025,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1460331","why":"Add-ons change search settings against our policies, affecting core Firefox features. Add-on is also reportedly installed without user consent.","name":"SearchWeb"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"5afea853-d029-43f3-a387-64ce9980742a","last_modified":1528408770328},{"guid":"{38363d75-6591-4e8b-bf01-0270623d1b6c}","prefs":[],"schema":1526326889114,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1461625","why":"This add-on contains abusive functionality.","name":"Photobucket Hotlink Fix"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"0f0764d5-a290-428b-a5b2-3767e1d72c71","last_modified":1526381862851},{"guid":"@vkmad","prefs":[],"schema":1526154098016,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1461410","why":"This add-on includes malicious functionality.","name":"VK Universal Downloader (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cbfa5303-c1bf-49c8-87d8-259738a20064","last_modified":1526322954850},{"guid":"/^(({41c14ab8-9958-44bf-b74e-af54c1f169a6})|({78054cb2-e3e8-4070-a8ad-3fd69c8e4707})|({0089b179-8f3d-44d9-bb18-582843b0757a})|({f44ddcb4-4cc0-4866-92fa-eefda60c6720})|({1893d673-7953-4870-8069-baac49ce3335})|({fb28cac0-c2aa-4e0c-a614-cf3641196237})|({d7dee150-da14-45ba-afca-02c7a79ad805})|(RandomNameTest@RandomNameTest\\.com )|(corpsearchengine@mail\\.ru)|(support@work\\.org))$/","prefs":[],"schema":1525377099963,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1458330","why":"These are malicious add-ons that inject remote scripts and use deceptive names.","name":"\"Table\" add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"3a123214-b4b6-410c-a061-bbaf0d168d31","last_modified":1525377135149},{"guid":"/((@extcorp\\.[a-z]+)|(@brcorporation\\.com)|(@brmodcorp\\.com)|(@teset\\.com)|(@modext\\.tech)|(@ext?mod\\.net)|(@browcorporation\\.org)|(@omegacorporation\\.org)|(@browmodule\\.com)|(@corpext\\.net)|({6b50ddac-f5e0-4d9e-945b-e4165bfea5d6})|({fab6484f-b8a7-4ba9-a041-0f948518b80c})|({b797035a-7f29-4ff5-bd19-77f1b5e464b1})|({0f612416-5c5a-4ec8-b482-eb546af9cac4}))$/","prefs":[],"schema":1525290095999,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1458330","why":"These are malicious add-ons that inject remote scripts and use deceptive names.","name":"\"Table\" add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"3ab9f100-e253-4080-b3e5-652f842ddb7a","last_modified":1525377099954},{"guid":"/^({b99ae7b1-aabb-4674-ba8f-14ed32d04e76})|({dfa77d38-f67b-4c41-80d5-96470d804d09})$/","prefs":[],"schema":1524146566650,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1455291","why":"These add-ons claim to be the flash plugin.","name":"Flash Plugin (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"96b137e6-8cb5-44d6-9a34-4a4a76fb5e38","last_modified":1524147337556},{"guid":"/^({6ecb9f49-90f0-43a1-8f8a-e809ea4f732b})|(@googledashboard)|(@smashdashboard)|(@smash_tv)|(@smash_mov)|(@smashmovs)|(@smashtvs)|(@FirefoxUpdate)|({92b9e511-ac81-4d47-9b8f-f92dc872447e})|({3c841114-da8c-44ea-8303-78264edfe60b})|({116a0754-20eb-4fe5-bd35-575867a0b89e})|({6e6ff0fd-4ae4-49ae-ac0c-e2527e12359b})|({f992ac88-79d3-4960-870e-92c342ed3491})|({6ecb9f49-90f0-43a1-8f8a-e809ea4f732b})|({a512297e-4d3a-468c-bd1a-f77bd093f925})|({08c28c16-9fb6-4b32-9868-db37c1668f94})|({b4ab1a1d-e137-4c59-94d5-4f509358a81d})|({feedf4f8-08c1-451f-a717-f08233a64ec9})$/","prefs":[],"schema":1524139371832,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1454691","why":"This malware prevents itself from getting uninstalled ","name":"Malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"feb2d0d7-1b76-4dba-bf84-42873a92af5f","last_modified":1524141477640},{"guid":"{872f20ea-196e-4d11-8835-1cc4c877b1b8}","prefs":[],"schema":1523734896380,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1454413","why":"Extension claims to be Flash Player","name":"Flash Player (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"1e5f5cb2-346c-422a-9aaa-29d8760949d2","last_modified":1523897202689},{"guid":"/(__TEMPLATE__APPLICATION__@ruta-mapa\\.com)|(application-3@findizer\\.fr)|(application2@allo-pages\\.fr)|(application2@bilan-imc\\.fr)|(application2@lettres\\.net)|(application2@search-maps-finder\\.com)|(application-imcpeso@imc-peso\\.com)|(application-meuimc@meu-imc\\.com)|(application-us2@factorlove)|(application-us@misterdirections)|(application-us@yummmi\\.es)|(application@amiouze\\.fr)|(application@astrolignes\\.com)|(application@blotyn\\.com)|(application@bmi-result\\.com)|(application@bmi-tw\\.com)|(application@calcolo-bmi\\.com)|(application@cartes-itineraires\\.com)|(application@convertisseur\\.pro)|(application@de-findizer\\.fr)|(application@de-super-rezepte\\.com)|(application@dermabeauty\\.fr)|(application@dev\\.squel\\.v2)|(application@eu-my-drivingdirections\\.com)|(application@fr-allo-pages\\.fr)|(application@fr-catizz\\.com)|(application@fr-mr-traduction\\.com)|(application@good-recettes\\.com)|(application@horaires\\.voyage)|(application@imc-calcular\\.com)|(application@imc-peso\\.com)|(application@it-mio-percorso\\.com)|(application@iti-maps\\.fr)|(application@itineraire\\.info)|(application@lbc-search\\.com)|(application@les-pages\\.com)|(application@lovincalculator\\.com)|(application@lovintest\\.com)|(application@masowe\\.com)|(application@matchs\\.direct)|(application@mein-bmi\\.com)|(application@mes-resultats\\.com)|(application@mestaf\\.com)|(application@meu-imc\\.com)|(application@mon-calcul-imc\\.fr)|(application@mon-juste-poids\\.com)|(application@mon-trajet\\.com)|(application@my-drivingdirections\\.com)|(application@people-show\\.com)|(application@plans-reduc\\.fr)|(application@point-meteo\\.fr)|(application@poulixo\\.com)|(application@quipage\\.fr)|(application@quizdeamor\\.com)|(application@quizdoamor\\.com)|(application@quotient-retraite\\.fr)|(application@recettes\\.net)|(application@routenplaner-karten\\.com)|(application@ruta-mapa\\.com)|(application@satellite\\.dev\\.squel\\.v2)|(application@search-bilan-imc\\.fr)|(application@search-maps-finder\\.com)|(application@slimness\\.fr)|(application@start-bmi\\.com)|(application@tests-moi\\.com)|(application@tousmesjeux\\.fr)|(application@toutlannuaire\\.fr)|(application@tuto-diy\\.com)|(application@ubersetzung-app\\.com)|(application@uk-cookyummy\\.com)|(application@uk-howlogin\\.me)|(application@uk-myloap\\.com)|(application@voyagevoyage\\.co)|(application@wikimot\\.fr)|(application@www\\.plans-reduc\\.fr)|(application@yummmi\\.es)|(application@yummmies\\.be)|(application@yummmies\\.ch)|(application@yummmies\\.fr)|(application@yummmies\\.lu)|(application@zikplay\\.fr)|(applicationY@search-maps-finder\\.com)|(cmesapps@findizer\\.fr)|(findizer-shopping@jetpack)|(\\{8aaebb36-1488-4022-b7ec-29b790d12c17\\})/","prefs":[],"schema":1523216496621,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1452648","why":"Those add-ons do not provide a real functionality for users, other than silently tracking browsing behavior.","name":"Tracking Add-ons (harmful)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"36f97298-8bef-4372-a548-eb829413bee9","last_modified":1523286321447},{"guid":"adbeaver@adbeaver.org","prefs":[],"schema":1521630548030,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1445031","why":"This add-on generates numerous errors when loading Facebook, caused by ad injection included in it. Users who want to continue using this add-on can enable it in the Add-ons Manager.","name":"AdBeaver"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0"}],"id":"baf7f735-d6b6-410a-8cc8-25c60f7c57e2","last_modified":1522103097333},{"guid":"{44685ba6-68b3-4895-879e-4efa29dfb578}","prefs":[],"schema":1521565140013,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1447042","why":"This add-on impersonates a Flash tool and runs remote code on users' systems.","name":"FF Flash Manager"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"547037f2-97ae-435a-863c-efd7532668cd","last_modified":1521630548023},{"guid":"/^.*extension.*@asdf\\.pl$/","prefs":[],"schema":1520451695869,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1444037","why":"These add-ons are using deceptive names and taking over Facebook accounts to post spam content.","name":"Facebook spammers"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"3d55fab0-ec1a-4bca-84c9-3b74f5d01509","last_modified":1520527480321},{"guid":"/^(addon@fasterweb\\.com|\\{5f398d3f-25db-47f5-b422-aa2364ff6c0b\\}|addon@fasterp\\.com|addon@calculator)$/","prefs":[],"schema":1520338910918,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1443478","why":"These are malicious add-ons that use deceptive names and run remote scripts.","name":"FasterWeb add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"f58729ec-f93c-41d9-870d-dd9c9fd811b6","last_modified":1520358450708},{"guid":"{42baa93e-0cff-4289-b79e-6ae88df668c4}","prefs":[],"schema":1520336325565,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1443196","why":"The add-on claims to be \"Adobe Shockwave Flash Player\"","name":"Adobe Shockwave Flash Player (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"0cd723fe-d33d-43a0-b84f-7a3cad253212","last_modified":1520338780397},{"guid":"/{0c9970a2-6874-483b-a486-2296cfe251c2}|{01c9a4a4-06dd-426b-9500-2ea6fe841b88}|{1c981c7c-30e0-4ed2-955d-6b370e0a9d19}|{2aa275f8-fabc-4766-95b2-ecfc73db310b}|{2cac0be1-10a2-4a0d-b8c5-787837ea5955}|{2eb66f6c-94b3-44f5-9de2-22371236ec99}|{2f8aade6-8717-4277-b8b1-55172d364903}|{3c27c34f-8775-491a-a1c9-fcb15beb26d3}|{3f4dea3e-dbfc-428f-a88b-36908c459e20}|{3f4191fa-8f16-47d2-9414-36bfc9e0c2bf}|{4c140bc5-c2ad-41c3-a407-749473530904}|{05a21129-af2a-464c-809f-f2df4addf209}|{5da81d3d-5db1-432a-affc-4a2fe9a70749}|{5f4e63e4-351f-4a21-a8e5-e50dc72b5566}|{7c1df23b-1fd8-42b9-8752-71fff2b979de}|{7d5e24a1-7bef-4d09-a952-b9519ec00d20}|{7d932012-b4dd-42cc-8a78-b15ca82d0e61}|{7f8bc48d-1c7c-41a0-8534-54adc079338f}|{8a61507d-dc2f-4507-a9b7-7e33b8cbc31b}|{09c8fa16-4eec-4f78-b19d-9b24b1b57e1e}|{9ce2a636-0e49-4b8e-ad17-d0c156c963b0}|{11df9391-dba5-4fe2-bd48-37a9182b796d}|{23c65153-c21e-430a-a2dc-0793410a870d}|{36a4269e-4eef-4538-baea-9dafbf6a8e2f}|{37f8e483-c782-40ed-82e9-36f101b9e41f}|{63df223d-51cf-4f76-aad8-bbc94c895ed2}|{72c1ca96-c05d-46a7-bce1-c507ec3db4ea}|{76ce213c-8e57-4a14-b60a-67a5519bd7a7}|{79db6c96-d65a-4a64-a892-3d26bd02d2d9}|{81ac42f3-3d17-4cff-85af-8b7f89c8826b}|{83d38ac3-121b-4f28-bf9c-1220bd3c643b}|{86d98522-5d42-41d5-83c2-fc57f260a3d9}|{0111c475-01e6-42ea-a9b4-27bed9eb6092}|{214cb48a-ce31-4e48-82cf-a55061f1b766}|{216e0bcc-8a23-4069-8b63-d9528b437258}|{226b0fe6-f80f-48f1-9d8d-0b7a1a04e537}|{302ef84b-2feb-460e-85ca-f5397a77aa6a}|{408a506b-2336-4671-a490-83a1094b4097}|{419be4e9-c981-478e-baa0-937cf1eea1e8}|{0432b92a-bfcf-41b9-b5f0-df9629feece1}|{449e185a-dd91-4f7b-a23a-bbf6c1ca9435}|{591d1b73-5eae-47f4-a41f-8081d58d49bf}|{869b5825-e344-4375-839b-085d3c09ab9f}|{919fed43-3961-48d9-b0ef-893054f4f6f1}|{01166e60-d740-440c-b640-6bf964504b3c}|{2134e327-8060-441c-ba68-b167b82ff5bc}|{02328ee7-a82b-4983-a5f7-d0fc353698f0}|{6072a2a8-f1bc-4c9c-b836-7ac53e3f51e4}|{28044ca8-8e90-435e-bc63-a757af2fb6be}|{28092fa3-9c52-4a41-996d-c43e249c5f08}|{31680d42-c80d-4f8a-86d3-cd4930620369}|{92111c8d-0850-4606-904a-783d273a2059}|{446122cd-cd92-4d0c-9426-4ee0d28f6dca}|{829827cd-03be-4fed-af96-dd5997806fb4}|{4479446e-40f3-48af-ab85-7e3bb4468227}|{9263519f-ca57-4178-b743-2553a40a4bf1}|{71639610-9cc3-47e0-86ed-d5b99eaa41d5}|{84406197-6d37-437c-8d82-ae624b857355}|{93017064-dfd4-425e-a700-353f332ede37}|{a0ab16af-3384-4dbe-8722-476ce3947873}|{a0c54bd8-7817-4a40-b657-6dc7d59bd961}|{a2de96bc-e77f-4805-92c0-95c9a2023c6a}|{a3fbc8be-dac2-4971-b76a-908464cfa0e0}|{a42e5d48-6175-49e3-9e40-0188cde9c5c6}|{a893296e-5f54-43f9-a849-f12dcdee2c98}|{ac296b47-7c03-486f-a1d6-c48b24419749}|{b26bf964-7aa6-44f4-a2a9-d55af4b4eec0}|{be981b5e-1d9d-40dc-bd4f-47a7a027611c}|{be37931c-af60-4337-8708-63889f36445d}|{bfd92dfd-b293-4828-90c1-66af2ac688e6}|{c5cf4d08-0a33-4aa3-a40d-d4911bcc1da7}|{c488a8f5-ea3d-408d-809e-44e82c06ad9d}|{c661c2dc-00f9-4dc1-a9f6-bb2b7e1a4f8d}|{cd28aa38-d2f1-45a3-96c3-6cfd4702ef51}|{cd89045b-2e06-46bb-9e34-48e8799e5ef2}|{cf9d96ff-5997-439a-b32b-98214c621eee}|{d14acee6-f32b-4aa3-a802-6616003fc6a8}|{d97223b8-44e5-46c7-8ab5-e1d8986daf44}|{ddae89bd-6793-45d8-8ec9-7f4fb7212378}|{de3b1909-d4da-45e9-8da5-7d36a30e2fc6}|{df09f268-3c92-49db-8c31-6a25a6643896}|{e5bc3951-c837-4c98-9643-3c113fc8cf5e}|{e9ccb1f2-a8ba-4346-b43b-0d5582bce414}|{e341ed12-a703-47fe-b8dd-5948c38070e4}|{e2139287-2b0d-4f54-b3b1-c9a06c597223}|{ed352072-ddf0-4cb4-9cb6-d8aa3741c2de}|{f0b809eb-be22-432f-b26f-b1cadd1755b9}|{f1bce8e4-9936-495b-bf48-52850c7250ab}|{f01c3add-dc6d-4f35-a498-6b4279aa2ffa}|{f9e1ad25-5961-4cc5-8d66-5496c438a125}|{f4262989-6de0-4604-918f-663b85fad605}|{fc0d55bd-3c50-4139-9409-7df7c1114a9d}/","prefs":[],"schema":1519766961483,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1439702","why":"This malicious add-on claims to be a Firefox \"helper\" or \"updater\" or similar.","name":"FF updater (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"48b14881-5f6b-4e48-afc5-3d9a7fae26a3","last_modified":1519826648080},{"guid":"{44e4b2cf-77ba-4f76-aca7-f3fcbc2dda2f} ","prefs":[],"schema":1519414957616,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1440821","why":"This is a malicious add-on that uses a deceptive name and runs remote code.","name":"AntiVirus for Firefox"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"2447476f-043b-4d0b-9d3c-8e859c97d950","last_modified":1519429178266},{"guid":"{f3c31b34-862c-4bc8-a98f-910cc6314a86}","prefs":[],"schema":1519242096699,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1440736","why":"This is a malicious add-on that is masked as an official Adobe Updater and runs malicious code.","name":"Adobe Updater (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"adfd98ef-cebc-406b-b1e0-61bd4c71e4b1","last_modified":1519409417397},{"guid":"/^(\\{fd0c36fa-6a29-4246-810b-0bb4800019cb\\}|\\{b9c1e5bf-6585-4766-93fc-26313ac59999\\}|\\{3de25fff-25e8-40e9-9ad9-fdb3b38bb2f4\\})$/","prefs":[],"schema":1519069296530,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1439432","why":"These are malicious add-ons that are masked as an official Adobe Updater and run malicious code.","name":"Adobe Updater"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"4e28ba5c-af62-4e53-a7a1-d33334571cf8","last_modified":1519078890592},{"guid":"/^(\\{01c9a4a4-06dd-426b-9500-2ea6fe841b88\\}|{5e024309-042c-4b9d-a634-5d92cf9c7514\\}|{f4262989-6de0-4604-918f-663b85fad605\\}|{e341ed12-a703-47fe-b8dd-5948c38070e4\\}|{cd89045b-2e06-46bb-9e34-48e8799e5ef2\\}|{ac296b47-7c03-486f-a1d6-c48b24419749\\}|{5da81d3d-5db1-432a-affc-4a2fe9a70749\\}|{df09f268-3c92-49db-8c31-6a25a6643896\\}|{81ac42f3-3d17-4cff-85af-8b7f89c8826b\\}|{09c8fa16-4eec-4f78-b19d-9b24b1b57e1e\\}|{71639610-9cc3-47e0-86ed-d5b99eaa41d5\\}|{83d38ac3-121b-4f28-bf9c-1220bd3c643b\\}|{7f8bc48d-1c7c-41a0-8534-54adc079338f\\})$/","prefs":[],"schema":1518550894975,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1438028","why":"These are malicious add-ons that inject remote scripts into popular websites.","name":"Page Marker add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cc5848e8-23d5-4655-b45c-dc239839b74e","last_modified":1518640450735},{"guid":"/^(https|youtube)@vietbacsecurity\\.com$/","prefs":[],"schema":1517909997354,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1435974","why":"These add-ons contain malicious functionality, violating the users privacy and security.","name":"HTTPS and Youtube downloader (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"646e2384-f894-41bf-b7fc-8879e0095109","last_modified":1517910100624},{"guid":"{ed352072-ddf0-4cb4-9cb6-d8aa3741c2de}","prefs":[],"schema":1517514097126,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1434893","why":"This is a malicious add-on that injects remote scripts into popular pages while pretending to do something else.","name":"Image previewer"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"2104a522-bb2f-4b04-ad0d-b0c571644552","last_modified":1517577111194},{"guid":"/^(\\{0b24cf69-02b8-407d-83db-e7af04fc1f3e\\})|(\\{6feed48d-41d4-49b8-b7d6-ef78cc7a7cd7\\})| (\\{8a0699a0-09c3-4cf1-b38d-fec25441650c\\})$/","prefs":[],"schema":1517341295286,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1434759","why":"These add-ons use remote scripts to alter popular sites like Google or Amazon.","name":"Malicious remote script add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"32ffc62d-40c4-43ac-aa3f-7240978d0ad0","last_modified":1517439279474},{"guid":"/^({be5d0c88-571b-4d01-a27a-cc2d2b75868c})|({3908d078-e1db-40bf-9567-5845aa77b833})|({5b620343-cd69-49b8-a7ba-f9d499ee5d3d})|({6eee2d17-f932-4a43-a254-9e2223be8f32})|({e05ba06a-6d6a-4c51-b8fc-60b461ffecaf})|({a5808da1-5b4f-42f2-b030-161fd11a36f7})|({d355bee9-07f0-47d3-8de6-59b8eecba57b})|({a1f8e136-bce5-4fd3-9ed1-f260703a5582})$/","prefs":[],"schema":1517260691761,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.\n","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"70f37cc7-9f8a-4d0f-a881-f0c56934fa75","last_modified":1517260722621},{"guid":"/^({d78d27f4-9716-4f13-a8b6-842c455d6a46})|({bd5ba448-b096-4bd0-9582-eb7a5c9c0948})|({0b24cf69-02b8-407d-83db-e7af04fc1f3e})|({e08d85c5-4c0f-4ce3-9194-760187ce93ba})|({1c7d6d9e-325a-4260-8213-82d51277fc31})|({8a0699a0-09c3-4cf1-b38d-fec25441650c})|({1e68848a-2bb7-425c-81a2-524ab93763eb})$/","prefs":[],"schema":1517168490224,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"805ee80e-0929-4c92-93ed-062b98053f28","last_modified":1517260691755},{"guid":"/^({abec23c3-478f-4a5b-8a38-68ccd500ec42}|{a83c1cbb-7a41-41e7-a2ae-58efcb4dc2e4}|{62237447-e365-487e-8fc3-64ddf37bdaed}|{b12cfdc7-3c69-43cb-a3fb-38981b68a087}|{1a927d5b-42e7-4407-828a-fdc441d0daae}|{dd1cb0ec-be2a-432b-9c90-d64c824ac371}|{82c8ced2-e08c-4d6c-a12b-3e8227d7fc2a}|{87c552f9-7dbb-421b-8deb-571d4a2d7a21})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c92f2a05-73eb-454e-9583-f6d2382d8bca","last_modified":1516829074251},{"guid":"/^({618baeb9-e694-4c7b-9328-69f35b6a8839}|{b91fcda4-88b0-4a10-9015-9365e5340563}|{04150f98-2d7c-4ae2-8979-f5baa198a577}|{4b1050c6-9139-4126-9331-30a836e75db9}|{1e6f5a54-2c4f-4597-aa9e-3e278c617d38}|{e73854da-9503-423b-ab27-fafea2fbf443}|{a2427e23-d349-4b25-b5b8-46960b218079}|{f92c1155-97b3-40f4-9d5b-7efa897524bb}|{c8e14311-4b2d-4eb0-9a6b-062c6912f50e}|{45621564-b408-4c29-8515-4cf1f26e4bc3}|{27380afd-f42a-4c25-b57d-b9012e0d5d48})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"2d4fe65b-6c02-4461-baa8-dda52e688cf6","last_modified":1516829040469},{"guid":"/^({4dac7c77-e117-4cae-a9f0-6bd89e9e26ab}|{cc689da4-203f-4a0c-a7a6-a00a5abe74c5}|{0eb4672d-58a6-4230-b74c-50ca3716c4b0}|{06a71249-ef35-4f61-b2c8-85c3c6ee5617}|{5280684d-f769-43c9-8eaa-fb04f7de9199}|{c2341a34-a3a0-4234-90cf-74df1db0aa49}|{85e31e7e-3e3a-42d3-9b7b-0a2ff1818b33}|{b5a35d05-fa28-41b5-ae22-db1665f93f6b}|{1bd8ba17-b3ed-412e-88db-35bc4d8771d7}|{a18087bb-4980-4349-898c-ca1b7a0e59cd}|{488e190b-d1f6-4de8-bffb-0c90cc805b62})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"9a3fd797-0ab8-4286-9a1b-2b6c97f9075b","last_modified":1516829006347},{"guid":"/^({f6df4ef7-14bd-43b5-90c9-7bd02943789c}|{ccb7b5d6-a567-40a2-9686-a097a8b583dd}|{9b8df895-fcdd-452a-8c46-da5be345b5bc}|{5cf77367-b141-4ba4-ac2a-5b2ca3728e81}|{ada56fe6-f6df-4517-9ed0-b301686a34cc}|{95c7ae97-c87e-4827-a2b7-7b9934d7d642}|{e7b978ae-ffc2-4998-a99d-0f4e2f24da82}|{115a8321-4414-4f4c-aee6-9f812121b446}|{bf153de7-cdf2-4554-af46-29dabfb2aa2d}|{179710ba-0561-4551-8e8d-1809422cb09f}|{9d592fd5-e655-461a-9b28-9eba85d4c97f})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"aae78cd5-6b26-472e-ab2d-db4105911250","last_modified":1516828973824},{"guid":"/^({30972e0a-f613-4c46-8c87-2e59878e7180}|{0599211f-6314-4bf9-854b-84cb18da97f8}|{4414af84-1e1f-449b-ac85-b79f812eb69b}|{2a8bec00-0ab0-4b4d-bd3d-4f59eada8fd8}|{bea8866f-01f8-49e9-92cd-61e96c05d288}|{046258c9-75c5-429d-8d5b-386cfbadc39d}|{c5d359ff-ae01-4f67-a4f7-bf234b5afd6e}|{fdc0601f-1fbb-40a5-84e1-8bbe96b22502}|{85349ea6-2b5d-496a-9379-d4be82c2c13d}|{640c40e5-a881-4d16-a4d0-6aa788399dd2}|{d42328e1-9749-46ba-b35c-cce85ddd4ace})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"750aa293-3742-46b5-8761-51536afecaef","last_modified":1516828938683},{"guid":"/^({d03b6b0f-4d44-4666-a6d6-f16ad9483593}|{767d394a-aa77-40c9-9365-c1916b4a2f84}|{a0ce2605-b5fc-4265-aa65-863354e85058}|{b7f366fa-6c66-46bf-8df2-797c5e52859f}|{4ad16913-e5cb-4292-974c-d557ef5ec5bb}|{3c3ef2a3-0440-4e77-9e3c-1ca8d48f895c}|{543f7503-3620-4f41-8f9e-c258fdff07e9}|{98363f8b-d070-47b6-acc6-65b80acac4f3}|{5af74f5a-652b-4b83-a2a9-f3d21c3c0010}|{484e0ba4-a20b-4404-bb1b-b93473782ae0}|{b99847d6-c932-4b52-9650-af83c9dae649})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"a29aed6f-6546-4fa2-8131-df5c9a5427af","last_modified":1516828911059},{"guid":"/^({2bb68b03-b528-4133-9fc4-4980fbb4e449}|{231e58ac-0f3c-460b-bb08-0e589360bec7}|{a506c5af-0f95-4107-86f8-3de05e2794c9}|{8886a262-1c25-490b-b797-2e750dd9f36b}|{65072bef-041f-492e-8a51-acca2aaeac70}|{6fa41039-572b-44a4-acd4-01fdaebf608d}|{87ba49bd-daba-4071-aedf-4f32a7e63dbe}|{95d58338-ba6a-40c8-93fd-05a34731dc0e}|{4cbef3f0-4205-4165-8871-2844f9737602}|{1855d130-4893-4c79-b4aa-cbdf6fee86d3}|{87dcb9bf-3a3e-4b93-9c85-ba750a55831a})$/","prefs":[],"schema":1516822896448,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"5c092b0d-7205-43a1-aa75-b7a42372fb52","last_modified":1516828883523},{"guid":"/^({fce89242-66d3-4946-9ed0-e66078f172fc})|({0c4df994-4f4a-4646-ae5d-8936be8a4188})|({6cee30bc-a27c-43ea-ac72-302862db62b2})|({e08ebf0b-431d-4ed1-88bb-02e5db8b9443})$/","prefs":[],"schema":1516650096284,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1432560","why":"These are malicious add-ons that make it hard for the user to be removed.","name":"FF AntiVir Monitoring"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"9dfeee42-e6a8-49e0-8979-0648f7368239","last_modified":1516744119329},{"guid":"/^(\\{1490068c-d8b7-4bd2-9621-a648942b312c\\})|(\\{d47ebc8a-c1ea-4a42-9ca3-f723fff034bd\\})|(\\{83d6f65c-7fc0-47d0-9864-a488bfcaa376\\})|(\\{e804fa4c-08e0-4dae-a237-8680074eba07\\})|(\\{ea618d26-780e-4f0f-91fd-2a6911064204\\})|(\\{ce93dcc7-f911-4098-8238-7f023dcdfd0d\\})|(\\{7eaf96aa-d4e7-41b0-9f12-775c2ac7f7c0\\})|(\\{b019c485-2a48-4f5b-be13-a7af94bc1a3e\\})|(\\{9b8a3057-8bf4-4a9e-b94b-867e4e71a50c\\})|(\\{eb3ebb14-6ced-4f60-9800-85c3de3680a4\\})|(\\{01f409a5-d617-47be-a574-d54325fe05d1\\})$/","prefs":[],"schema":1516394914836,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are a set of malicious add-ons that block the add-ons manager tab from opening so they can't be uninstalled.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"5bf72f70-a611-4845-af3f-d4dabe8862b6","last_modified":1516394982586},{"guid":"/^(\\{ac06c6b2-3fd6-45ee-9237-6235aa347215\\})|(\\{d461cc1b-8a36-4ff0-b330-1824c148f326\\})|(\\{d1ab5ebd-9505-481d-a6cd-6b9db8d65977\\})|(\\{07953f60-447e-4f53-a5ef-ed060487f616\\})|(\\{2d3c5a5a-8e6f-4762-8aff-b24953fe1cc9\\})|(\\{f82b3ad5-e590-4286-891f-05adf5028d2f\\})|(\\{f96245ad-3bb0-46c5-8ca9-2917d69aa6ca\\})|(\\{2f53e091-4b16-4b60-9cae-69d0c55b2e78\\})|(\\{18868c3a-a209-41a6-855d-f99f782d1606\\})|(\\{47352fbf-80d9-4b70-9398-fb7bffa3da53\\})$/","prefs":[],"schema":1516311993443,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are a set of malicious add-ons that block the add-ons manager tab from opening so they can't be uninstalled.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"4ca8206f-bc2a-4428-9439-7f3142dc08db","last_modified":1516394914828},{"guid":"{5b0f6d3c-10fd-414c-a135-dffd26d7de0f}","prefs":[],"schema":1516131689499,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1430577","why":"This is a malicious add-on that executes remote scripts, redirects popular search URLs and tracks users.","name":"P Birthday"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"8088b39a-3e6d-4a17-a22f-3f95c0464bd6","last_modified":1516303320468},{"guid":"{1490068c-d8b7-4bd2-9621-a648942b312c}","prefs":[],"schema":1515267698296,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1428754","why":"This add-on is using a deceptive name and performing unwanted actions on users' systems.","name":"FF Safe Helper"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"674b6e19-f087-4706-a91d-1e723ed6f79e","last_modified":1515433728497},{"guid":"{dfa727cb-0246-4c5a-843a-e4a8592cc7b9}","prefs":[],"schema":1514922095288,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1426582","why":"Version 2.0.0 shipped with a hidden coin miner, which degrades performance in users who have it enabled. Version 1.2.3 currently available on AMO is not affected.","name":"Open With Adobe PDF Reader 2.0.0"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0.0","minVersion":"2.0.0"}],"id":"455772a3-8360-4f5a-9a5f-a45b904d0b51","last_modified":1515007270887},{"guid":"{d03b6b0f-4d44-4666-a6d6-f16ad9483593}","prefs":[],"schema":1513366896461,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1425581","why":"This is a malicious add-on posing as a legitimate update.","name":"FF Guard Tool (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"10d9ce89-b8d4-4b53-b3d7-ecd192681f4e","last_modified":1513376470395},{"guid":"{7e907a15-0a4c-4ff4-b64f-5eeb8f841349}","prefs":[],"schema":1510083698490,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate update.","name":"Manual Update"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"f7569261-f575-4719-8202-552b20d013b0","last_modified":1510168860382},{"guid":"{3602008d-8195-4860-965a-d01ac4f9ca96}","prefs":[],"schema":1509120801051,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate antivirus.\n","name":"Manual Antivirus"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"28c805a9-e692-4ef8-b3ae-14e085c19ecd","last_modified":1509120934909},{"guid":"{87010166-e3d0-4db5-a394-0517917201df}","prefs":[],"schema":1509120801051,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate antivirus.\n","name":"Manual Antivirus"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"84dd8a02-c879-4477-8ea7-bf2f225b0940","last_modified":1509120881470},{"guid":"{8ab60777-e899-475d-9a4f-5f2ee02c7ea4}","prefs":[],"schema":1509120801051,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate antivirus.\n","name":"Manual Antivirus"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"ccebab59-7190-4258-8faa-a0b752dd5301","last_modified":1509120831329},{"guid":"{368eb817-31b4-4be9-a761-b67598faf9fa}","prefs":[],"schema":1509046897080,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate antivirus.","name":"Manual Antivirus"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"9abc7502-bd6f-40d7-b035-abe721345360","last_modified":1509120801043},{"guid":"fi@dictionaries.addons.mozilla.org","prefs":[],"schema":1508701297180,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1407147","why":"This add-on is causing frequent crashes in Firefox 56.","name":"Finnish spellchecker"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"2.1.0","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"56.0a1"}]}],"id":"22431713-a93b-40f4-8264-0b341b5f6454","last_modified":1508856488536},{"guid":"firefox@mega.co.nz","prefs":[],"schema":1506800496781,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1404290","why":"Add-on is causing tabs to load blank.","name":"Mega.nz"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.16.1","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"56.0a1"}]}],"id":"a84e6eba-4bc1-4416-b481-9b837d39f9f0","last_modified":1506963401477},{"guid":"@68eba425-7a05-4d62-82b1-1d6d5a51716b","prefs":[],"schema":1505072496256,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1398905","why":"Misleads users into thinking this is a security and privacy tool (also distributed on a site that makes it look like an official Mozilla product).","name":"SearchAssist Incognito"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0"}],"id":"595e0e53-b76b-4188-a160-66f29c636094","last_modified":1505211411253},{"guid":"{efda3854-2bd9-45a1-9766-49d7ff18931d}","prefs":[],"schema":1503344500341,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1392625","why":"Add-on injects remote code into privileged scope.","name":"Smart Referer"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.8.17.2","minVersion":"0"}],"id":"d83011de-67a4-479b-a778-916a7232095b","last_modified":1503411102265},{"guid":"@H99KV4DO-UCCF-9PFO-9ZLK-8RRP4FVOKD9O","prefs":[],"schema":1502483549048,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1340877","why":"This is a malicious add-on that is being installed silently.","name":"FF Adr (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"5df16afc-c804-43c9-9de5-f1835403e5fb","last_modified":1502483601731},{"guid":"@DA3566E2-F709-11E5-8E87-A604BC8E7F8B","prefs":[],"schema":1502480491460,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1340877","why":"This is a malicious add-on that is being installed silently into users' systems.","name":"SimilarWeb (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"0a47a2f7-f07c-489b-bd39-88122a2dfe6a","last_modified":1502483549043},{"guid":"xdict@www.iciba.com","prefs":[],"schema":1501098091500,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1384497","why":"This add-on has been discontinued and is creating a prompt loop that blocks users from using Firefox.","name":"PowerWord Grab Word Extension"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.3.1","minVersion":"0"}],"id":"28736359-700e-4b61-9c50-0b533a6bac55","last_modified":1501187580933},{"guid":"{3B4DE07A-DE43-4DBC-873F-05835FF67DCE}","prefs":[],"schema":1496950889322,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1371392","why":"This add-on performs hidden actions that cause the users' systems to act as a botnet.","name":"The Safe Surfing (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"510bbd9b-b883-4837-90ab-8e353e27e1be","last_modified":1496951442076},{"guid":"WebProtection@360safe.com","prefs":[],"schema":1496846005095,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1336635","who":"All users of Firefox 52 and above who have this add-on installed.","why":"This add-on breaks the Firefox user interface starting with version 52.","name":"360 Internet Protection versions 5.0.0.1009 and lower"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"5.0.0.1009","minVersion":"0"}],"id":"e16408c3-4e08-47fd-85a9-3cbbce534e95","last_modified":1496849965060},{"guid":"html5@encoding","prefs":[],"schema":1496788543767,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1370847","who":"All users.","why":"This malicious add-on targets a certain user group and spies on them.","name":"HTML5 Encoding (Malicious), all versions"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c806b01c-3352-4083-afd9-9a8ab6e00b19","last_modified":1496833261424},{"guid":"/^({95E84BD3-3604-4AAC-B2CA-D9AC3E55B64B}|{E3605470-291B-44EB-8648-745EE356599A}|{95E5E0AD-65F9-4FFC-A2A2-0008DCF6ED25}|{FF20459C-DA6E-41A7-80BC-8F4FEFD9C575}|{6E727987-C8EA-44DA-8749-310C0FBE3C3E}|{12E8A6C2-B125-479F-AB3C-13B8757C7F04}|{EB6628CF-0675-4DAE-95CE-EFFA23169743})$/","prefs":[],"schema":1494022576295,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1362585","why":"All of these add-ons have been identified as malware, and are being installed in Firefox globally, most likely via a malicious application installer.","name":"Malicious globally-installed add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"3fd71895-7fc6-4f3f-aa22-1cbb0c5fd922","last_modified":1494024191520},{"guid":"@safesearchscoutee","prefs":[],"schema":1494013289942,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1362553","why":"This add-on intercepts queries sent to search engines and replaces them with its own, without user consent.","name":"SafeSearch Incognito (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"edad04eb-ea16-42f3-a4a7-20dded33cc37","last_modified":1494022568654},{"guid":"{0D2172E4-C5AE-465A-B80D-53A840275B5E}","prefs":[],"schema":1493332768943,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1359473","who":"All users of Thunderbird 52 and above, using a version of the Priority Switcher add-on before version 0.7","why":"This add-on is causing recurring startup crashes in Thunderbird.","name":"Priority Switcher for Thunderbird before version 0.7"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.6.999","minVersion":"0","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"52.0a1"}]}],"id":"8c8af415-46db-40be-a66e-38e3762493bd","last_modified":1493332986987},{"guid":"msktbird@mcafee.com","prefs":[],"schema":1493150718059,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1354912","why":"These versions of this add-on are known to cause frequent crashes in Thunderbird.","name":"McAfee Anti-Spam Thunderbird Extension 2.0 and lower"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"2.0","minVersion":"0","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"0"}]}],"id":"9e86d1ff-727a-45e3-9fb6-17f32666daf2","last_modified":1493332747360},{"guid":"/^(\\{11112503-5e91-4299-bf4b-f8c07811aa50\\})|(\\{501815af-725e-45be-b0f2-8f36f5617afc\\})$/","prefs":[],"schema":1491421290217,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1354045","why":"This add-on steals user credentials for popular websites from Facebook.","name":"Flash Player Updater (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c142360c-4f93-467e-9717-b638aa085d95","last_modified":1491472107658},{"guid":"fr@fbt.ovh","prefs":[],"schema":1490898754477,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1351689","why":"Scam add-on that silently steals user credentials of popular websites","name":"Adobe Flash Player (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0f8344d0-8211-49a1-81be-c0084b3da9b1","last_modified":1490898787752},{"guid":"/^\\{(9321F452-96D5-11E6-BC3E-3769C7AD2208)|({18ED1ECA-96D3-11E6-A373-BD66C7AD2208})\\}$/","prefs":[],"schema":1490872899765,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1351710","why":"These add-ons modify websites and add deceptive or abusive content","name":"Scamming add-ons (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d6425f24-8c9e-4c0a-89b4-6890fc68d5c9","last_modified":1490898748265},{"guid":"/^(test2@test\\.com)|(test3@test\\.com)|(mozilla_cc2\\.2@internetdownloadmanager\\.com)$/","prefs":[],"schema":1490557289817,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1351095","who":"All users who have any of these add-ons installed.","why":"Old versions of the Internet Download Manager Integration add-on cause performance and stability problems in Firefox 53 and above.","name":"IDM Integration forks"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"53.0a1"}]}],"id":"9085fdba-8498-46a9-b9fd-4c7343a15c62","last_modified":1490653926191},{"guid":"mozilla_cc2@internetdownloadmanager.com","prefs":[],"schema":1489007018796,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1338832","who":"All users who have these versions of the add-on installed.","why":"Old versions of the Internet Download Manager Integration add-on cause performance and stability problems in Firefox 53 and above.","name":"IDM Integration"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"6.26.11","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"53.0a1"}]}],"id":"d33f6d48-a555-49dd-96ff-8d75473403a8","last_modified":1489514734167},{"guid":"InternetProtection@360safe.com","prefs":[],"schema":1489006712382,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1336635","who":"All Firefox users who have this add-on installed.","why":"This add-on breaks the Firefox user interface starting with version 52.","name":"360 Internet Protection"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"5.0.0.1002","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"52.0a1"}]}],"id":"89a61123-79a2-45d1-aec2-97afca0863eb","last_modified":1489006816246},{"guid":"{95E84BD3-3604-4AAC-B2CA-D9AC3E55B64B}","prefs":[],"schema":1487179851382,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1338690","who":"All users who have this add-on installed.","why":"This is a malicious add-on that is silently installed in users' systems.","name":"youtube adblock (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"04b25e3d-a725-493e-be07-cbd74fb37ea7","last_modified":1487288975999},{"guid":"ext@alibonus.com","prefs":[],"schema":1485297431051,"blockID":"i1524","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1333471","who":"All Firefox users who have these versions installed.","why":"Versions 1.20.9 and lower of this add-on contain critical security issues.","name":"Alibonus 1.20.9 and lower","created":"2017-01-24T22:45:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.20.9","minVersion":"0","targetApplication":[]}],"id":"a015d5a4-9184-95db-0c74-9262af2332fa","last_modified":1485301116629},{"guid":"{a0d7ccb3-214d-498b-b4aa-0e8fda9a7bf7}","prefs":[],"schema":1485295513652,"blockID":"i1523","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1314332","who":"All Firefox users who have these versions of the Web of Trust add-on installed.","why":"Versions 20170120 and lower of the Web of Trust add-on send excessive user data to its service, which has been reportedly shared with third parties without sufficient sanitization. These versions are also affected by a vulnerability that could lead to unwanted remote code execution.","name":"Web of Trust 20170120 and lower","created":"2017-01-24T22:01:08Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"20170120","minVersion":"0","targetApplication":[]}],"id":"2224c139-9b98-0900-61c1-04031de11ad3","last_modified":1485297214072},{"guid":"/^(ciscowebexstart1@cisco\\.com|ciscowebexstart_test@cisco\\.com|ciscowebexstart@cisco\\.com|ciscowebexgpc@cisco\\.com)$/","prefs":[],"schema":1485212610474,"blockID":"i1522","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1333225","who":"All Firefox users who have any Cisco WebEx add-ons installed.","why":"A critical security vulnerability has been discovered in Cisco WebEx add-ons that enable malicious websites to execute code on the user's system.","name":"Cisco WebEx add-ons","created":"2017-01-23T22:55:58Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.1","minVersion":"1.0.0","targetApplication":[]}],"id":"30368779-1d3b-490a-0a34-253085af7754","last_modified":1485215014902},{"guid":"{de71f09a-3342-48c5-95c1-4b0f17567554}","prefs":[],"schema":1484335370642,"blockID":"i1493","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1329654","who":"All users who have this add-on installed.","why":"This is a malicious add-on that is installed using a fake name. It changes search and homepage settings.","name":"Search for Firefox Convertor (malware)","created":"2017-01-12T22:17:59Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"1.3.9","minVersion":"0","targetApplication":[]}],"id":"d6ec9f54-9945-088e-ba68-40117eaba24e","last_modified":1484867614757},{"guid":"googlotim@gmail.com","prefs":[],"schema":1483389810787,"blockID":"i1492","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1328594","who":"All users who have Savogram version 1.3.2 installed. Version 1.3.1 doesn't have this problem and can be installed from the add-on page. Note that this is an older version, so affected users won't be automatically updated to it. New versions should correct this problem if they become available.","why":"Version 1.3.2 of this add-on loads remote code and performs DOM injection in an unsafe manner.","name":"Savogram 1.3.2","created":"2017-01-05T19:58:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.3.2","minVersion":"1.3.2","targetApplication":[]}],"id":"0756ed76-7bc7-ec1e-aba5-3a9fac2107ba","last_modified":1483646608603},{"guid":"support@update-firefox.com","prefs":[],"schema":1483387107003,"blockID":"i21","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=629717","who":"All users of the add-on in all Mozilla applications.","why":"This add-on is adware/spyware masquerading as a Firefox update mechanism.","name":"Browser Update (spyware)","created":"2011-01-31T16:23:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dfb06be8-3594-28e4-d163-17e27119f15d","last_modified":1483389809169},{"guid":"{2224e955-00e9-4613-a844-ce69fccaae91}","prefs":[],"schema":1483387107003,"blockID":"i7","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=512406","who":"All users of Internet Saving Optimizer for all Mozilla applications.","why":"This add-on causes a high volume of Firefox crashes and is considered malware.","name":"Internet Saving Optimizer (extension)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b9efb796-97c2-6434-d28f-acc83436f8e5","last_modified":1483389809147},{"guid":"supportaccessplugin@gmail.com","prefs":[],"schema":1483387107003,"blockID":"i43","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=693673","who":"All users with Firefox Access Plugin installed","why":"This add-on is spyware that reports all visited websites to a third party with no user value.","name":"Firefox Access Plugin (spyware)","created":"2011-10-11T11:24:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1ed230a4-e174-262a-55ab-0c33f93a2529","last_modified":1483389809124},{"guid":"{8CE11043-9A15-4207-A565-0C94C42D590D}","prefs":[],"schema":1483387107003,"blockID":"i10","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=541302","who":"All users of this add-on in all Mozilla applications.","why":"This add-on secretly hijacks all search results in most major search engines and masks as a security add-on.","name":"Internal security options editor (malware)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e2e0ac09-6d68-75f5-2424-140f51904876","last_modified":1483389809102},{"guid":"youtube@youtube2.com","prefs":[],"schema":1483387107003,"blockID":"i47","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=713050","who":"All users with any version of Free Cheesecake Factory installed on any Mozilla product.","why":"This add-on hijacks your Facebook account.","name":"Free Cheesecake Factory (malware)","created":"2011-12-22T13:11:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"85f5c1db-433b-bee3-2a3b-325165cacc6e","last_modified":1483389809079},{"guid":"admin@youtubespeedup.com","prefs":[],"schema":1483387107003,"blockID":"i48","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=714221","who":"All users with any version of Youtube Speed UP! installed on any Mozilla product.","why":"This add-on hijacks your Facebook account.","name":"Youtube Speed UP! (malware)","created":"2011-12-29T19:48:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a93922c4-8a8a-5230-8f76-76fecb0653b6","last_modified":1483389809057},{"guid":"{E8E88AB0-7182-11DF-904E-6045E0D72085}","prefs":[],"schema":1483387107003,"blockID":"i13","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=578085","who":"All users of this add-on for all Mozilla applications.","why":"This add-on intercepts website login credentials and is malware. For more information, please read our security announcement.","name":"Mozilla Sniffer (malware)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ebbd6de9-fc8a-3e5b-2a07-232bee589c7c","last_modified":1483389809035},{"guid":"sigma@labs.mozilla","prefs":[],"schema":1483387107003,"blockID":"i44","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=690819","who":"All users of Lab Kit in all versions of Firefox.","why":"The Lab Kit add-on has been retired due to compatibility issues with Firefox 7 and future Firefox browser releases. You can still install Mozilla Labs add-ons individually.\r\n\r\nFor more information, please read this announcement.","name":"Mozilla Labs: Lab Kit","created":"2011-10-11T11:51:34Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d614e9cd-220f-3a19-287b-57e122f8c4b5","last_modified":1483389809012},{"guid":"/^(jid0-S9kkzfTvEmC985BVmf8ZOzA5nLM@jetpack|jid1-qps14pkDB6UDvA@jetpack|jid1-Tsr09YnAqIWL0Q@jetpack|shole@ats.ext|{38a64ef0-7181-11e3-981f-0800200c9a66}|eochoa@ualberta.ca)$/","prefs":[],"schema":1483376308298,"blockID":"i1424","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1325060","who":"All users who have any of the affected versions installed.","why":"A security vulnerability was discovered in old versions of the Add-ons SDK, which is exposed by certain old versions of add-ons. In the case of some add-ons that haven't been updated for a long time, all versions are being blocked.","name":"Various vulnerable add-on versions","created":"2016-12-21T17:22:12Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0699488d-2a19-6735-809e-f229849fe00b","last_modified":1483378113482},{"guid":"pink@rosaplugin.info","prefs":[],"schema":1482945809444,"blockID":"i84","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=743484","who":"All Firefox users who have this add-on installed","why":"Add-on acts like malware and performs user actions on Facebook without their consent.","name":"Facebook Rosa (malware)","created":"2012-04-09T10:13:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"66ad8de9-311d-076c-7356-87fde6d30d8f","last_modified":1482945810971},{"guid":"videoplugin@player.com","prefs":[],"schema":1482945809444,"blockID":"i90","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=752483","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as a Flash Player update. It can hijack Google searches and Facebook accounts.","name":"FlashPlayer 11 (malware)","created":"2012-05-07T08:58:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d25943f1-39ef-b9ec-ab77-baeef3498365","last_modified":1482945810949},{"guid":"youtb3@youtb3.com","prefs":[],"schema":1482945809444,"blockID":"i60","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=723753","who":"All Firefox users who have this extension installed.","why":"Malicious extension installed under false pretenses.","name":"Video extension (malware)","created":"2012-02-02T16:38:41Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cae3093f-a7b3-5352-a264-01dbfbf347ce","last_modified":1482945810927},{"guid":"{8f42fb8b-b6f6-45de-81c0-d6d39f54f971}","prefs":[],"schema":1482945809444,"blockID":"i82","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=743012","who":"All Firefox users who have installed this add-on.","why":"This add-on maliciously manipulates Facebook and is installed under false pretenses.","name":"Face Plus (malware)","created":"2012-04-09T10:04:28Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"09319ab3-55e7-fec1-44e0-84067d014b9b","last_modified":1482945810904},{"guid":"cloudmask@cloudmask.com","prefs":[],"schema":1482945809444,"blockID":"i1233","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1280431","who":"Any user who has version 2.0.788, or earlier, installed.","why":"These versions of the add-on (before 2.0.788) execute code from a website in a privileged local browser context, potentially allowing dangerous, unreviewed, actions to affect the user's computer. This is fixed in later versions.","name":"CloudMask","created":"2016-06-17T14:31:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0.788","minVersion":"0","targetApplication":[]}],"id":"2a8b40c7-a1d2-29f4-b7d7-ccfc5066bae1","last_modified":1482945810881},{"guid":"{95ff02bc-ffc6-45f0-a5c8-619b8226a9de}","prefs":[],"schema":1482945809444,"blockID":"i105","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=763065","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that inserts scripts into Facebook and hijacks the user's session.\r\n","name":"Eklenti D\u00fcnyas\u0131 (malware)","created":"2012-06-08T14:34:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"afbbc08d-2414-f51e-fdb8-74c0a2d90323","last_modified":1482945810858},{"guid":"{fa277cfc-1d75-4949-a1f9-4ac8e41b2dfd}","prefs":[],"schema":1482945809444,"blockID":"i77","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=738419","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware that is installed under false pretenses as an Adobe plugin.","name":"Adobe Flash (malware)","created":"2012-03-22T14:39:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"81753a93-382d-5f9d-a4ca-8a21b679ebb1","last_modified":1482945810835},{"guid":"youtube@youtube3.com","prefs":[],"schema":1482945809444,"blockID":"i57","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=722823","who":"All Firefox users that have installed this add-on.","why":"Malware installed on false pretenses.","name":"Divx 2012 Plugin (malware)","created":"2012-01-31T13:54:20Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4a93a0eb-a513-7272-6199-bc4d6228ff50","last_modified":1482945810811},{"guid":"{392e123b-b691-4a5e-b52f-c4c1027e749c}","prefs":[],"schema":1482945809444,"blockID":"i109","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=769781","who":"All Firefox users who have this add-on installed.","why":"This add-on pretends to be developed by Facebook and injects scripts that manipulate users' Facebook accounts.","name":"Zaman Tuneline Hay\u0131r! (malware)","created":"2012-06-29T13:20:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b9a805aa-cae7-58d6-5a53-2af4442e4cf6","last_modified":1482945810788},{"guid":"msntoolbar@msn.com","prefs":[],"schema":1482945809444,"blockID":"i18","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=599971","who":"Users of Bing Bar 6.0 and older for all versions of Firefox.","why":"This add-on has security issues and was blocked at Microsoft's request. For more information, please see this article.","name":"Bing Bar","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"6.*","minVersion":" 0","targetApplication":[]}],"id":"9b2f2039-b997-8993-d6dc-d881bc1ca7a1","last_modified":1482945810764},{"guid":"yasd@youasdr3.com","prefs":[],"schema":1482945809444,"blockID":"i104","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=763065","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that inserts scripts into Facebook and hijacks the user's session.\r\n","name":"Play Now (malware)","created":"2012-06-08T14:33:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8a352dff-d09d-1e78-7feb-45dec7ace5a5","last_modified":1482945810740},{"guid":"fdm_ffext@freedownloadmanager.org","prefs":[],"schema":1482945809444,"blockID":"i2","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=408445","who":"Users of Firefox 3 and later with versions 1.0 through 1.3.1 of Free Download Manager","why":"This add-on causes a high volume of crashes.","name":"Free Download Manager","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.3.1","minVersion":"1.0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.0a1"}]}],"id":"fc46f8e7-0489-b90f-a373-d93109479ca5","last_modified":1482945810393},{"guid":"flash@adobe.com","prefs":[],"schema":1482945809444,"blockID":"i56","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=722526","who":"All Firefox users who have this add-on installed.","why":"This add-on poses as an Adobe Flash update and injects malicious scripts into web pages. It hides itself in the Add-ons Manager.","name":"Adobe Flash Update (malware)","created":"2012-01-30T15:41:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"696db959-fb0b-8aa4-928e-65f157cdd77a","last_modified":1482945810371},{"guid":"youtubeer@youtuber.com","prefs":[],"schema":1482945809444,"blockID":"i66","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=726787","who":"All Firefox users who have installed this add-on.","why":"Add-on behaves maliciously, and is installed under false pretenses.","name":"Plug VDS (malware)","created":"2012-02-13T15:44:20Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0878ce4e-b476-ffa3-0e06-21a65b7917a1","last_modified":1482945810348},{"guid":"{B13721C7-F507-4982-B2E5-502A71474FED}","prefs":[],"schema":1482945809444,"blockID":"i8","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=627278","who":"Users of all versions of the original Skype Toolbar in all versions of Firefox.","why":"This add-on causes a high volume of Firefox crashes and introduces severe performance issues. Please update to the latest version. For more information, please read our announcement.","name":"Original Skype Toolbar","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5a320611-59a3-0eee-bb30-9052be870e00","last_modified":1482945810326},{"guid":"yslow@yahoo-inc.com","prefs":[],"schema":1482945809444,"blockID":"i11","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=542686","who":"Users of YSlow version 2.0.5 for Firefox 3.5.7 and later.","why":"This add-on causes a high volume of Firefox crashes and other stability issues. Users should update to the latest version.","name":"YSlow","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0.5","minVersion":"2.0.5","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.5.7"}]}],"id":"a9b34e8f-45ce-9217-b791-98e094c26352","last_modified":1482945810303},{"guid":"youtube@youtuber.com","prefs":[],"schema":1482945809444,"blockID":"i63","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=724691","who":"All Firefox users who have installed this add-on.","why":"Installs under false pretenses and delivers malware.","name":"Mozilla Essentials (malware)","created":"2012-02-06T15:39:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"18216e6f-9d70-816f-4d4c-63861f43ff3c","last_modified":1482945810281},{"guid":"flash@adobee.com","prefs":[],"schema":1482945809444,"blockID":"i83","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=743497","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware installed under false pretenses.","name":"FlashPlayer 11 (malware)","created":"2012-04-09T10:08:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"09bb4661-331c-f7ba-865b-9e085dc437af","last_modified":1482945810259},{"guid":"youtube@2youtube.com","prefs":[],"schema":1482945809444,"blockID":"i71","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=730399","who":"All Firefox users who have installed this add-on.","why":"Extension is malware, installed under false pretenses.","name":"YouTube extension (malware)","created":"2012-02-27T10:23:23Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5d389c1f-b3a0-b06f-6ffb-d1e8aa055e3c","last_modified":1482945810236},{"guid":"webmaster@buzzzzvideos.info","prefs":[],"schema":1482945809444,"blockID":"i58","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=722844","who":"All Firefox users who have installed this add-on.","why":"Malware add-on that is installed under false pretenses.","name":"Buzz Video (malware)","created":"2012-01-31T14:51:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f7aab105-e2c2-42f5-d9be-280eb9c0c8f7","last_modified":1482945810213},{"guid":"play5@vide04flash.com","prefs":[],"schema":1482945809444,"blockID":"i92","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=755443","who":"All Firefox users who have this add-on installed.","why":"This add-on impersonates a Flash Player update (poorly), and inserts malicious scripts into Facebook.","name":"Lastest Flash PLayer (malware)","created":"2012-05-15T13:27:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7190860e-fc1f-cd9f-5d25-778e1e9043b2","last_modified":1482945810191},{"guid":"support3_en@adobe122.com","prefs":[],"schema":1482945809444,"blockID":"i97","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=759164","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as the Flash Player plugin.","name":"FlashPlayer 11 (malware)","created":"2012-05-28T13:42:54Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"decf93a1-2bb0-148c-a1a6-10b3757b554b","last_modified":1482945810168},{"guid":"a1g0a9g219d@a1.com","prefs":[],"schema":1482945809444,"blockID":"i73","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=736275","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as Flash Player. It steals user cookies and sends them to a remote location.","name":"Flash Player (malware)","created":"2012-03-15T15:03:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6dd66b43-897d-874a-2227-54e240b8520f","last_modified":1482945810146},{"guid":"ghostviewer@youtube2.com","prefs":[],"schema":1482945809444,"blockID":"i59","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=723683","who":"All Firefox users who have installed this add-on.","why":"Malicious add-on that automatically posts to Facebook.","name":"Ghost Viewer (malware)","created":"2012-02-02T16:32:15Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"06dfe833-8c3d-90ee-3aa8-37c3c28f7c56","last_modified":1482945810123},{"guid":"{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}","prefs":[],"schema":1482945809444,"blockID":"i19","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=621660","who":"Users of Stylish version 1.1b1 for Firefox.","why":"Version 1.1b1 of this add-on causes compatibility issues with Firefox. Users should update to the latest version.","name":"Stylish","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.1b1","minVersion":"1.1b1","targetApplication":[]}],"id":"aaea37e1-ff86-4565-8bd5-55a6bf942791","last_modified":1482945810101},{"guid":"kdrgun@gmail.com","prefs":[],"schema":1482945809444,"blockID":"i103","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=763065","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that inserts scripts into Facebook and hijacks the user's session.","name":"Timeline Kapat (malware)","created":"2012-06-08T14:32:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a9a46ab2-2f56-1046-201c-5faa3435e248","last_modified":1482945810078},{"guid":"youtube2@youtube2.com","prefs":[],"schema":1482945809444,"blockID":"i67","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=728476","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware, installed under false pretenses.","name":"Youtube Online (malware)","created":"2012-02-18T09:10:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"14650ece-295b-a667-f9bc-a3d973e2228c","last_modified":1482945810055},{"guid":"masterfiler@gmail.com","prefs":[],"schema":1482945809444,"blockID":"i12","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=542081","who":"All users of this add-on for all Mozilla applications.","why":"This add-on is malware and attempts to install a Trojan on the user's computer.","name":"Master File (malware)","created":"2010-02-05T15:01:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a256d79d-5af8-92e9-a29d-350adf822efe","last_modified":1482945810032},{"guid":"{847b3a00-7ab1-11d4-8f02-006008948af5}","prefs":[],"schema":1482945809444,"blockID":"i9","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=531047","who":"Users of Enigmail versions older than 0.97a for Thunderbird 3 and later.","why":"This add-on causes a high volume of crashes and other stability issues. Users should update Enigmail.","name":"Enigmail","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.97a","minVersion":"0","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"3.0pre"}]}],"id":"115f46b6-059d-202a-4373-2ca79b096347","last_modified":1482945810003},{"guid":"mozilla_cc@internetdownloadmanager.com","prefs":[],"schema":1482945809444,"blockID":"i14","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=578443","who":"Users of Firefox 4 and later with Internet Download Manager version 6.9.8 and older.","why":"This add-on causes a high volume of crashes and has other stability issues.","name":"Internet Download Manager","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"6.9.8","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.7a1pre"}]}],"id":"773ffcfb-75d1-081d-7431-ebe3fa5dbb44","last_modified":1482945809979},{"guid":"admin@youtubeplayer.com","prefs":[],"schema":1482945809444,"blockID":"i51","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=717165","who":"All Firefox users with this extension installed.","why":"This add-on is malware, doing nothing more than inserting advertisements into websites through iframes.","name":"Youtube player (malware)","created":"2012-01-18T14:34:55Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"16b2ce94-88db-0d79-33fc-a93070ceb509","last_modified":1482945809957},{"guid":"personas@christopher.beard","prefs":[],"schema":1482945809444,"blockID":"i15","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=590978","who":"All users of Personas Plus 1.6 in all versions of Firefox.","why":"This version of Personas Plus is incompatible with certain Firefox functionality and other add-ons. Users should upgrade to the latest version.","name":"Personas Plus","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.6","minVersion":"1.6","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"3.6.*","minVersion":"3.6"}]}],"id":"e36479c6-ca00-48d4-4fd9-ec677fd032da","last_modified":1482945809934},{"guid":"youtubeee@youtuber3.com","prefs":[],"schema":1482945809444,"blockID":"i96","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=758503","who":"All Firefox users who have installed this add-on.","why":"This is a malicious add-on that is disguised as a DivX plugin.","name":"Divx 2012 Plugins (malware)","created":"2012-05-25T09:26:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f01be9cb-5cf2-774a-a4d7-e210a24db5b9","last_modified":1482945809912},{"guid":"{3252b9ae-c69a-4eaf-9502-dc9c1f6c009e}","prefs":[],"schema":1482945809444,"blockID":"i17","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=599971","who":"Users of version 2.2 of this add-on in all versions of Firefox.","why":"This add-on has security issues and was blocked at Microsoft's request. For more information, please see this article.","name":"Default Manager (Microsoft)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.2","minVersion":"2.2","targetApplication":[]}],"id":"38be28ac-2e30-37fa-4332-852a55fafb43","last_modified":1482945809886},{"guid":"{68b8676b-99a5-46d1-b390-22411d8bcd61}","prefs":[],"schema":1482945809444,"blockID":"i93","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=755635","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that post content on Facebook accounts and steals user data.","name":"Zaman T\u00fcnelini Kald\u0131r! (malware)","created":"2012-05-16T10:44:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"733aff15-9b1f-ec04-288f-b78a55165a1c","last_modified":1482945809863},{"guid":"applebeegifts@mozilla.doslash.org","prefs":[],"schema":1482945809444,"blockID":"i54","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=721562","who":"All Firefox users that install this add-on.","why":"Add-on is malware installed under false pretenses.","name":"Applebees Gift Card (malware)","created":"2012-01-26T16:17:49Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1372c8ab-5452-745a-461a-aa78e3e12c4b","last_modified":1482945809840},{"guid":"activity@facebook.com","prefs":[],"schema":1482945112982,"blockID":"i65","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=726803","who":"All Firefox users who have installed this add-on.","why":"Add-on behaves maliciously and poses as an official Facebook add-on.","name":"Facebook extension (malware)","created":"2012-02-13T15:41:02Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"79ad1c9b-0828-7823-4574-dd1cdd46c3d6","last_modified":1482945809437},{"guid":"jid0-EcdqvFOgWLKHNJPuqAnawlykCGZ@jetpack","prefs":[],"schema":1482945112982,"blockID":"i62","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=724650","who":"All Firefox users who have installed this add-on.","why":"Add-on is installed under false pretenses and delivers malware.","name":"YouTube extension (malware)","created":"2012-02-06T14:46:33Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5ae1e642-b53c-54c0-19e7-5562cfdac3a3","last_modified":1482945809415},{"guid":"{B7082FAA-CB62-4872-9106-E42DD88EDE45}","prefs":[],"schema":1482945112982,"blockID":"i25","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=637542","who":"Users of McAfee SiteAdvisor below version 3.3.1 for Firefox 4.\r\n\r\nUsers of McAfee SiteAdvisor 3.3.1 and below for Firefox 5 and higher.","why":"This add-on causes a high volume of crashes and is incompatible with certain versions of Firefox.","name":"McAfee SiteAdvisor","created":"2011-03-14T15:53:07Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.3.0.*","minVersion":"0.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.7a1"}]}],"id":"c950501b-1f08-2ab2-d817-7c664c0d16fe","last_modified":1482945809393},{"guid":"{B7082FAA-CB62-4872-9106-E42DD88EDE45}","prefs":[],"schema":1482945112982,"blockID":"i38","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=660111","who":"Users of McAfee SiteAdvisor below version 3.3.1 for Firefox 4.\r\n\r\nUsers of McAfee SiteAdvisor 3.3.1 and below for Firefox 5 and higher.","why":"This add-on causes a high volume of crashes and is incompatible with certain versions of Firefox.","name":"McAfee SiteAdvisor","created":"2011-05-27T13:55:02Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"3.3.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"5.0a1"}]}],"id":"f11de388-4511-8d06-1414-95d3b2b122c5","last_modified":1482945809371},{"guid":"{3f963a5b-e555-4543-90e2-c3908898db71}","prefs":[],"schema":1482945112982,"blockID":"i6","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=527135","who":"Users of AVG SafeSearch version 8.5 and older for all Mozilla applications.","why":"This add-on causes a high volume of crashes and causes other stability issues.","name":"AVG SafeSearch","created":"2009-06-17T13:12:12Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"8.5","minVersion":"0","targetApplication":[]}],"id":"0d6f7d4c-bf5d-538f-1ded-ea4c6b775617","last_modified":1482945809348},{"guid":"langpack-vi-VN@firefox.mozilla.org","prefs":[],"schema":1482945112982,"blockID":"i3","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=432406","who":"Users of Vietnamese Language Pack version 2.0 for all Mozilla applications.","why":"Corrupted files. For more information, please see this blog post.","name":"Vietnamese Language Pack","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0","minVersion":"2.0","targetApplication":[]}],"id":"51d4b581-d21c-20a1-6147-b17c3adc7867","last_modified":1482945809326},{"guid":"youtube@youtube7.com","prefs":[],"schema":1482945112982,"blockID":"i55","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=721646","who":"All Firefox users with this add-on installed.","why":"This is malware posing as video software.","name":"Plugin Video (malware)","created":"2012-01-27T09:39:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"08ceedf5-c7c1-f54f-db0c-02f01f0e319a","last_modified":1482945809304},{"guid":"crossriderapp3924@crossrider.com","prefs":[],"schema":1482945112982,"blockID":"i76","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=738282","who":"All Firefox users who have installed this add-on.","why":"This add-on compromises Facebook privacy and security and spams friends lists without user intervention.","name":"Fblixx (malware)","created":"2012-03-22T10:38:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"39d0a019-62fb-837b-1f1f-6831e56442b5","last_modified":1482945809279},{"guid":"{45147e67-4020-47e2-8f7a-55464fb535aa}","prefs":[],"schema":1482945112982,"blockID":"i86","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=748993","who":"All Firefox users who have this add-on installed.","why":"This add-on injects scripts into Facebook and performs malicious activity.","name":"Mukemmel Face+","created":"2012-04-25T16:33:21Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"960443f9-cf48-0b71-1ff2-b8c34a3411ea","last_modified":1482945809255},{"guid":"{4B3803EA-5230-4DC3-A7FC-33638F3D3542}","prefs":[],"schema":1482945112982,"blockID":"i4","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=441649","who":"Users of Firefox 3 and later with version 1.2 of Crawler Toolbar","why":"This add-on causes a high volume of crashes.","name":"Crawler Toolbar","created":"2008-07-08T10:23:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.2","minVersion":"1.2","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.0a1"}]}],"id":"a9818d53-3a6a-8673-04dd-2a16f5644215","last_modified":1482945809232},{"guid":"flashupdate@adobe.com","prefs":[],"schema":1482945112982,"blockID":"i68","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=722526","who":"All Firefox users who have this add-on installed.","why":"Add-on is malware, installed under false pretenses.","name":"Flash Update (malware)","created":"2012-02-21T13:55:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1ba5b46e-790d-5af2-9580-a5f1e6e65522","last_modified":1482945809208},{"guid":"plugin@youtubeplayer.com","prefs":[],"schema":1482945112982,"blockID":"i127","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=783356","who":"All users who have this add-on installed.","why":"This add-on tries to pass as a YouTube player and runs malicious scripts on webpages.","name":"Youtube Facebook Player (malware)","created":"2012-08-16T13:03:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"17a8bece-e2df-a55d-8a72-95faff028b83","last_modified":1482945809185},{"guid":"GifBlock@facebook.com","prefs":[],"schema":1482945112982,"blockID":"i79","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=739482","who":"All Firefox users who have installed this extension.","why":"This extension is malicious and is installed under false pretenses.","name":"Facebook Essentials (malware)","created":"2012-03-27T10:53:33Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"728451e8-1273-d887-37e9-5712b1cc3bff","last_modified":1482945809162},{"guid":"ff-ext@youtube","prefs":[],"schema":1482945112982,"blockID":"i52","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=719296","who":"All Firefox users that have this add-on installed.","why":"This add-on poses as a YouTube player while posting spam into Facebook account.","name":"Youtube player (malware)","created":"2012-01-19T08:26:35Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cd2dd72a-dd52-6752-a0cd-a4b312fd0b65","last_modified":1482945809138},{"guid":"ShopperReports@ShopperReports.com","prefs":[],"schema":1482945112982,"blockID":"i22","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=630191","who":"Users of Shopper Reports version 3.1.22.0 in Firefox 4 and later.","why":"This add-on causes a high volume of Firefox crashes.","name":"Shopper Reports","created":"2011-02-09T17:03:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.1.22.0","minVersion":"3.1.22.0","targetApplication":[]}],"id":"f26b049c-d856-750f-f050-996e6bec7cbb","last_modified":1482945809115},{"guid":"{27182e60-b5f3-411c-b545-b44205977502}","prefs":[],"schema":1482945112982,"blockID":"i16","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=599971","who":"Users of version 1.0 of this add-on in all versions of Firefox.","why":"This add-on has security issues and was blocked at Microsoft's request. For more information, please see this article.","name":"Search Helper Extension (Microsoft)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0","minVersion":"1.0","targetApplication":[]}],"id":"2655f230-11f3-fe4c-7c3d-757d37d5f9a5","last_modified":1482945809092},{"guid":"{841468a1-d7f4-4bd3-84e6-bb0f13a06c64}","prefs":[],"schema":1482945112982,"blockID":"i46","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=712369","who":"Users of all versions of Nectar Search Toolbar in Firefox 9.","why":"This add-on causes crashes and other stability issues in Firefox.","name":"Nectar Search Toolbar","created":"2011-12-20T11:38:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"9.0","minVersion":"9.0a1"}]}],"id":"b660dabd-0dc0-a55c-4b86-416080b345d9","last_modified":1482945809069},{"guid":"support@daemon-tools.cc","prefs":[],"schema":1482945112982,"blockID":"i5","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=459850","who":"Users of Daemon Tools Toolbar version 1.0.0.5 and older for all Mozilla applications.","why":"This add-on causes a high volume of crashes.","name":"Daemon Tools Toolbar","created":"2009-02-13T18:39:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.0.5","minVersion":"0","targetApplication":[]}],"id":"8cabafd3-576a-b487-31c8-ab59e0349a0e","last_modified":1482945809045},{"guid":"{a3a5c777-f583-4fef-9380-ab4add1bc2a8}","prefs":[],"schema":1482945112982,"blockID":"i53","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=719605","who":"All users of Firefox with this add-on installed.","why":"This add-on is being offered as an online movie viewer, when it reality it only inserts scripts and ads into known sites.","name":"Peliculas-FLV (malware)","created":"2012-01-19T15:58:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"2.0.3","minVersion":"2.0.3","targetApplication":[]}],"id":"07bc0962-60da-087b-c3ab-f2a6ab84d81c","last_modified":1482945809021},{"guid":"royal@facebook.com","prefs":[],"schema":1482945112982,"blockID":"i64","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=725777","who":"All Firefox users who have installed this add-on.","why":"Malicious add-on posing as a Facebook tool.","name":"Facebook ! (malware)","created":"2012-02-09T13:24:23Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dd1d2623-0d15-c93e-8fbd-ba07b0299a44","last_modified":1482945808997},{"guid":"{28bfb930-7620-11e1-b0c4-0800200c9a66}","prefs":[],"schema":1482945112982,"blockID":"i108","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=766852","who":"All Firefox user who have this add-on installed.","why":"This is malware disguised as an Adobe product. It spams Facebook pages.","name":"Aplicativo (malware)","created":"2012-06-21T09:24:11Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"908dc4fb-ebc9-cea1-438f-55e4507ba834","last_modified":1482945808973},{"guid":"socialnetworktools@mozilla.doslash.org","prefs":[],"schema":1482945112982,"blockID":"i78","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=739441","who":"All Firefox users who have installed this add-on.","why":"This add-on hijacks the Facebook UI and adds scripts to track users.","name":"Social Network Tools (malware)","created":"2012-03-26T16:46:55Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1064cd25-3b87-64bb-b0a6-2518ad281574","last_modified":1482945808950},{"guid":"youtubeeing@youtuberie.com","prefs":[],"schema":1482945112982,"blockID":"i98","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=759663","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as a Youtube add-on.","name":"Youtube Video Player (malware)","created":"2012-05-30T09:30:14Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3484f860-56e1-28e8-5a70-cdcd5ab9d6ee","last_modified":1482945808927},{"guid":"{3a12052a-66ef-49db-8c39-e5b0bd5c83fa}","prefs":[],"schema":1482945112982,"blockID":"i101","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=761874","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as a Facebook timeline remover.","name":"Timeline Remove (malware)","created":"2012-06-05T18:37:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b01b321b-6628-7166-bd15-52f21a04d8bd","last_modified":1482945808904},{"guid":"pfzPXmnzQRXX6@2iABkVe.com","prefs":[],"schema":1482945112982,"blockID":"i99","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=759950","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware disguised as a Flash Player update.","name":"Flash Player (malware)","created":"2012-05-30T17:10:18Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"29cc4abc-4f52-01f1-eb0b-cad84ba4db13","last_modified":1482945808881},{"guid":"/^(@pluginscribens_firefox|extension@vidscrab.com|firefox@jjj.ee|firefox@shop-reward.de|FxExtPasteNGoHtk@github.lostdj|himanshudotrai@gmail.com|jid0-bigoD0uivzAMmt07zrf3OHqa418@jetpack|jid0-iXbAR01tjT2BsbApyS6XWnjDhy8@jetpack)$/","prefs":[],"schema":1482341309012,"blockID":"i1423","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1325060","who":"All users who have any of the affected versions installed.","why":"A security vulnerability was discovered in old versions of the Add-ons SDK, which is exposed by certain old versions of add-ons. In the case of some add-ons that haven't been updated for a long time, all versions are being blocked.","name":"Various vulnerable add-on versions","created":"2016-12-21T17:21:10Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a58a2836-e4e7-74b5-c109-fa3d41e9ed56","last_modified":1482343886390},{"guid":"/^(pdftoword@addingapps.com|jid0-EYTXLS0GyfQME5irGbnD4HksnbQ@jetpack|jid1-ZjJ7t75BAcbGCX@jetpack)$/","prefs":[],"schema":1482341309012,"blockID":"i1425","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1325060","who":"All users who have any of the affected versions installed.","why":"A security vulnerability was discovered in old versions of the Add-ons SDK, which is exposed by certain old versions of add-ons. In the case of some add-ons that haven't been updated for a long time, all versions are being blocked.","name":"Various vulnerable add-on versions","created":"2016-12-21T17:23:14Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"150e639f-c832-63d0-a775-59313b2e1bf9","last_modified":1482343886365},{"guid":"{cc8f597b-0765-404e-a575-82aefbd81daf}","prefs":[],"schema":1480349193877,"blockID":"i380","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=866332","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts and performs unwanted actions on behalf of the user.","name":"Update My Browser (malware)","created":"2013-06-19T13:03:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4950d7aa-c602-15f5-a7a2-d844182d5cbd","last_modified":1480349217152},{"guid":"extension@FastFreeConverter.com","prefs":[],"schema":1480349193877,"blockID":"i470","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"649dd933-debf-69b7-020f-496c2c9f99c8","last_modified":1480349217071},{"guid":"59D317DB041748fdB89B47E6F96058F3@jetpack","prefs":[],"schema":1480349193877,"blockID":"i694","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1053540","who":"All Firefox users who have this add-ons installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This is a suspicious add-on that appears to be installed without user consent, in violation of the Add-on Guidelines.","name":"JsInjectExtension","created":"2014-08-21T13:46:30Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"75692bd4-18e5-a9be-7ec3-9327e159ef68","last_modified":1480349217005},{"guid":"/^({bfec236d-e122-4102-864f-f5f19d897f5e}|{3f842035-47f4-4f10-846b-6199b07f09b8}|{92ed4bbd-83f2-4c70-bb4e-f8d3716143fe})$/","prefs":[],"schema":1480349193877,"blockID":"i527","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949566","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted and uses multiple IDs.","name":"KeyBar add-on","created":"2013-12-20T14:13:38Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6d68dd97-7965-0a84-8ca7-435aac3c8040","last_modified":1480349216927},{"guid":"support@vide1flash2.com","prefs":[],"schema":1480349193877,"blockID":"i246","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=830159","who":"All Firefox users who have this add-on installed.","why":"This is an add-on that poses as the Adobe Flash Player and runs malicious code in the user's system.","name":"Lastest Adobe Flash Player (malware)","created":"2013-01-14T09:17:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2004fba1-74bf-a072-2a59-6e0ba827b541","last_modified":1480349216871},{"guid":"extension21804@extension21804.com","prefs":[],"schema":1480349193877,"blockID":"i312","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835665","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"Coupon Companion","created":"2013-03-06T14:14:05Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b2cf1256-dadd-6501-1f4e-25902d408692","last_modified":1480349216827},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i602","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:18:05Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.8.*","minVersion":"3.15.8","targetApplication":[]}],"id":"b2b4236d-5d4d-82b2-99cd-00ff688badf1","last_modified":1480349216765},{"guid":"nosquint@urandom.ca","prefs":[],"schema":1480349193877,"blockID":"i1232","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1279561","who":"Users on Firefox 47, and higher, using version 2.1.9.1, and earlier, of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"The add-on is breaking the in-built zoom functionality on Firefox 47.","name":"NoSquint","created":"2016-06-10T17:12:55Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.1.9.1-signed.1-signed","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"47"}]}],"id":"30e0a35c-056a-054b-04f3-ade68b83985a","last_modified":1480349216711},{"guid":"{FE1DEEEA-DB6D-44b8-83F0-34FC0F9D1052}","prefs":[],"schema":1480349193877,"blockID":"i364","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=867670","who":"All Firefox users who have this add-on installed. Users who want to enable the add-on again can do so in the Add-ons Manager.","why":"This add-on is side-installed with other software, and blocks setting reversions attempted by users who want to recover their settings after they are hijacked by other add-ons.","name":"IB Updater","created":"2013-06-10T16:14:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a59b967c-66ca-7ad9-2dc6-d0ad37ded5fd","last_modified":1480349216652},{"guid":"vpyekkifgv@vpyekkifgv.org","prefs":[],"schema":1480349193877,"blockID":"i352","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=872211","who":"All Firefox users who have this add-on installed.","why":"Uses a deceptive name and injects ads into pages without user consent.","name":"SQLlite Addon (malware)","created":"2013-05-14T13:42:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8fd981ab-7ee0-e367-d804-0efe29d63178","last_modified":1480349216614},{"guid":"/^firefox@(albrechto|swiftbrowse|springsmart|storimbo|squirrelweb|betterbrowse|lizardlink|rolimno|browsebeyond|clingclang|weblayers|kasimos|higher-aurum|xaven|bomlabio)\\.(com?|net|org|info|biz)$/","prefs":[],"schema":1480349193877,"blockID":"i549","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=937405","who":"All Firefox users who have one or more of these add-ons installed. If you wish to continue using any of these add-ons, they can be enabled in the Add-ons Manager.","why":"A large amount of add-ons developed by Yontoo are known to be silently installed and otherwise violate the Add-on Guidelines.","name":"Yontoo add-ons","created":"2014-01-30T15:08:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3a124164-b177-805b-06f7-70a358b37e08","last_modified":1480349216570},{"guid":"thefoxonlybetter@quicksaver","prefs":[],"schema":1480349193877,"blockID":"i702","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1053469","who":"All Firefox users who have any of these versions of the add-on installed.","why":"Certain versions of The Fox, Only Better weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"The Fox, Only Better (malicious versions)","created":"2014-08-27T10:05:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"1.10","targetApplication":[]}],"id":"60e54f6a-1b10-f889-837f-60a76a98fccc","last_modified":1480349216512},{"guid":"/@(ft|putlocker|clickmovie|m2k|sharerepo|smarter-?)downloader\\.com$/","prefs":[],"schema":1480349193877,"blockID":"i396","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881454","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our Add-on Guidelines.","name":"PutLockerDownloader and related","created":"2013-06-25T12:48:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e98ba6e3-f2dd-fdee-b106-3e0d2a03cda4","last_modified":1480349216487},{"guid":"my7thfakeid@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i1262","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1295616","who":"Anyone who has this add-on installed.","why":"This add-on is a keylogger that sends the data to a remote server, and goes under the name Real_player.addon.","name":"Remote Keylogger test 0 addon","created":"2016-08-17T10:54:59Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"81b380c0-8092-ea5e-11cd-54c7f563ff5a","last_modified":1480349216460},{"guid":"{f0e59437-6148-4a98-b0a6-60d557ef57f4}","prefs":[],"schema":1480349193877,"blockID":"i304","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=845975","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our installation guidelines and is dropped silently into user's profiles.","name":"WhiteSmoke B","created":"2013-02-27T13:10:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0469e643-1a90-f9be-4aad-b347469adcbe","last_modified":1480349216402},{"os":"Darwin,Linux","guid":"firebug@software.joehewitt.com","prefs":[],"schema":1480349193877,"blockID":"i75","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=718831","who":"All Firefox 9 users on Mac OS X or Linux who have Firebug 1.9.0 installed.","why":"Firebug 1.9.0 creates stability problems on Firefox 9, on Mac OS X and Linux. Upgrading to Firefox 10 or later, or upgrading to Firebug 1.9.1 or later fixes this problem.","name":"Firebug","created":"2012-03-21T16:00:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.9.0","minVersion":"1.9.0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"9.*","minVersion":"9.0a1"}]}],"id":"a1f9f055-ef34-1412-c39f-35605a70d031","last_modified":1480349216375},{"guid":"xz123@ya456.com","prefs":[],"schema":1480349193877,"blockID":"i486","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=939254","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware and is installed silently in violation of the Add-on Guidelines.","name":"BetterSurf (malware)","created":"2013-11-15T13:34:53Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b9825a25-a96c-407e-e656-46a7948e5745","last_modified":1480349215808},{"guid":"{C7AE725D-FA5C-4027-BB4C-787EF9F8248A}","prefs":[],"schema":1480349193877,"blockID":"i424","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=860641","who":"Users of Firefox 23 or later who have RelevantKnowledge 1.0.0.2 or lower.","why":"Old versions of this add-on are causing startup crashes in Firefox 23, currently on the Beta channel. RelevantKnowledge users on Firefox 23 and above should update to version 1.0.0.3 of the add-on.","name":"RelevantKnowledge 1.0.0.2 and lower","created":"2013-07-01T10:45:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.0.2","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"23.0a1"}]}],"id":"c888d167-7970-4b3f-240f-2d8e6f14ded4","last_modified":1480349215779},{"guid":"{5C655500-E712-41e7-9349-CE462F844B19}","prefs":[],"schema":1480349193877,"blockID":"i966","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1175425","who":"All users who have this add-on installed.","why":"This add-on is vulnerable to a cross-site scripting attack, putting users at risk when using it in arbitrary websites.","name":"Quick Translator","created":"2015-07-17T13:42:28Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.1-signed","minVersion":"0","targetApplication":[]}],"id":"f34b00a6-c783-7851-a441-0d80fb1d1031","last_modified":1480349215743},{"guid":"superlrcs@svenyor.net","prefs":[],"schema":1480349193877,"blockID":"i545","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949596","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enable it in the Add-ons Manager.","why":"This add-on is in violation of the Add-on Guidelines, using multiple add-on IDs and potentially doing other unwanted activities.","name":"SuperLyrics","created":"2014-01-30T11:52:42Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"002cd4fa-4c2b-e28b-9220-4a520f4d9ec6","last_modified":1480349215672},{"guid":"mbrsepone@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i479","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=937331","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Mozilla Lightweight Pack (malware)","created":"2013-11-11T15:42:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0549645e-5f50-5089-1f24-6e7d3bfab8e0","last_modified":1480349215645},{"guid":"/^brasilescape.*\\@facebook\\.com$/","prefs":[],"schema":1480349193877,"blockID":"i453","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=918566","who":"All Firefox users who have these add-ons installed.","why":"This is a group of malicious add-ons that use deceitful names like \"Facebook Video Pack\" or \"Mozilla Service Pack\" and hijack Facebook accounts.","name":"Brasil Escape (malware)","created":"2013-09-20T09:54:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8e6b1176-1794-2117-414e-f0821443f27b","last_modified":1480349215591},{"guid":"foxyproxy-basic@eric.h.jung","prefs":[],"schema":1480349193877,"blockID":"i952","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1183890","who":"All users who have this add-on installed on Thunderbird 38 and above.","why":"This add-on is causing consistent startup crashes on Thunderbird 38 and above.","name":"FoxyProxy Basic for Thunderbird","created":"2015-07-15T09:35:50Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.5.5","minVersion":"0","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"38.0a2"},{"guid":"{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}","maxVersion":"*","minVersion":"2.35"}]}],"id":"81658491-feda-2ed3-3c6c-8e60c2b73aee","last_modified":1480349215536},{"guid":"mbroctone@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i476","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=936590","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks the users' Facebook account.","name":"Mozilla Storage Service (malware)","created":"2013-11-08T15:32:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"92198396-8756-8d09-7f18-a68d29894f71","last_modified":1480349215504},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i616","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:24:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.28.*","minVersion":"3.15.28","targetApplication":[]}],"id":"f11b485f-320e-233c-958b-a63377024fad","last_modified":1480349215479},{"guid":"/^({e9df9360-97f8-4690-afe6-996c80790da4}|{687578b9-7132-4a7a-80e4-30ee31099e03}|{46a3135d-3683-48cf-b94c-82655cbc0e8a}|{49c795c2-604a-4d18-aeb1-b3eba27e5ea2}|{7473b6bd-4691-4744-a82b-7854eb3d70b6}|{96f454ea-9d38-474f-b504-56193e00c1a5})$/","prefs":[],"schema":1480349193877,"blockID":"i494","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=776404","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on changes search settings without user interaction, and fails to reset them after it is removed. It also uses multiple add-on IDs for no apparent reason. This violates our Add-on Guidelines.","name":"uTorrent and related","created":"2013-12-02T14:52:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"485210d0-8e69-3436-536f-5d1deeea4167","last_modified":1480349215454},{"guid":"{EB7508CA-C7B2-46E0-8C04-3E94A035BD49}","prefs":[],"schema":1480349193877,"blockID":"i162","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=799266","who":"All Firefox users who have installed any of these add-ons.","why":"This block covers a number of malicious add-ons that deceive users, using names like \"Mozilla Safe Browsing\" and \"Translate This!\", and claiming they are developed by \"Mozilla Corp.\". They hijack searches and redirects users to pages they didn't intend to go to.\r\n\r\nNote: this block won't be active until bug 799266 is fixed.","name":"Mozilla Safe Browsing and others (Medfos malware)","created":"2012-10-11T12:25:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"07566aa3-4ff9-ac4f-9de9-71c77454b4da","last_modified":1480349215428},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i614","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:23:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.26.*","minVersion":"3.15.26","targetApplication":[]}],"id":"ede541f3-1748-7b33-9bd6-80e2f948e14f","last_modified":1480349215399},{"guid":"/^({976cd962-e0ca-4337-aea7-d93fae63a79c}|{525ba996-1ce4-4677-91c5-9fc4ead2d245}|{91659dab-9117-42d1-a09f-13ec28037717}|{c1211069-1163-4ba8-b8b3-32fc724766be})$/","prefs":[],"schema":1480349193877,"blockID":"i522","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947485","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by being silently installed and using multiple add-on IDs.","name":"appbario7","created":"2013-12-20T13:15:33Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"580aed26-dc3b-eef8-fa66-a0a402447b7b","last_modified":1480349215360},{"guid":"jid0-O6MIff3eO5dIGf5Tcv8RsJDKxrs@jetpack","prefs":[],"schema":1480349193877,"blockID":"i552","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=974041","who":"All Firefox users who have this extension installed.","why":"This extension is malware that attempts to make it impossible for a second extension and itself to be disabled, and also forces the new tab page to have a specific URL.","name":"Extension_Protected (malware)","created":"2014-02-19T15:26:37Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e53063b4-5702-5b66-c860-d368cba4ccb6","last_modified":1480349215327},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i604","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:18:58Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.11.*","minVersion":"3.15.10","targetApplication":[]}],"id":"b910f779-f36e-70e1-b17a-8afb75988c03","last_modified":1480349215302},{"guid":"brasilescapefive@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i483","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=938473","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Facebook Video Pack (malware)","created":"2013-11-14T09:37:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"85ee7840-f262-ad30-eb91-74b3248fd13d","last_modified":1480349215276},{"guid":"brasilescapeeight@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i482","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=938476","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Mozilla Security Pack (malware)","created":"2013-11-14T09:36:55Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"457a5722-be90-5a9f-5fa0-4c753e9f324c","last_modified":1480349215249},{"guid":"happylyrics@hpyproductions.net","prefs":[],"schema":1480349193877,"blockID":"i370","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881815","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into Firefox without the users' consent, violating our Add-on Guidelines.","name":"Happy Lyrics","created":"2013-06-11T15:42:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"730e616d-94a7-df0c-d31a-98b7875d60c2","last_modified":1480349215225},{"guid":"search-snacks@search-snacks.com","prefs":[],"schema":1480349193877,"blockID":"i872","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1082733","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our Add-on Guidelines.","name":"Search Snacks","created":"2015-03-04T14:37:33Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7567b06f-98fb-9400-8007-5d0357c345d9","last_modified":1480349215198},{"os":"WINNT","guid":"{ABDE892B-13A8-4d1b-88E6-365A6E755758}","prefs":[],"schema":1480349193877,"blockID":"i107","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=764210","who":"All Firefox users on Windows who have the RealPlayer Browser Record extension installed.","why":"The RealPlayer Browser Record extension is causing significant problems on Flash video sites like YouTube. This block automatically disables the add-on, but users can re-enable it from the Add-ons Manager if necessary.\r\n\r\nThis block shouldn't disable any other RealPlayer plugins, so watching RealPlayer content on the web should be unaffected.\r\n\r\nIf you still have problems playing videos on YouTube or elsewhere, please visit our support site for help.","name":"RealPlayer Browser Record Plugin","created":"2012-06-14T13:54:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"15.0.5","minVersion":"0","targetApplication":[]}],"id":"e3b89e55-b35f-8694-6f0e-f856e57a191d","last_modified":1480349215173},{"guid":"/(\\{7aeae561-714b-45f6-ace3-4a8aed6e227b\\})|(\\{01e86e69-a2f8-48a0-b068-83869bdba3d0\\})|(\\{77f5fe49-12e3-4cf5-abb4-d993a0164d9e\\})/","prefs":[],"schema":1480349193877,"blockID":"i436","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=891606","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow the Add-on Guidelines, changing Firefox default settings and not reverting them on uninstall. If you want to continue using this add-on, it can be enabled in the Add-ons Manager.","name":"Visual Bee","created":"2013-08-09T15:04:44Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ad6dc811-ab95-46fa-4bff-42186c149980","last_modified":1480349215147},{"guid":"amo-validator-bypass@example.com","prefs":[],"schema":1480349193877,"blockID":"i1058","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1227605","who":"All users who install this add-on.","why":"This add-on is a proof of concept of a malicious add-on that bypasses the code validator.","name":" AMO Validator Bypass","created":"2015-11-24T09:03:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"86e38e3e-a729-b5a2-20a8-4738b376eea6","last_modified":1480349214743},{"guid":"6lIy@T.edu","prefs":[],"schema":1480349193877,"blockID":"i852","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128269","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the Add-on Guidelines.","name":"unIsaless","created":"2015-02-09T15:30:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"39798bc2-9c75-f172-148b-13f3ca1dde9b","last_modified":1480349214613},{"guid":"{394DCBA4-1F92-4f8e-8EC9-8D2CB90CB69B}","prefs":[],"schema":1480349193877,"blockID":"i100","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=761339","who":"All Firefox users who have Lightshot 2.5.0 installed.","why":"The Lightshot add-on, version 2.5.0, is causing widespread and frequent crashes in Firefox. Lightshot users are strongly recommended to update to version 2.6.0 as soon as possible.","name":"Lightshot","created":"2012-06-05T09:24:51Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.5.0","minVersion":"2.5.0","targetApplication":[]}],"id":"57829ea2-5a95-1b6e-953c-7c4a7b3b21ac","last_modified":1480349214568},{"guid":"{a7f2cb14-0472-42a1-915a-8adca2280a2c}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i686","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033809","who":"All users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-on Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"HomeTab","created":"2014-08-06T16:35:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"33a8f403-b2c8-cadf-e1ba-40b39edeaf18","last_modified":1480349214537},{"guid":"{CA8C84C6-3918-41b1-BE77-049B2BDD887C}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i862","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131230","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our Add-on Guidelines.","name":"Ebay Shopping Assistant by Spigot","created":"2015-02-26T12:51:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9a9d6da2-90a1-5b71-8b24-96492d57dfd1","last_modified":1480349214479},{"guid":"update@firefox.com","prefs":[],"schema":1480349193877,"blockID":"i374","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=781088","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks Facebook accounts.","name":"Premium Update (malware)","created":"2013-06-18T13:58:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bb388413-60ea-c9d6-9a3b-c90df950c319","last_modified":1480349214427},{"guid":"sqlmoz@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i350","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=871610","who":"All Firefox users who have this extension installed.","why":"This extension is malware posing as Mozilla software. It hijacks Facebook accounts and spams other Facebook users.","name":"Mozilla Service Pack (malware)","created":"2013-05-13T09:43:07Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"715082e8-7a30-b27b-51aa-186c38e078f6","last_modified":1480349214360},{"guid":"iobitapps@mybrowserbar.com","prefs":[],"schema":1480349193877,"blockID":"i562","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=948695","who":"All Firefox users who have this add-on installed. If you wish to continue using it, it can be enabled in the Add-ons Manager.","why":"This add-on is installed silently and changes users settings without reverting them, in violation of the Add-on Guidelines.","name":"IObit Apps Toolbar","created":"2014-02-27T10:00:54Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"be9a54f6-20c1-7dee-3aea-300b336b2ae5","last_modified":1480349214299},{"guid":"{9e09ac65-43c0-4b9d-970f-11e2e9616c55}","prefs":[],"schema":1480349193877,"blockID":"i376","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=857847","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware that hijacks Facebook accounts and posts content on it.","name":"The Social Networks (malware)","created":"2013-06-18T14:16:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"753638b4-65ca-6d71-f1f5-ce32ba2edf3b","last_modified":1480349214246},{"guid":"mozillahmpg@mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i140","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=791867","who":"All Firefox users who have installed this add-on.","why":"This is a malicious add-on that tries to monetize on its users by embedding unauthorized affiliate codes on shopping websites, and sometimes redirecting users to alternate sites that could be malicious in nature.","name":"Google YouTube HD Player (malware)","created":"2012-09-17T16:04:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"98150e2e-cb45-1fee-8458-28d3602ec2ec","last_modified":1480349214216},{"guid":"astrovia@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i489","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=942699","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Facebook Security Service (malware)","created":"2013-11-25T12:40:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6f365ff4-e48f-8a06-d19d-55e19fba81f4","last_modified":1480349214157},{"guid":"{bbea93c6-64a3-4a5a-854a-9cc61c8d309e}","prefs":[],"schema":1480349193877,"blockID":"i1126","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251940","who":"All users who have this add-on installed.","why":"This is a malicious add-on that disables various security checks in Firefox.","name":"Tab Extension (malware)","created":"2016-02-29T21:58:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5acb9dcc-59d4-46d1-2a11-1194c4948239","last_modified":1480349214066},{"guid":"ffxtlbr@iminent.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i628","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=866943","who":"All Firefox users who have any of these add-ons installed. Users who wish to continue using them can enable them in the Add-ons Manager.","why":"These add-ons have been silently installed repeatedly, and change settings without user consent, in violation of the Add-on Guidelines.","name":"Iminent Minibar","created":"2014-06-26T15:47:15Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4387ad94-8500-d74d-68e3-20564a9aac9e","last_modified":1480349214036},{"guid":"{28387537-e3f9-4ed7-860c-11e69af4a8a0}","prefs":[],"schema":1480349193877,"blockID":"i40","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=665775","who":"Users of MediaBar versions 4.3.1.00 and below in all versions of Firefox.","why":"This add-on causes a high volume of crashes and is incompatible with certain versions of Firefox.","name":"MediaBar (2)","created":"2011-07-19T10:19:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.3.1.00","minVersion":"0.1","targetApplication":[]}],"id":"ff95664b-93e4-aa73-ac20-5ffb7c87d8b7","last_modified":1480349214002},{"guid":"{41e5ef7a-171d-4ab5-8351-951c65a29908}","prefs":[],"schema":1480349193877,"blockID":"i784","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"HelpSiteExpert","created":"2014-11-14T14:37:56Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0c05a0bb-30b4-979e-33a7-9f3955eba17d","last_modified":1480349213962},{"guid":"/^({2d7886a0-85bb-4bf2-b684-ba92b4b21d23}|{2fab2e94-d6f9-42de-8839-3510cef6424b}|{c02397f7-75b0-446e-a8fa-6ef70cfbf12b}|{8b337819-d1e8-48d3-8178-168ae8c99c36}|firefox@neurowise.info|firefox@allgenius.info)$/","prefs":[],"schema":1480349193877,"blockID":"i762","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1082599","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"These add-ons are silently installed into users' systems, in violation of the Add-on Guidelines.","name":"SaveSense, neurowise, allgenius","created":"2014-10-17T16:58:10Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c5439f55-ace5-ad73-1270-017c0ba7b2ce","last_modified":1480349213913},{"guid":"{462be121-2b54-4218-bf00-b9bf8135b23f}","prefs":[],"schema":1480349193877,"blockID":"i226","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=812303","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently side-installed by other software, and doesn't do much more than changing the users' settings, without reverting them on removal.","name":"WhiteSmoke","created":"2012-11-29T16:27:36Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"994c6084-e864-0e4e-ac91-455083ee46c7","last_modified":1480349213879},{"guid":"firefox@browsefox.com","prefs":[],"schema":1480349193877,"blockID":"i546","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=936244","who":"All Firefox users who have this add-on installed. If you want to continue using it, it can be enabled in the Add-ons Manager.","why":"This add-on is silently installed, in violation of the Add-on Guidelines.","name":"BrowseFox","created":"2014-01-30T12:26:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"407d8c84-8939-cd28-b284-9b680e529bf6","last_modified":1480349213853},{"guid":"{6926c7f7-6006-42d1-b046-eba1b3010315}","prefs":[],"schema":1480349193877,"blockID":"i382","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844956","who":"All Firefox users who have this add-on installed. Those who wish to continue using it can enable it again in the Add-ons Manager.","why":"This add-on is silently installed, bypassing the Firefox opt-in screen and violating our Add-on Guidelines.","name":"appbario7","created":"2013-06-25T12:05:34Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2367bd94-2bdd-c615-de89-023ba071a443","last_modified":1480349213825},{"guid":"faststartff@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i866","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131217","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our Add-on Guidelines.","name":"Fast Start","created":"2015-02-26T13:12:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9e730bca-c7d1-da82-64f6-c74de216cb7d","last_modified":1480349213799},{"guid":"05dd836e-2cbd-4204-9ff3-2f8a8665967d@a8876730-fb0c-4057-a2fc-f9c09d438e81.com","prefs":[],"schema":1480349193877,"blockID":"i468","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935135","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be part of a Trojan software package.","name":"Trojan.DownLoader9.50268 (malware)","created":"2013-11-07T14:43:39Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2fd53d9b-7096-f1fb-fbcb-2b40a6193894","last_modified":1480349213774},{"guid":"jid1-0xtMKhXFEs4jIg@jetpack","prefs":[],"schema":1480349193877,"blockID":"i586","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011286","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware installed without user consent.","name":"ep (malware)","created":"2014-06-03T15:50:19Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"50ca2179-83ab-1817-163d-39ed2a9fbd28","last_modified":1480349213717},{"guid":"/^({16e193c8-1706-40bf-b6f3-91403a9a22be}|{284fed43-2e13-4afe-8aeb-50827d510e20}|{5e3cc5d8-ed11-4bed-bc47-35b4c4bc1033}|{7429e64a-1fd4-4112-a186-2b5630816b91}|{8c9980d7-0f09-4459-9197-99b3e559660c}|{8f1d9545-0bb9-4583-bb3c-5e1ac1e2920c})$/","prefs":[],"schema":1480349193877,"blockID":"i517","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947509","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by silently installing the add-on, and using multiple add-on IDs.","name":"Re-markit","created":"2013-12-20T12:54:33Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e88a28ab-5569-f06d-b0e2-15c51bb2a4b7","last_modified":1480349213344},{"guid":"safebrowse@safebrowse.co","prefs":[],"schema":1480349193877,"blockID":"i782","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1097696","who":"All Firefox users who have this add-on installed.","why":"This add-on loads scripts with malicious code that appears intended to steal usernames, passwords, and other private information.","name":"SafeBrowse","created":"2014-11-12T14:20:44Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"edd81c91-383b-f041-d8f6-d0b9a90230bd","last_modified":1480349213319},{"guid":"{af95cc15-3b9b-45ae-8d9b-98d08eda3111}","prefs":[],"schema":1480349193877,"blockID":"i492","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=945126","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Facebook (malware)","created":"2013-12-02T12:45:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7064e9e2-fba4-7b57-86d7-6f4afbf6f560","last_modified":1480349213294},{"guid":"{84a93d51-b7a9-431e-8ff8-d60e5d7f5df1}","prefs":[],"schema":1480349193877,"blockID":"i744","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080817","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on appears to be silently installed into users' systems, and changes settings without consent, in violation of the Add-on Guidelines.","name":"Spigot Shopping Assistant","created":"2014-10-17T15:47:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dbc7ef8b-2c48-5dae-73a0-f87288c669f0","last_modified":1480349213264},{"guid":"{C3949AC2-4B17-43ee-B4F1-D26B9D42404D}","prefs":[],"schema":1480349193877,"blockID":"i918","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1170633","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-02T09:58:16Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"7f2a68f3-aa8a-ae41-1e48-d1f8f63d53c7","last_modified":1480349213231},{"guid":"831778-poidjao88DASfsAnindsd@jetpack","prefs":[],"schema":1480349193877,"blockID":"i972","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1190962","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Video patch (malware)","created":"2015-08-04T15:18:03Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"39471221-6926-e11b-175a-b28424d49bf6","last_modified":1480349213194},{"guid":"lbmsrvfvxcblvpane@lpaezhjez.org","prefs":[],"schema":1480349193877,"blockID":"i342","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=863385","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines. It also appears to install itself both locally and globally, producing a confusing uninstall experience.","name":"RapidFinda","created":"2013-05-06T16:18:14Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"98fb4536-07a4-d03a-f7c5-945acecc8203","last_modified":1480349213128},{"guid":"{babb9931-ad56-444c-b935-38bffe18ad26}","prefs":[],"schema":1480349193877,"blockID":"i499","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=946086","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Facebook Credits (malware)","created":"2013-12-04T15:22:02Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"be1d19fa-1662-322a-13e6-5fa5474f33a7","last_modified":1480349213100},{"guid":"{18d5a8fe-5428-485b-968f-b97b05a92b54}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i802","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080839","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and is considered malware, in violation of the Add-on Guidelines.","name":"Astromenda Search Addon","created":"2014-12-15T10:52:49Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bc846147-cdc1-141f-5846-b705c48bd6ed","last_modified":1480349213074},{"guid":"{b6ef1336-69bb-45b6-8cba-e578fc0e4433}","prefs":[],"schema":1480349193877,"blockID":"i780","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Power-SW","created":"2014-11-12T14:00:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3b080157-2900-d071-60fe-52b0aa376cf0","last_modified":1480349213024},{"guid":"info@wxdownloadmanager.com","prefs":[],"schema":1480349193877,"blockID":"i196","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806451","who":"All Firefox users who have these add-ons installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Codec (malware)","created":"2012-11-05T09:24:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b62597d0-d2cb-d597-7358-5143a1d13658","last_modified":1480349212999},{"os":"WINNT","guid":"{C3949AC2-4B17-43ee-B4F1-D26B9D42404D}","prefs":[],"schema":1480349193877,"blockID":"i111","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=771802","who":"All Firefox users on Windows who have the RealPlayer Browser Record extension installed.","why":"The RealPlayer Browser Record extension is causing significant problems on Flash video sites like YouTube. This block automatically disables the add-on, but users can re-enable it from the Add-ons Manager if necessary.\r\n\r\nThis block shouldn't disable any other RealPlayer plugins, so watching RealPlayer content on the web should be unaffected.\r\n\r\nIf you still have problems playing videos on YouTube or elsewhere, please visit our support site for help.","name":"RealPlayer Browser Record Plugin","created":"2012-07-10T15:28:16Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"15.0.5","minVersion":"0","targetApplication":[]}],"id":"d3f96257-7635-555f-ef48-34d426322992","last_modified":1480349212971},{"guid":"l@AdLJ7uz.net","prefs":["browser.startup.homepage"],"schema":1480349193877,"blockID":"i728","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes user settings without consent, in violation of the Add-on Guidelines","name":"GGoSavee","created":"2014-10-16T16:34:54Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e6bfa340-7d8a-1627-5cdf-40c0c4982e9d","last_modified":1480349212911},{"guid":"{6b2a75c8-6e2e-4267-b955-43e25b54e575}","prefs":[],"schema":1480349193877,"blockID":"i698","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1052611","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"BrowserShield","created":"2014-08-21T15:46:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"492e4e43-f89f-da58-9c09-d99528ee9ca9","last_modified":1480349212871},{"guid":"/^({65f9f6b7-2dae-46fc-bfaf-f88e4af1beca}|{9ed31f84-c8b3-4926-b950-dff74047ff79}|{0134af61-7a0c-4649-aeca-90d776060cb3}|{02edb56b-9b33-435b-b7df-b2843273a694}|{da51d4f6-3e7e-4ef8-b400-9198e0874606}|{b24577db-155e-4077-bb37-3fdd3c302bb5})$/","prefs":[],"schema":1480349193877,"blockID":"i525","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949566","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted and using multiple IDs.","name":"KeyBar add-on","created":"2013-12-20T14:11:14Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"78562d79-9a64-c259-fb63-ce24e29bb141","last_modified":1480349212839},{"guid":"adsremoval@adsremoval.net","prefs":[],"schema":1480349193877,"blockID":"i560","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=962793","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes various user settings, in violation of the Add-on Guidelines.","name":"Ad Removal","created":"2014-02-27T09:57:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4d150ad4-dc22-9790-07a9-36e0a23f857f","last_modified":1480349212798},{"guid":"firefoxaddon@youtubeenhancer.com","prefs":[],"schema":1480349193877,"blockID":"i445","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=911966","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that imitates a popular video downloader extension, and attempts to hijack Facebook accounts. The add-on available in the add-ons site is safe to use.","name":"YouTube Enhancer Plus (malware)","created":"2013-09-04T16:53:37Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"208.7.0","minVersion":"208.7.0","targetApplication":[]}],"id":"41d75d3f-a57e-d5ad-b95b-22f5fa010b4e","last_modified":1480349212747},{"guid":"suchpony@suchpony.de","prefs":[],"schema":1480349193877,"blockID":"i1264","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have version 1.6.7 or less of this add-on installed.","why":"Old versions of this add-on contained code from YouTube Unblocker, which was originally blocked due to malicious activity. Version 1.6.8 is now okay.","name":"Suchpony (pre 1.6.8)","created":"2016-08-24T10:48:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"1.6.7","minVersion":"0","targetApplication":[]}],"id":"1bbf00f3-53b5-3777-43c7-0a0b11f9c433","last_modified":1480349212719},{"guid":"{336D0C35-8A85-403a-B9D2-65C292C39087}","prefs":[],"schema":1480349193877,"blockID":"i224","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=812292","who":"All Firefox users who have this add-on installed.","why":"This add-on is side-installed with other software, and blocks setting reversions attempted by users who want to recover their settings after they are hijacked by other add-ons.","name":"IB Updater","created":"2012-11-29T16:22:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c87666e6-ec9a-2f1e-ad03-a722d2fa2a25","last_modified":1480349212655},{"guid":"G4Ce4@w.net","prefs":["browser.startup.homepage"],"schema":1480349193877,"blockID":"i718","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems and changes settings without consent, in violation of the Add-on Guidelines.","name":"YoutUbeAdBlaocke","created":"2014-10-02T12:21:22Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3e1e9322-93e9-4ce1-41f5-46ad4ef1471b","last_modified":1480349212277},{"guid":"extension@Fast_Free_Converter.com","prefs":[],"schema":1480349193877,"blockID":"i533","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949597","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by silently installing it.","name":"FastFreeConverter","created":"2013-12-20T15:04:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"726f5645-c0bf-66dc-a97a-d072b46e63e7","last_modified":1480349212247},{"guid":"@stopad","prefs":[],"schema":1480349193877,"blockID":"i1266","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1298780","who":"Users who have version 0.0.4 and earlier of the add-on installed.","why":"Stop Ads sends each visited url to a third party server which is not necessary for the add-on to work or disclosed in a privacy policy or user opt-in. Versions 0.0.4 and earlier are affected.","name":"Stop Ads Addon","created":"2016-08-30T12:24:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.0.4","minVersion":"0","targetApplication":[]}],"id":"3d1893dd-2092-d1f7-03f3-9629b7d7139e","last_modified":1480349212214},{"guid":"703db0db-5fe9-44b6-9f53-c6a91a0ad5bd@7314bc82-969e-4d2a-921b-e5edd0b02cf1.com","prefs":[],"schema":1480349193877,"blockID":"i519","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947509","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by silently installing the add-on, and using multiple add-on IDs.","name":"Re-markit","created":"2013-12-20T12:57:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a27d0f9f-7708-3d5f-82e1-e3f29e6098a0","last_modified":1480349212183},{"guid":"imbaty@taringamp3.com","prefs":[],"schema":1480349193877,"blockID":"i662","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that attempts to hide itself by impersonating the Adobe Flash plugin.","name":"Taringa MP3 / Adobe Flash","created":"2014-07-10T15:39:44Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f43859d4-46b7-c028-4738-d40a73ddad7b","last_modified":1480349212157},{"guid":"{13c9f1f9-2322-4d5c-81df-6d4bf8476ba4}","prefs":[],"schema":1480349193877,"blockID":"i348","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=867359","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines. It also fails to revert settings changes on removal.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"mywebsearch","created":"2013-05-08T15:55:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"372cf3df-0810-85d8-b5d7-faffff309a11","last_modified":1480349212102},{"guid":"{a6e67e6f-8615-4fe0-a599-34a73fc3fba5}","prefs":[],"schema":1480349193877,"blockID":"i346","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=867333","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines. Also, it doesn't reset its settings changes on uninstall.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Startnow","created":"2013-05-06T17:06:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1caf911c-ff2f-b0f6-0d32-29ef74be81bb","last_modified":1480349212077},{"guid":"garg_sms@yahoo.in","prefs":[],"schema":1480349193877,"blockID":"i652","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the Save My YouTube Day! extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"Save My YouTube Day!, version 67.9","created":"2014-07-10T15:17:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"67.9","minVersion":"67.9","targetApplication":[]}],"id":"e50c0189-a7cd-774d-702b-62eade1bf18e","last_modified":1480349212044},{"guid":"9518042e-7ad6-4dac-b377-056e28d00c8f@f1cc0a13-4df1-4d66-938f-088db8838882.com","prefs":[],"schema":1480349193877,"blockID":"i308","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=846455","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed, bypassing our third-party opt-in screen, in violation of our Add-on Guidelines.","name":"Solid Savings","created":"2013-02-28T13:48:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"df25ee07-74d4-ccd9-dbbe-7eb053015144","last_modified":1480349212020},{"guid":"jufa098j-LKooapd9jasJ9jliJsd@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1000","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1201163","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Secure Video (malware)","created":"2015-09-07T14:00:20Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c3a98025-0f4e-3bb4-b475-97329e7b1426","last_modified":1480349211979},{"guid":"{46eddf51-a4f6-4476-8d6c-31c5187b2a2f}","prefs":[],"schema":1480349193877,"blockID":"i750","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963788","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Slick Savings","created":"2014-10-17T16:17:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9b4ef650-e1ad-d55f-c420-4f26dbb4139c","last_modified":1480349211953},{"guid":"{DAC3F861-B30D-40dd-9166-F4E75327FAC7}","prefs":[],"schema":1480349193877,"blockID":"i924","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1173154","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-09T15:28:17Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"be57998b-9e4d-1040-e6bb-ed9de056338d","last_modified":1480349211896},{"guid":"JMLv@njMaHh.org","prefs":[],"schema":1480349193877,"blockID":"i790","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1103516","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"YouttubeAdBlocke","created":"2014-11-24T14:14:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"070d5747-137d-8500-8713-cfc6437558a3","last_modified":1480349211841},{"guid":"istart_ffnt@gmail.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i888","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1152553","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-on Manager.","why":"This add-on appears to be malware, being silently installed and hijacking user settings, in violation of the Add-on Guidelines.","name":"Istart","created":"2015-04-10T16:27:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"32fad759-38d9-dad9-2295-e44cc6887040","last_modified":1480349211785},{"guid":"gystqfr@ylgga.com","prefs":[],"schema":1480349193877,"blockID":"i449","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=912742","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines. It is installed bypassing the Firefox opt-in screen, and manipulates settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Define Ext","created":"2013-09-13T16:19:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8fe8f509-c530-777b-dccf-d10d58ae78cf","last_modified":1480349211748},{"guid":"e9d197d59f2f45f382b1aa5c14d82@8706aaed9b904554b5cb7984e9.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i844","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128324","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and attempts to change user settings like the home page and default search, in violation of the Add-on Guidelines.","name":"Sense","created":"2015-02-06T15:01:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f8f8695c-a356-a1d6-9291-502b377c63c2","last_modified":1480349211713},{"guid":"{184AA5E6-741D-464a-820E-94B3ABC2F3B4}","prefs":[],"schema":1480349193877,"blockID":"i968","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1164243","who":"All users who have this add-on installed.","why":"This is a malicious add-on that poses as a Java extension.","name":"Java String Helper (malware)","created":"2015-08-04T09:41:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fac1d2cb-eed7-fcef-5d5a-43c556371bd7","last_modified":1480349211687},{"guid":"7d51fb17-b199-4d8f-894e-decaff4fc36a@a298838b-7f50-4c7c-9277-df6abbd42a0c.com","prefs":[],"schema":1480349193877,"blockID":"i455","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=919792","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks Facebook accounts and posts spam to the users' friends.","name":"Video Console (malware)","created":"2013-09-25T10:28:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dd4d2e17-4ce6-36b0-3035-93e9cc5846d4","last_modified":1480349211660},{"guid":"prositez@prz.com","prefs":[],"schema":1480349193877,"blockID":"i764","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"ProfSitez","created":"2014-10-29T16:43:15Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"684ad4fd-2cbd-ce2a-34cd-bc66b20ac8af","last_modified":1480349211628},{"guid":"/^toolbar[0-9]*@findwide\\.com$/","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i874","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1082758","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our Add-on Guidelines.\r\n","name":"FindWide Toolbars","created":"2015-03-04T14:54:10Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a317ad9f-af4d-e086-4afd-cd5eead1ed62","last_modified":1480349211601},{"guid":"{25D77636-38B1-1260-887C-2D4AFA92D6A4}","prefs":[],"schema":1480349193877,"blockID":"i536","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=959279","who":"All Firefox users who have this extension installed.","why":"This is a malicious extension that is installed alongside a trojan. It hijacks searches on selected sites.","name":"Microsoft DirectInput Object (malware)","created":"2014-01-13T10:36:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cd174588-940e-f5b3-12ea-896c957bd4b3","last_modified":1480349211555},{"guid":"fdm_ffext@freedownloadmanager.org","prefs":[],"schema":1480349193877,"blockID":"i216","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=789700","who":"All Firefox users who have installed version 1.5.7.5 of the Free Download Manager extension.","why":"Version 1.5.7.5 of the Free Download Manager extension is causing frequent crashes in recent versions of Firefox. Version 1.5.7.6 corrects this problem, but it is currently not available on addons.mozilla.org. We recommend all users to update to the new version once it becomes available.","name":"Free Download Manager","created":"2012-11-27T12:47:51Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.5.7.5","minVersion":"1.5.7.5","targetApplication":[]}],"id":"736417a2-6161-9973-991a-aff566314733","last_modified":1480349211163},{"guid":"{badea1ae-72ed-4f6a-8c37-4db9a4ac7bc9}","prefs":[],"schema":1480349193877,"blockID":"i543","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963809","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enable it in the Add-ons Manager.","why":"This add-on is apparently malware that is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Address Bar Search","created":"2014-01-28T14:28:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8c1dd68e-7df6-0c37-2f41-107745a7be54","last_modified":1480349211119},{"guid":"addon@gemaoff","prefs":[],"schema":1480349193877,"blockID":"i1230","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"These add-ons are copies of YouTube Unblocker, which was originally blocked due to malicious activity.","name":"YouTube Unblocker (addon@gemaoff)","created":"2016-06-08T16:15:11Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6bc49e9f-322f-9952-15a6-0a723a61c2d9","last_modified":1480349211044},{"guid":"{d87d56b2-1379-49f4-b081-af2850c79d8e}","prefs":[],"schema":1480349193877,"blockID":"i726","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080835","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Website Xplorer Lite","created":"2014-10-13T16:01:03Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7b0895b4-dd4f-1c91-f4e3-31afdbdf3178","last_modified":1480349211007},{"guid":"OKitSpace@OKitSpace.es","prefs":[],"schema":1480349193877,"blockID":"i469","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:35:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6a11aa68-0dae-5524-cc96-a5053a31c466","last_modified":1480349210982},{"guid":"{c96d1ae6-c4cf-4984-b110-f5f561b33b5a}","prefs":[],"schema":1480349193877,"blockID":"i808","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Better Web","created":"2014-12-19T09:36:52Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0413d46b-8205-d9e0-65df-4caa3e6355c4","last_modified":1480349210956},{"guid":"lightningnewtab@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i554","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=974041","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, it can be enabled in the Add-ons Manager.","why":"This add-on is silently installed in Firefox and includes a companion extension that also performs malicious actions.","name":"Lightning SpeedDial","created":"2014-02-19T15:28:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"875513e1-e6b1-a383-2ec5-eb4deb87eafc","last_modified":1480349210931},{"guid":"/^ext@bettersurfplus/","prefs":[],"schema":1480349193877,"blockID":"i506","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=939254","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware and is installed silently in violation of the Add-on Guidelines.","name":"BetterSurf (malware)","created":"2013-12-10T15:10:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b4da06d2-a0fd-09b6-aadb-7e3b29c3be3a","last_modified":1480349210905},{"guid":"thefoxonlybetter@quicksaver","prefs":[],"schema":1480349193877,"blockID":"i706","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1053469","who":"All Firefox users who have any of these versions of the add-on installed.","why":"Certain versions of The Fox, Only Better weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"The Fox, Only Better (malicious versions)","created":"2014-08-27T14:50:32Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"1.6.160","minVersion":"1.6.160","targetApplication":[]}],"id":"bb2b2114-f8e7-511d-04dc-abc8366712cc","last_modified":1480349210859},{"guid":"CortonExt@ext.com","prefs":[],"schema":1480349193877,"blockID":"i336","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=864551","who":"All Firefox users who have this add-on installed.","why":"This add-on is reported to be installed without user consent, with a non-descriptive name, and ties a number of browser features to Amazon URLs, probably monetizing on affiliate codes.","name":"CortonExt","created":"2013-04-22T16:10:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a5bdd05d-eb4c-ce34-9909-a677b4322384","last_modified":1480349210805},{"guid":"1chtw@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i430","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=901770","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that uses a deceptive name and hijacks social networks.","name":" Mozilla Service Pack (malware)","created":"2013-08-05T16:42:24Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bf1e31c7-ba50-1075-29ae-47368ac1d6de","last_modified":1480349210773},{"guid":"lrcsTube@hansanddeta.com","prefs":[],"schema":1480349193877,"blockID":"i344","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=866944","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"LyricsTube","created":"2013-05-06T16:44:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"424b9f39-d028-b1fb-d011-d8ffbbd20fe9","last_modified":1480349210718},{"guid":"{341f4dac-1966-47ff-aacf-0ce175f1498a}","prefs":[],"schema":1480349193877,"blockID":"i356","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=868129","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"MyFreeGames","created":"2013-05-23T14:45:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"560e08b1-3471-ad34-8ca9-463f5ca5328c","last_modified":1480349210665},{"guid":"/^({d6e79525-4524-4707-9b97-1d70df8e7e59}|{ddb4644d-1a37-4e6d-8b6e-8e35e2a8ea6c}|{e55007f4-80c5-418e-ac33-10c4d60db01e}|{e77d8ca6-3a60-4ae9-8461-53b22fa3125b}|{e89a62b7-248e-492f-9715-43bf8c507a2f}|{5ce3e0cb-aa83-45cb-a7da-a2684f05b8f3})$/","prefs":[],"schema":1480349193877,"blockID":"i518","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947509","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by silently installing the add-on, and using multiple add-on IDs.","name":"Re-markit","created":"2013-12-20T12:56:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"145b0f22-501e-39eb-371e-ec8342a5add9","last_modified":1480349210606},{"guid":"{72b98dbc-939a-4e0e-b5a9-9fdbf75963ef}","prefs":[],"schema":1480349193877,"blockID":"i772","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"SitezExpert","created":"2014-10-31T16:15:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"386cb2c9-e674-ce2e-345f-d30a785f90c5","last_modified":1480349210536},{"guid":"hha8771ui3-Fo9j9h7aH98jsdfa8sda@jetpack","prefs":[],"schema":1480349193877,"blockID":"i970","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1190963","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Video fix (malware)","created":"2015-08-04T15:15:07Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3ca577d8-3685-4ba9-363b-5b2d8d8dd608","last_modified":1480349210477},{"guid":"{7e8a1050-cf67-4575-92df-dcc60e7d952d}","prefs":[],"schema":1480349193877,"blockID":"i478","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935796","who":"All Firefox users who have this add-on installed.","why":"This add-on violates the Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"SweetPacks","created":"2013-11-08T15:42:28Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1519eb45-fcaa-b531-490d-fe366490ed45","last_modified":1480349210416},{"guid":"/^({66b103a7-d772-4fcd-ace4-16f79a9056e0}|{6926c7f7-6006-42d1-b046-eba1b3010315}|{72cabc40-64b2-46ed-8648-26d831761150}|{73ee2cf2-7b76-4c49-b659-c3d8cf30825d}|{ca6446a5-73d5-4c35-8aa1-c71dc1024a18}|{5373a31d-9410-45e2-b299-4f61428f0be4})$/","prefs":[],"schema":1480349193877,"blockID":"i521","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947485","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by being silently installed and using multiple add-on IDs.","name":"appbario7","created":"2013-12-20T13:14:29Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"983cb7fe-e0b4-6a2e-f174-d2670876b2cd","last_modified":1480349210351},{"guid":"{dd6b651f-dfb9-4142-b0bd-09912ad22674}","prefs":[],"schema":1480349193877,"blockID":"i400","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835678","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our Add-on Guidelines.","name":"Searchqu","created":"2013-06-25T15:16:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"975d2126-f727-f5b9-ca01-b83345b80c56","last_modified":1480349210301},{"guid":"25p@9eAkaLq.net","prefs":["browser.startup.homepage"],"schema":1480349193877,"blockID":"i730","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes user settings without consent, in violation of the Add-on Guidelines\r\n","name":"YYOutoubeAdBlocke","created":"2014-10-16T16:35:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5a0c5818-693f-43ae-f85a-c6928d9c2cc4","last_modified":1480349210275},{"os":"Darwin","guid":"thunder@xunlei.com","prefs":[],"schema":1480349193877,"blockID":"i568","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=988490","who":"All Firefox users who have versions 2.0.6 or lower of the Thunder add-on installed on Mac OS.","why":"Versions 2.0.6 and lower of the Thunder add-on are causing startup crashes on Mac OS.","name":"Thunder, 2.0.6 and lower","created":"2014-03-28T15:48:38Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0.6","minVersion":"0","targetApplication":[]}],"id":"cee484f6-2d5d-f708-88be-cd12d825a79a","last_modified":1480349210242},{"guid":"tmbepff@trendmicro.com","prefs":[],"schema":1480349193877,"blockID":"i1222","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1275245","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"Add-on is causing a high-frequency crash in Firefox","name":"Trend Micro BEP 9.1.0.1035 and lower","created":"2016-05-24T12:10:34Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"9.1.0.1035","minVersion":"0","targetApplication":[]}],"id":"8045c799-486a-927c-b972-b9da1c2dab2f","last_modified":1480349209818},{"guid":"pricepeep@getpricepeep.com","prefs":[],"schema":1480349193877,"blockID":"i220","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=811433","who":"All Firefox users who have Pricepeed below 2.1.0.20 installed.","why":"Versions older than 2.1.0.20 of the PricePeep add-on were silently side-installed with other software, injecting advertisements in Firefox. Versions 2.1.0.20 and above don't have the install problems are not blocked.","name":"PricePeep","created":"2012-11-29T16:18:26Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.1.0.19.99","minVersion":"0","targetApplication":[]}],"id":"227b9a8d-c18d-239c-135e-d79e614fe392","last_modified":1480349209794},{"guid":"ytd@mybrowserbar.com","prefs":[],"schema":1480349193877,"blockID":"i360","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=845969","who":"All Firefox users who have this add-on installed. Users who want to enable the add-on again can do so in the Add-ons Manager tab.","why":"The installer that includes this add-on performs Firefox settings changes separately from the add-on install, making it very difficult to opt-out to these changes.","name":"YouTube Downloader","created":"2013-06-06T12:29:13Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"63669524-93fe-4823-95ba-37cf6cbd4914","last_modified":1480349209770},{"guid":"hoverst@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i498","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=946029","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Adobe Flash Player (malware)","created":"2013-12-04T15:17:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2b25ba3e-45db-0e6c-965a-3acda1a44117","last_modified":1480349209745},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i606","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:20:07Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.13.*","minVersion":"3.15.13","targetApplication":[]}],"id":"c3d88e22-386a-da3b-8aba-3cb526e08053","last_modified":1480349209713},{"guid":"advance@windowsclient.com","prefs":[],"schema":1480349193877,"blockID":"i508","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=950773","who":"All Firefox users who have this add-on installed.","why":"This is not the Microsoft .NET Framework Assistant created and distributed by Microsoft. It is a malicious extension that is distributed under the same name to trick users into installing it, and turns users into a botnet that conducts SQL injection attacks on visited websites.","name":"Microsoft .NET Framework Assistant (malware)","created":"2013-12-16T10:15:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e5d30a74-732e-c3fa-f13b-097ee28d4b27","last_modified":1480349209674},{"guid":"{5eeb83d0-96ea-4249-942c-beead6847053}","prefs":[],"schema":1480349193877,"blockID":"i756","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080846","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"SmarterPower","created":"2014-10-17T16:30:30Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e101dbc0-190c-f6d8-e168-0c1380581cc9","last_modified":1480349209625},{"guid":"/^({7e8a1050-cf67-4575-92df-dcc60e7d952d}|{b3420a9c-a397-4409-b90d-bcf22da1a08a}|{eca6641f-2176-42ba-bdbe-f3e327f8e0af}|{707dca12-3f99-4d94-afea-06dcc0ae0108}|{aea20431-87fc-40be-bc5b-18066fe2819c}|{30ee6676-1ba6-455a-a7e8-298fa863a546})$/","prefs":[],"schema":1480349193877,"blockID":"i523","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947481","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted.","name":"SweetPacks","created":"2013-12-20T13:42:15Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a3a6bc8e-46a1-b3d5-1b20-58b90ba099c3","last_modified":1480349209559},{"guid":"{e0352044-1439-48ba-99b6-b05ed1a4d2de}","prefs":[],"schema":1480349193877,"blockID":"i710","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Site Counselor","created":"2014-09-30T15:28:14Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b8fedf07-dcaf-f0e3-b42b-32db75c4c304","last_modified":1480349209491},{"guid":"{bee6eb20-01e0-ebd1-da83-080329fb9a3a}","prefs":[],"schema":1480349193877,"blockID":"i642","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the Flash and Video Download extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"Flash and Video Download, between 40.10.1 and 44.10.1","created":"2014-07-10T15:02:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"44.10.1","minVersion":"40.10.1","targetApplication":[]}],"id":"16db0c85-02ec-4f7c-24a3-a504fbce902d","last_modified":1480349209443},{"guid":"addlyrics@addlyrics.net","prefs":[],"schema":1480349193877,"blockID":"i426","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=891605","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Add Lyrics","created":"2013-07-09T15:25:30Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"81678e9e-ebf0-47d6-e409-085c25e67c7e","last_modified":1480349209383},{"guid":"{7b1bf0b6-a1b9-42b0-b75d-252036438bdc}","prefs":[],"schema":1480349193877,"blockID":"i638","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036137","who":"All Firefox users who have this version of the add-on installed.","why":"Versions 27.8 and 27.9 of the YouTube High Definition extension weren't developed by the original developer, and are likely malicious in nature. It violates the Add-on Guidelines for reusing an already existent ID.","name":"YouTube High Definition 27.8 and 27.9","created":"2014-07-08T16:07:56Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"27.9","minVersion":"27.8","targetApplication":[]}],"id":"ffdc8ba0-d548-dc5b-d2fd-79a20837124b","last_modified":1480349209260},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i610","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:21:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.22.*","minVersion":"3.15.22","targetApplication":[]}],"id":"935dfec3-d017-5660-db5b-94ae7cea6e5f","last_modified":1480349209128},{"guid":"info@allpremiumplay.info","prefs":[],"schema":1480349193877,"blockID":"i163","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806451","who":"All Firefox users who have these add-ons installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Codec-C (malware)","created":"2012-10-29T16:40:07Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6afbf9b8-ae3a-6a48-0f6c-7a3e065ec043","last_modified":1480349209076},{"guid":"now.msn.com@services.mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i490","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=926378","who":"All Firefox users who have this add-on installed.","why":"As part of their ongoing work to fine-tune their editorial mix, msnNOW has decided that msnNOW will stop publishing on Dec. 3, 2013. Rather than having a single home for trending content, they will continue integrating that material throughout all MSN channels. A big thank you to everyone who followed msnNOW stories using the Firefox sidebar","name":"MSNNow (discontinued social provider)","created":"2013-11-27T08:06:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"de7d699d-016d-d973-5e39-52568de6ffde","last_modified":1480349209021},{"guid":"fftoolbar2014@etech.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i858","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131078","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and changes users' settings, in violation of the Add-on Guidelines.","name":"FF Toolbar","created":"2015-02-11T15:32:36Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6877bf40-9e45-7017-4dac-14d09e7f0ef6","last_modified":1480349208988},{"guid":"mbrnovone@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i477","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=936249","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Mozilla Security Service (malware)","created":"2013-11-08T15:35:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"758c2503-766d-a2f5-4c58-7cea93acfe05","last_modified":1480349208962},{"guid":"{739df940-c5ee-4bab-9d7e-270894ae687a}","prefs":[],"schema":1480349193877,"blockID":"i530","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949558","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted.","name":"WhiteSmoke New","created":"2013-12-20T14:49:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f8097aa6-3009-6dfc-59df-353ba6b1142b","last_modified":1480349208933},{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","prefs":[],"schema":1480349193877,"blockID":"i115","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=779014","who":"All Firefox users who have this add-on installed.","why":"This extension is malware that is installed under false pretenses, and it conducts attacks against certain video websites.","name":"Adobe Flash Player (malware)","created":"2012-08-01T13:53:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"aef9312d-5f2e-a44d-464d-6113394148e3","last_modified":1480349208904},{"guid":"g99hiaoekjoasiijdkoleabsy278djasi@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1022","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1208708","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"WatchIt (malware)","created":"2015-09-28T15:23:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"25e057ea-f500-67df-d078-ec3f37f99036","last_modified":1480349208877},{"guid":"firefoxaddon@youtubeenhancer.com","prefs":[],"schema":1480349193877,"blockID":"i636","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033120","who":"All Firefox users who have this version of the add-on installed.","why":"Version 199.7.0 of the YoutubeEnhancer extension isn't developed by the original developer, and is likely malicious in nature. It violates the Add-on Guidelines for reusing an already existent ID.","name":"YoutubeEnhancer - Firefox","created":"2014-07-08T15:58:12Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"199.7.0","minVersion":"199.7.0","targetApplication":[]}],"id":"204a074b-da87-2784-f15b-43a9ea9a6b36","last_modified":1480349208851},{"guid":"extacylife@a.com","prefs":[],"schema":1480349193877,"blockID":"i505","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947741","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks users' Facebook accounts.","name":"Facebook Haber (malware)","created":"2013-12-09T15:08:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5acadb8d-d3be-e0e0-4656-9107f9de0ea9","last_modified":1480349208823},{"guid":"{746505DC-0E21-4667-97F8-72EA6BCF5EEF}","prefs":[],"schema":1480349193877,"blockID":"i842","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128325","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Shopper-Pro","created":"2015-02-06T14:45:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5f19c5fb-1c78-cbd6-8a03-1678efb54cbc","last_modified":1480349208766},{"guid":"{51c77233-c0ad-4220-8388-47c11c18b355}","prefs":[],"schema":1480349193877,"blockID":"i580","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1004132","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, it can be enabled in the Add-ons Manager.","why":"This add-on is silently installed into Firefox, in violation of the Add-on Guidelines.","name":"Browser Utility","created":"2014-04-30T13:55:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.1.9999999","minVersion":"0","targetApplication":[]}],"id":"daa2c60a-5009-2c65-a432-161d50bef481","last_modified":1480349208691},{"guid":"{a2bfe612-4cf5-48ea-907c-f3fb25bc9d6b}","prefs":[],"schema":1480349193877,"blockID":"i712","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Website Xplorer","created":"2014-09-30T15:28:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"13450534-93d7-f2a2-7f0a-e4e3948c4dc1","last_modified":1480349208027},{"guid":"ScorpionSaver@jetpack","prefs":[],"schema":1480349193877,"blockID":"i539","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963826","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enable it in the Add-ons Manager.","why":"This add-on is being silently installed, in violation of the Add-on Guidelines","name":"ScorpionSaver","created":"2014-01-28T14:00:30Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3499c968-6e8b-37f1-5f6e-2384807c2a6d","last_modified":1480349207972},{"guid":"unblocker20@unblocker.yt","prefs":[],"schema":1480349193877,"blockID":"i1212","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"This add-on is a copy of YouTube Unblocker, which was originally blocked due to malicious activity.","name":"YouTube Unblocker 2.0","created":"2016-05-05T18:13:29Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"2.0.0","minVersion":"0","targetApplication":[]}],"id":"57785030-909f-e985-2a82-8bd057781227","last_modified":1480349207912},{"guid":"{D19CA586-DD6C-4a0a-96F8-14644F340D60}","prefs":[],"schema":1480349193877,"blockID":"i42","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=690184","who":"Users of McAfee ScriptScan versions 14.4.0 and below for all versions of Firefox and SeaMonkey.","why":"This add-on causes a high volume of crashes.","name":"McAfee ScriptScan","created":"2011-10-03T09:38:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"14.4.0","minVersion":"0.1","targetApplication":[]}],"id":"1d35ac9d-49df-23cf-51f5-f3c228ad0dc9","last_modified":1480349207877},{"guid":"gjhrjenrengoe@jfdnkwelfwkm.com","prefs":[],"schema":1480349193877,"blockID":"i1042","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1212174","who":"All users who have this add-on installed.","why":"This is a malicious add-on that takes over Facebook accounts.","name":"Avant Player (malware)","created":"2015-10-07T13:12:54Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d6453893-becc-7617-2050-0db284e0e0db","last_modified":1480349207840},{"guid":"/^(@9338379C-DD5C-4A45-9A36-9733DC806FAE|9338379C-DD5C-4A45-9A36-9733DC806FAE|@EBC7B466-8A28-4061-81B5-10ACC05FFE53|@bd6a97c0-4b18-40ed-bce7-3b7d3309e3c4222|@bd6a97c0-4b18-40ed-bce7-3b7d3309e3c4|@b2d6a97c0-4b18-40ed-bce7-3b7d3309e3c4222)$/","prefs":[],"schema":1480349193877,"blockID":"i1079","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1240597","who":"All Firefox users who have these add-ons installed.","why":"These add-ons are malicious, manipulating registry and search settings for users.","name":"Default SearchProtected (malware)","created":"2016-01-18T12:32:32Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ddc5237e-42e4-1bf1-54d3-a5e5799dd828","last_modified":1480349207815},{"guid":"{33e0daa6-3af3-d8b5-6752-10e949c61516}","prefs":[],"schema":1480349193877,"blockID":"i282","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835683","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on violates our add-on guidelines, bypassing the third party opt-in screen.","name":"Complitly","created":"2013-02-15T12:19:26Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.1.999","minVersion":"0","targetApplication":[]}],"id":"1f94bc8d-9d5f-c8f5-45c0-ad1f6e147c71","last_modified":1480349207789},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i608","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:20:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.20.*","minVersion":"3.15.18","targetApplication":[]}],"id":"e7d50ff2-5948-d571-6711-37908ccb863f","last_modified":1480349207761},{"guid":"chiang@programmer.net","prefs":[],"schema":1480349193877,"blockID":"i340","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=867156","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that logs keyboard input and sends it to a remote server.","name":"Cache Manager (malware)","created":"2013-04-30T07:44:09Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d50d0434-78e4-faa7-ce2a-9b0a8bb5120e","last_modified":1480349207736},{"guid":"{63eb5ed4-e1b3-47ec-a253-f8462f205350}","prefs":[],"schema":1480349193877,"blockID":"i786","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"FF-Plugin","created":"2014-11-18T12:33:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ca4558a2-8ce4-3ca0-3d29-63019f680c8c","last_modified":1480349207705},{"guid":"jid1-4vUehhSALFNqCw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i634","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033002","who":"All Firefox users who have this version of the add-on installed.","why":"Version 99.7 of the YouTube Plus Plus extension isn't developed by the original developer, and is likely malicious in nature. It violates the Add-on Guidelines for reusing an already existent ID.","name":"YouTube Plus Plus 99.7","created":"2014-07-04T14:13:57Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"99.7","minVersion":"99.7","targetApplication":[]}],"id":"a6d017cb-e33f-2239-4e42-ab4e7cfb19fe","last_modified":1480349207680},{"guid":"{aab02ab1-33cf-4dfa-8a9f-f4e60e976d27}","prefs":[],"schema":1480349193877,"blockID":"i820","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems without their consent, in violation of the Add-on Guidelines.","name":"Incredible Web","created":"2015-01-13T09:27:49Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"847ecc6e-1bc1-f7ff-e1d5-a76e6b8447d2","last_modified":1480349207654},{"guid":"torntv@torntv.com","prefs":[],"schema":1480349193877,"blockID":"i320","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=845610","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"TornTV","created":"2013-03-20T16:35:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cdd492b8-8101-74a9-5760-52ff709fd445","last_modified":1480349207608},{"guid":"crossriderapp12555@crossrider.com","prefs":[],"schema":1480349193877,"blockID":"i674","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=877836","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"The add-on is silently installed, in violation of our Add-on Guidelines.","name":"JollyWallet","created":"2014-07-22T16:26:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d4467e20-0f71-f0e0-8cd6-40c82b6c7379","last_modified":1480349207561},{"guid":"pluggets@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i435","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=903544","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks users' Facebook accounts and posts spam on their behalf. ","name":"Facebook Pluggets Plugin (malware)","created":"2013-08-09T13:12:14Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3a63fd92-9290-02fb-a2e8-bc1b4424201a","last_modified":1480349207535},{"guid":"344141-fasf9jas08hasoiesj9ia8ws@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1038","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1211169","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Video Plugin (malware)","created":"2015-10-05T16:42:09Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f7986b7b-9b5a-d372-8147-8b4bd6f5a29b","last_modified":1480349207485},{"guid":"meOYKQEbBBjH5Ml91z0p9Aosgus8P55bjTa4KPfl@jetpack","prefs":[],"schema":1480349193877,"blockID":"i998","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1201164","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Smooth Player (malware)","created":"2015-09-07T13:54:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"30c3e511-9e8d-15ee-0867-d61047e56515","last_modified":1480349207370},{"guid":"{8dc5c42e-9204-2a64-8b97-fa94ff8a241f}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i770","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1088726","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and is considered malware, in violation of the Add-on Guidelines.","name":"Astrmenda Search","created":"2014-10-30T14:52:52Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8a9c7702-0349-70d6-e64e-3a666ab084c6","last_modified":1480349207320},{"guid":"savingsslider@mybrowserbar.com","prefs":[],"schema":1480349193877,"blockID":"i752","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963788","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Slick Savings","created":"2014-10-17T16:18:12Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9b1faf30-5725-7847-d993-b5cdaabc9829","last_modified":1480349207290},{"guid":"youtubeunblocker__web@unblocker.yt","prefs":[],"schema":1480349193877,"blockID":"i1129","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"The add-on has a mechanism that updates certain configuration files from the developer\u2019s website. This mechanism has a vulnerability that is being exploited through this website (unblocker.yt) to change security settings in Firefox and install malicious add-ons.","name":"YouTube Unblocker","created":"2016-03-01T21:20:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"aa246b36-0a80-81e3-2129-4847e872d5fe","last_modified":1480349207262},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i612","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:23:00Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.24.*","minVersion":"3.15.24","targetApplication":[]}],"id":"e0ff9df4-60e4-dbd0-8018-57f395e6610a","last_modified":1480349206818},{"guid":"{1e4ea5fc-09e5-4f45-a43b-c048304899fc}","prefs":[],"schema":1480349193877,"blockID":"i812","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Great Finder","created":"2015-01-06T13:22:39Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1ea40b9f-2423-a2fd-a5e9-4ec1df2715f4","last_modified":1480349206784},{"guid":"psid-vhvxQHMZBOzUZA@jetpack","prefs":[],"schema":1480349193877,"blockID":"i70","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=730059","who":"All Firefox users who have installed this add-on.","why":"Add-on spams Facebook accounts and blocks Facebook warnings.","name":"PublishSync (malware)","created":"2012-02-23T13:44:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f1528b02-7cef-0e80-f747-8bbf1f0f2f06","last_modified":1480349206758},{"guid":"{B18B1E5C-4D81-11E1-9C00-AFEB4824019B}","prefs":[],"schema":1480349193877,"blockID":"i447","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=788838","who":"All Firefox users who have this add-on installed. The add-on can be enabled again in the Add-ons Manager.","why":"This add-on is installed silently, in violation of our Add-on Guidelines.","name":"My Smart Tabs","created":"2013-09-06T16:00:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"40332fae-0444-a141-ade9-8d9e50370f56","last_modified":1480349206733},{"guid":"crossriderapp8812@crossrider.com","prefs":[],"schema":1480349193877,"blockID":"i314","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835665","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"Coupon Companion","created":"2013-03-06T14:14:51Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"06c07e28-0a34-e5ee-e724-491a2f6ce586","last_modified":1480349206708},{"guid":"/^(ffxtlbr@mixidj\\.com|{c0c2693d-2ee8-47b4-9df7-b67a0ee31988}|{67097627-fd8e-4f6b-af4b-ecb65e50112e}|{f6f0f973-a4a3-48cf-9a7a-b7a69c30d71a}|{a3d0e35f-f1da-4ccb-ae77-e9d27777e68d}|{1122b43d-30ee-403f-9bfa-3cc99b0caddd})$/","prefs":[],"schema":1480349193877,"blockID":"i540","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963819","who":"All Firefox users who have this add-on installed.","why":"This add-on has been repeatedly blocked before and keeps showing up with new add-on IDs, in violation of the Add-on Guidelines.","name":"MixiDJ (malware)","created":"2014-01-28T14:07:56Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4c03ddda-bb3f-f097-0a7b-b7b77b050584","last_modified":1480349206678},{"guid":"hansin@topvest.id","prefs":[],"schema":1480349193877,"blockID":"i836","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1130406","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Inside News (malware)","created":"2015-02-06T14:17:39Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0945a657-f28d-a02c-01b2-5115b3f90d7a","last_modified":1480349206628},{"guid":"lfind@nijadsoft.net","prefs":[],"schema":1480349193877,"blockID":"i358","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=874131","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Lyrics Finder","created":"2013-05-24T14:09:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2307f11c-6216-0dbf-a464-b2921055ce2b","last_modified":1480349206603},{"guid":"plugin@getwebcake.com","prefs":[],"schema":1480349193877,"blockID":"i484","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=938264","who":"All Firefox users who have this add-on installed.","why":"This add-on violates the Add-on Guidelines and is broadly considered to be malware. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"WebCake","created":"2013-11-14T09:55:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2865addd-da1c-20c4-742f-6a2270da2e78","last_modified":1480349206578},{"guid":"{c0c2693d-2ee8-47b4-9df7-b67a0ee31988}","prefs":[],"schema":1480349193877,"blockID":"i354","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=837838","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Mixi DJ","created":"2013-05-23T14:31:21Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"03a745c3-0ee7-e262-ba31-62d4f78ddb62","last_modified":1480349206525},{"guid":"/^({7316e43a-3ebd-4bb4-95c1-9caf6756c97f}|{0cc09160-108c-4759-bab1-5c12c216e005}|{ef03e721-f564-4333-a331-d4062cee6f2b}|{465fcfbb-47a4-4866-a5d5-d12f9a77da00}|{7557724b-30a9-42a4-98eb-77fcb0fd1be3}|{b7c7d4b0-7a84-4b73-a7ef-48ef59a52c3b})$/","prefs":[],"schema":1480349193877,"blockID":"i520","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947485","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by being silently installed and using multiple add-on IDs.","name":"appbario7","created":"2013-12-20T13:11:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e3901c48-9c06-fecb-87d3-efffd9940c22","last_modified":1480349206491},{"guid":"{354dbb0a-71d5-4e9f-9c02-6c88b9d387ba}","prefs":[],"schema":1480349193877,"blockID":"i538","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=964081","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Show Mask ON (malware)","created":"2014-01-27T10:13:17Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"aad90253-8921-b5df-3658-45a70d75f3d7","last_modified":1480349206465},{"guid":"{8E9E3331-D360-4f87-8803-52DE43566502}","prefs":[],"schema":1480349193877,"blockID":"i461","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=906071","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This is a companion add-on for the SweetPacks Toolbar which is blocked due to guideline violations.","name":"Updater By SweetPacks","created":"2013-10-17T16:10:51Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ae8cca6e-4258-545f-9a69-3d908264a701","last_modified":1480349206437},{"guid":"info@bflix.info","prefs":[],"schema":1480349193877,"blockID":"i172","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806802","who":"All Firefox users who have this add-on installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Bflix (malware)","created":"2012-10-30T13:39:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7a9062f4-218d-51d2-9b8c-b282e6eada4f","last_modified":1480349206384},{"guid":"{dff137ae-1ffd-11e3-8277-b8ac6f996f26}","prefs":[],"schema":1480349193877,"blockID":"i450","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=917861","who":"All Firefox users who have this add-on installed.","why":"This is add-on is malware that silently redirects popular search queries to a third party.","name":"Addons Engine (malware)","created":"2013-09-18T16:19:34Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8e583fe4-1c09-9bea-2473-faecf3260685","last_modified":1480349206312},{"guid":"12x3q@3244516.com","prefs":[],"schema":1480349193877,"blockID":"i493","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=939254","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware and is installed silently in violation of the Add-on Guidelines.","name":"BetterSurf (malware)","created":"2013-12-02T12:49:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"af2a9e74-3753-9ff1-d899-5d1e79ed3dce","last_modified":1480349206286},{"guid":"{20AD702C-661E-4534-8CE9-BA4EC9AD6ECC}","prefs":[],"schema":1480349193877,"blockID":"i626","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1027886","who":"All Firefox users who have this add-on installed.","why":"This add-on is probably silently installed, and is causing significant stability issues for users, in violation of the Add-on Guidelines.","name":"V-Bates","created":"2014-06-19T15:16:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9b9ccabe-8f9a-e3d1-a689-1aefba1f33b6","last_modified":1480349206261},{"guid":"{c5e48979-bd7f-4cf7-9b73-2482a67a4f37}","prefs":[],"schema":1480349193877,"blockID":"i736","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080842","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"ClearThink","created":"2014-10-17T15:22:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6e8b3e4f-2f59-cde3-e6d2-5bc6e216c506","last_modified":1480349206231},{"guid":"{41339ee8-61ed-489d-b049-01e41fd5d7e0}","prefs":[],"schema":1480349193877,"blockID":"i810","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"FireWeb","created":"2014-12-23T10:32:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a35f2ca6-aec4-c01d-170e-650258ebcd2c","last_modified":1480349206165},{"guid":"jid0-l9BxpNUhx1UUgRfKigWzSfrZqAc@jetpack","prefs":[],"schema":1480349193877,"blockID":"i640","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036640","who":"All Firefox users who have this add-on installed.","why":"This add-on attempts to gather private user data and send it to a remote location. It doesn't appear to be very effective at it, but its malicious nature is undeniable.","name":"Bitcoin Mining Software","created":"2014-07-09T14:35:40Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8fe3c35e-1a6f-a89a-fa96-81bda3b71db1","last_modified":1480349206133},{"guid":"{845cab51-d8d2-472f-8bd9-2b44642d97c2}","prefs":[],"schema":1480349193877,"blockID":"i460","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=927456","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and handles users' settings, violating some of the Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Vafmusic9","created":"2013-10-17T15:50:38Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8538ccb4-3b71-9858-3f6d-c0fff7af58b0","last_modified":1480349205746},{"guid":"SpecialSavings@SpecialSavings.com","prefs":[],"schema":1480349193877,"blockID":"i676","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881511","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This is add-on is generally considered to be unwanted and is probably silently installed, in violation of the Add-on Guidelines.","name":"SpecialSavings","created":"2014-07-22T16:31:56Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5e921810-fc3a-0729-6749-47e38ad10a22","last_modified":1480349205688},{"guid":"afurladvisor@anchorfree.com","prefs":[],"schema":1480349193877,"blockID":"i434","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844945","who":"All Firefox users who have this add-on installed.","why":"This add-on bypasses the external install opt in screen in Firefox, violating the Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Hotspot Shield Helper","created":"2013-08-09T11:26:11Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"083585eb-d7e7-e228-5fbf-bf35c52044e4","last_modified":1480349205645},{"guid":"addonhack@mozilla.kewis.ch","prefs":[],"schema":1480349193877,"blockID":"i994","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1200848","who":"All users who have this add-on installed.","why":"This add-on is a proof of concept of malicious behavior in an add-on. In itself it doesn't cause any harm, but it still needs to be blocked for security reasons.","name":"Addon Hack","created":"2015-09-01T15:32:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"81f75571-ca2a-0e50-a925-daf2037ce63c","last_modified":1480349205584},{"guid":"info@thebflix.com","prefs":[],"schema":1480349193877,"blockID":"i174","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806802","who":"All Firefox users who have these add-ons installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Bflix (malware)","created":"2012-10-30T13:40:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"811a61d4-9435-133e-6262-fb72486c36b0","last_modified":1480349205526},{"guid":"{EEE6C361-6118-11DC-9C72-001320C79847}","prefs":[],"schema":1480349193877,"blockID":"i392","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881447","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on changes search settings without user interaction, and fails to reset them after it is removed. This violates our Add-on Guidelines.","name":"SweetPacks Toolbar","created":"2013-06-25T12:38:45Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c1dc6607-4c0a-4031-9f14-70ef1ae1edcb","last_modified":1480349205455},{"guid":"/^(4cb61367-efbf-4aa1-8e3a-7f776c9d5763@cdece6e9-b2ef-40a9-b178-291da9870c59\\.com|0efc9c38-1ec7-49ed-8915-53a48b6b7600@e7f17679-2a42-4659-83c5-7ba961fdf75a\\.com|6be3335b-ef79-4b0b-a0ba-b87afbc6f4ad@6bbb4d2e-e33e-4fa5-9b37-934f4fb50182\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i531","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949672","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted and using multiple IDs.","name":"Feven","created":"2013-12-20T15:01:22Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"46aa79a9-d329-f713-d4f2-07d31fe7071e","last_modified":1480349205287},{"guid":"afext@anchorfree.com","prefs":[],"schema":1480349193877,"blockID":"i466","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=933988","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't respect user choice, violating the Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Hotspot Shield Extension","created":"2013-11-07T13:32:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8176f879-bd73-5468-e908-2d7cfc115ac2","last_modified":1480349205108},{"guid":"{FCE04E1F-9378-4f39-96F6-5689A9159E45}","prefs":[],"schema":1480349193877,"blockID":"i920","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1173154","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-09T15:26:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"eb191ff0-20f4-6e04-4344-d880af4faf51","last_modified":1480349204978},{"guid":"{9CE11043-9A15-4207-A565-0C94C42D590D}","prefs":[],"schema":1480349193877,"blockID":"i503","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947384","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that uses a deceptive name to stay in users' systems.","name":"XUL Cache (malware)","created":"2013-12-06T11:58:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dcdae267-8d3a-5671-dff2-f960febbbb20","last_modified":1480349204951},{"guid":"/^[a-z0-9]+@foxysecure[a-z0-9]*\\.com$/","prefs":[],"schema":1480349193877,"blockID":"i766","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1088615","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Fox Sec 7","created":"2014-10-30T14:22:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"503fbd7c-04cd-65f3-9d0e-3ecf427b4a8f","last_modified":1480349204925},{"guid":"/^(jid1-W4CLFIRExukJIFW@jetpack|jid1-W4CLFIRExukJIFW@jetpack_1|jid1-W3CLwrP[a-z]+@jetpack)$/","prefs":[],"schema":1480349193877,"blockID":"i1078","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1240561","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that tries to pass itself for the Adobe Flash Player and hides itself in the Add-ons Manager.","name":"Adobe Flash Player (malware)","created":"2016-01-18T10:31:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b026fe67-ec77-a240-2fa1-e78f581a6fe4","last_modified":1480349204899},{"guid":"{0153E448-190B-4987-BDE1-F256CADA672F}","prefs":[],"schema":1480349193877,"blockID":"i914","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1170633","who":"All Firefox users who have this add-on installed in Firefox 39 and above.","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.","name":"RealPlayer Browser Record Plugin","created":"2015-06-02T09:56:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"2bfe0d89-e458-9d0e-f944-ddeaf8c4db6c","last_modified":1480349204871},{"guid":"{77beece6-3997-403a-92fa-0055bfcf88e5}","prefs":[],"schema":1480349193877,"blockID":"i452","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=916966","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines, manipulating settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Entrusted11","created":"2013-09-18T16:34:58Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d348f91f-caeb-a803-dfd9-fd5d285aa0fa","last_modified":1480349204844},{"guid":"dealcabby@jetpack","prefs":[],"schema":1480349193877,"blockID":"i222","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=811435","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently side-installed with other software, injecting advertisements in Firefox.","name":"DealCabby","created":"2012-11-29T16:20:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6585f0bd-4f66-71e8-c565-d9762c5c084a","last_modified":1480349204818},{"guid":"{3c9a72a0-b849-40f3-8c84-219109c27554}","prefs":[],"schema":1480349193877,"blockID":"i510","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=951301","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks users' Facebook accounts.","name":"Facebook Haber (malware)","created":"2013-12-17T14:27:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7cfa3d0b-0ab2-5e3a-8143-1031c180e32f","last_modified":1480349204778},{"guid":"{4ED1F68A-5463-4931-9384-8FFF5ED91D92}","prefs":[],"schema":1480349193877,"blockID":"i1245","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1286368","who":"All users who have McAfee SiteAdvisor lower than 4.0. \r\n\r\nTo resolve this issue, users will need to uninstall McAfee SiteAdvisor/WebAdvisor, reboot the computer, and then reinstall McAfee SiteAdvisor/WebAdvisor. \r\n\r\nFor detailed instructions, please refer to the McAfee support knowledge base.","why":"Old versions of McAfee SiteAdvisor cause startup crashes starting with Firefox 48.0 beta.","name":"McAfee SiteAdvisor lower than 4.0","created":"2016-07-14T21:24:02Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.9.9","minVersion":"0","targetApplication":[]}],"id":"d727d8c5-3329-c98a-7c7e-38b0813ca516","last_modified":1480349204748},{"guid":"{2aab351c-ad56-444c-b935-38bffe18ad26}","prefs":[],"schema":1480349193877,"blockID":"i500","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=946087","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Adobe Photo (malware)","created":"2013-12-04T15:29:44Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f7a76d34-ddcd-155e-9fae-5967bd796041","last_modified":1480349204716},{"guid":"jid1-4P0kohSJxU1qGg@jetpack","prefs":[],"schema":1480349193877,"blockID":"i488","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=942935","who":"All Firefox users who have version 1.2.50 of the Hola extension. Updating to the latest version should remove the block.","why":"Version 1.2.50 of the Hola extension is causing frequent crashes in Firefox. All users are strongly recommended to update to the latest version, which shouldn't have this problem.","name":"Hola, version 1.2.50","created":"2013-11-25T12:14:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.2.50","minVersion":"1.2.50","targetApplication":[]}],"id":"5c7f1635-b39d-4278-5f95-9042399c776e","last_modified":1480349204668},{"guid":"{0A92F062-6AC6-8180-5881-B6E0C0DC2CC5}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i864","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131220","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems and makes unwanted settings changes, in violation of our Add-on Guidelines.","name":"BlockAndSurf","created":"2015-02-26T12:56:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"acb16d1c-6274-93a3-7c1c-7ed36ede64a9","last_modified":1480349204612},{"guid":"jid0-Y6TVIzs0r7r4xkOogmJPNAGFGBw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i322","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=847018","who":"All users who have this add-on installed.","why":"This extension is malware, installed pretending to be the Flash Player plugin.","name":"Flash Player (malware)","created":"2013-03-22T14:39:40Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"54df22cd-19ce-a7f0-63cc-ffe3113748b9","last_modified":1480349204532},{"guid":"trackerbird@bustany.org","prefs":[],"schema":1480349193877,"blockID":"i986","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1189264","who":"All Thunderbird users who have this version of the add-on installed on Thunderbird 38.0a2 and above.","why":"This add-on is causing consistent crashes on Thunderbird 38.0a2 and above.","name":"trackerbird 1.2.6","created":"2015-08-17T15:56:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.2.6","minVersion":"1.2.6","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"38.0a2"}]}],"id":"bb1c699e-8790-4528-0b6d-4f83b7a3152d","last_modified":1480349204041},{"guid":"{0134af61-7a0c-4649-aeca-90d776060cb3}","prefs":[],"schema":1480349193877,"blockID":"i448","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=912746","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines. It manipulates settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"KeyBar add-on","created":"2013-09-13T16:15:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cf428416-4974-8bb4-7928-c0cb2cfe7957","last_modified":1480349203968},{"guid":"/^(firefox@vebergreat\\.net|EFGLQA@78ETGYN-0W7FN789T87\\.COM)$/","prefs":[],"schema":1480349193877,"blockID":"i564","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=974104","who":"All Firefox users who have these add-ons installed. If you wish to continue using these add-ons, you can enable them in the Add-ons Manager.","why":"These add-ons are silently installed by the Free Driver Scout installer, in violation of our Add-on Guidelines.","name":"veberGreat and vis (Free Driver Scout bundle)","created":"2014-03-05T13:02:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"487538f1-698e-147e-6395-986759ceed7e","last_modified":1480349203902},{"guid":"69ffxtbr@PackageTracer_69.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i882","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1153001","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on appears to be malware, hijacking user's settings, in violation of the Add-on Guidelines.","name":"PackageTracer","created":"2015-04-10T16:18:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0d37b4e0-3c60-fdad-dd8c-59baff6eae87","last_modified":1480349203836},{"guid":"{ACAA314B-EEBA-48e4-AD47-84E31C44796C}","prefs":[],"schema":1480349193877,"blockID":"i496","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=945530","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making settings changes that can't be easily reverted.","name":"DVDVideoSoft Menu","created":"2013-12-03T16:07:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"70d2c912-8d04-8065-56d6-d793b13d5f67","last_modified":1480349203779},{"guid":"jid1-4vUehhSALFNqCw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i632","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033002","who":"All Firefox users who have this version of the add-on installed.","why":"Version 100.7 of the YouTube Plus Plus extension isn't developed by the original developer, and is likely malicious in nature. It violates the Add-on Guidelines for reusing an already existent ID.","name":"YouTube Plus Plus 100.7","created":"2014-07-01T13:16:55Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"100.7","minVersion":"100.7","targetApplication":[]}],"id":"8bef6026-6697-99cd-7c1f-812877c4211d","last_modified":1480349203658},{"guid":"{a9bb9fa0-4122-4c75-bd9a-bc27db3f9155}","prefs":[],"schema":1480349193877,"blockID":"i404","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835678","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our Add-on Guidelines.","name":"Searchqu","created":"2013-06-25T15:16:43Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fb7a1dc7-16a0-4f70-8289-4df494e0d0fa","last_modified":1480349203633},{"guid":"P2@D.edu","prefs":[],"schema":1480349193877,"blockID":"i850","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128269","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the Add-on Guidelines.","name":"unIsaless","created":"2015-02-09T15:29:21Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"49536a29-fc7e-9fd0-f415-e15ac090fa56","last_modified":1480349203605},{"guid":"linksicle@linksicle.com","prefs":[],"schema":1480349193877,"blockID":"i472","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9b5b15b3-6da7-cb7c-3c44-30b4fe079d52","last_modified":1480349203581},{"guid":"{377e5d4d-77e5-476a-8716-7e70a9272da0}","prefs":[],"schema":1480349193877,"blockID":"i398","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835678","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our Add-on Guidelines.","name":"Searchqu","created":"2013-06-25T15:15:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ea94df32-2a85-23da-43f7-3fc5714530ec","last_modified":1480349203519},{"guid":"{4933189D-C7F7-4C6E-834B-A29F087BFD23}","prefs":[],"schema":1480349193877,"blockID":"i437","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=900695","who":"All Firefox users.","why":"This add-on is widely reported to be malware.","name":"Win32.SMSWebalta (malware)","created":"2013-08-09T15:14:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cbef1357-d6bc-c8d3-7a82-44af6b1c390f","last_modified":1480349203486},{"guid":"{ADFA33FD-16F5-4355-8504-DF4D664CFE10}","prefs":[],"schema":1480349193877,"blockID":"i306","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844972","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed, bypassing our third-party opt-in screen, in violation of our Add-on Guidelines. It's also possible that it changes user settings without their consent.","name":"Nation Toolbar","created":"2013-02-28T12:56:48Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"017fd151-37ca-4646-4763-1d303fb918fa","last_modified":1480349203460},{"guid":"detgdp@gmail.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i884","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1152614","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware, hijacking user settings, in violation of the Add-on Guidelines.","name":"Security Protection (malware)","created":"2015-04-10T16:21:34Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1b5cc88e-499d-2a47-d793-982d4c05e6ee","last_modified":1480349203433},{"guid":"/^(67314b39-24e6-4f05-99f3-3f88c7cddd17@6c5fa560-13a3-4d42-8e90-53d9930111f9\\.com|ffxtlbr@visualbee\\.com|{7aeae561-714b-45f6-ace3-4a8aed6e227b}|{7093ee04-f2e4-4637-a667-0f730797b3a0}|{53c4024f-5a2e-4f2a-b33e-e8784d730938})$/","prefs":[],"schema":1480349193877,"blockID":"i514","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947473","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by using multiple add-on IDs and making unwanted settings changes.","name":"VisualBee Toolbar","created":"2013-12-20T12:25:50Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5f91eee1-7303-3f97-dfe6-1e897a156c7f","last_modified":1480349203408},{"guid":"FXqG@xeeR.net","prefs":["browser.startup.homepage"],"schema":1480349193877,"blockID":"i720","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems and changes settings without consent, in violation of the Add-on Guidelines.","name":"GoSSave","created":"2014-10-02T12:23:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8ebbc061-a4ff-b75b-ec42-eb17c42a2956","last_modified":1480349203341},{"guid":"{87934c42-161d-45bc-8cef-ef18abe2a30c}","prefs":[],"schema":1480349193877,"blockID":"i547","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=798621","who":"All Firefox users who have this add-on installed. If you wish to continue using it, it can be enabled in the Add-ons Manager.","why":"This add-on is silently installed and makes various unwanted changes, in violation of the Add-on Guidelines.","name":"Ad-Aware Security Toolbar","created":"2014-01-30T12:42:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.7.9999999999","minVersion":"0","targetApplication":[]}],"id":"bcfbc502-24c2-4699-7435-e4837118f05a","last_modified":1480349203310},{"guid":"kallow@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i495","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=945426","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Facebook Security Service (malware)","created":"2013-12-02T15:09:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1a2c37a9-e7cc-2d03-2043-098d36b8aca2","last_modified":1480349203247},{"guid":"support@lastpass.com","prefs":[],"schema":1480349193877,"blockID":"i1261","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1289907","who":"All users who install affected versions of this add-on - beta versions 4.0 to 4.1.20a from addons.mozilla.org or lastpass.com.","why":"LastPass have announced there are security issues that would allow a malicious website to perform some actions (e.g. deleting passwords) without the user's knowledge. Beta versions 4.0 to 4.1.20a of their add-on that were available from addons.mozilla.org are affected and Lastpass also distributed these versions direct from their website.","name":"LastPass addon","created":"2016-07-29T14:17:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.1.20a","minVersion":"4.0.0a","targetApplication":[]}],"id":"ffe94023-b4aa-87ac-962c-5beabe34b1a0","last_modified":1480349203208},{"guid":"008abed2-b43a-46c9-9a5b-a771c87b82da@1ad61d53-2bdc-4484-a26b-b888ecae1906.com","prefs":[],"schema":1480349193877,"blockID":"i528","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949565","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by being silently installed.","name":"weDownload Manager Pro","created":"2013-12-20T14:40:58Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"da46065f-1c68-78f7-80fc-8ae07b5df68d","last_modified":1480349203131},{"guid":"{25dd52dc-89a8-469d-9e8f-8d483095d1e8}","prefs":[],"schema":1480349193877,"blockID":"i714","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Web Counselor","created":"2014-10-01T15:36:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e46c31ad-0ab3-e48a-47aa-9fa91b675fda","last_modified":1480349203066},{"guid":"{B1FC07E1-E05B-4567-8891-E63FBE545BA8}","prefs":[],"schema":1480349193877,"blockID":"i926","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1173154","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-09T15:28:46Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"09868783-261a-ac24-059d-fc772218c1ba","last_modified":1480349202708},{"guid":"/^(torntv@torntv\\.com|trtv3@trtv\\.com|torntv2@torntv\\.com|e2fd07a6-e282-4f2e-8965-85565fcb6384@b69158e6-3c3b-476c-9d98-ae5838c5b707\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i529","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949559","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by being silently installed.","name":"TornTV","created":"2013-12-20T14:46:03Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"040e5ec2-ea34-816a-f99f-93296ce845e8","last_modified":1480349202677},{"guid":"249911bc-d1bd-4d66-8c17-df533609e6d8@c76f3de9-939e-4922-b73c-5d7a3139375d.com","prefs":[],"schema":1480349193877,"blockID":"i532","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949672","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted and using multiple IDs.","name":"Feven","created":"2013-12-20T15:02:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d32b850d-82d5-b63d-087c-fb2041b2c232","last_modified":1480349202631},{"guid":"thefoxonlybetter@quicksaver","prefs":[],"schema":1480349193877,"blockID":"i704","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1053469","who":"All Firefox users who have any of these versions of the add-on installed.","why":"Certain versions of The Fox, Only Better weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"The Fox, Only Better (malicious versions)","created":"2014-08-27T14:49:02Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"0.*","minVersion":"0","targetApplication":[]}],"id":"79ea6621-b414-17a4-4872-bfc4af7fd428","last_modified":1480349202588},{"guid":"{B40794A0-7477-4335-95C5-8CB9BBC5C4A5}","prefs":[],"schema":1480349193877,"blockID":"i429","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=899178","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that spreads spam through Facebook.","name":"Video Player 1.3 (malware)","created":"2013-07-30T14:31:17Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d98b2b76-4082-3387-ae33-971d973fa278","last_modified":1480349202541},{"guid":"firefoxaddon@youtubeenhancer.com","prefs":[],"schema":1480349193877,"blockID":"i648","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the YouTube Enhancer Plus extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"YouTube Enhancer Plus, versions between 199.7.0 and 208.7.0","created":"2014-07-10T15:12:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"208.7.0","minVersion":"199.7.0","targetApplication":[]}],"id":"7e64d7fc-ff16-8687-dbd1-bc4c7dfc5097","last_modified":1480349202462},{"guid":"addon@defaulttab.com","prefs":[],"schema":1480349193877,"blockID":"i362","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=863387","who":"All users who have this add-on installed. Users who wish to enable it again can do so in the Add-ons Manager tab.","why":"Old versions of this add-on had been silently installed into users' systems, without showing the opt-in install page that is built into Firefox.","name":"Default Tab","created":"2013-06-06T12:57:29Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.4.4","minVersion":"0","targetApplication":[]}],"id":"df3fe753-5bae-bfb4-022b-6b6bfc534937","last_modified":1480349202429},{"guid":"{7D4F1959-3F72-49d5-8E59-F02F8AA6815D}","prefs":[],"schema":1480349193877,"blockID":"i394","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881447","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This is a companion add-on for the SweetPacks Toolbar which is blocked due to guideline violations.","name":"Updater By SweetPacks","created":"2013-06-25T12:40:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"851c2b8e-ea19-3a63-eac5-f931a8da5d6e","last_modified":1480349202341},{"guid":"g@uzcERQ6ko.net","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i776","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes user settings without consent, in violation of the Add-on Guidelines","name":"GoSave","created":"2014-10-31T16:23:36Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ee1e1a44-b51b-9f12-819d-64c3e515a147","last_modified":1480349202307},{"guid":"ffxtlbr@incredibar.com","prefs":[],"schema":1480349193877,"blockID":"i318","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=812264","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"IncrediBar","created":"2013-03-20T14:40:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9e84b07c-84d5-c932-85f2-589713d7e380","last_modified":1480349202280},{"guid":"M1uwW0@47z8gRpK8sULXXLivB.com","prefs":[],"schema":1480349193877,"blockID":"i870","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131159","who":"All users who have this add-on installed.","why":"This is a malicious add-on that goes by the the name \"Flash Player 11\".","name":"Flash Player 11 (malware)","created":"2015-03-04T14:34:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"71d961b2-37d1-d393-76f5-3afeef57e749","last_modified":1480349202252},{"guid":"jid1-qj0w91o64N7Eeg@jetpack","prefs":[],"schema":1480349193877,"blockID":"i650","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the YouTube ALL HTML5 extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"YouTube ALL HTML5, versions between 39.5.1 and 47.0.4","created":"2014-07-10T15:14:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"47.0.4","minVersion":"39.5.1","targetApplication":[]}],"id":"b30b1f7a-2a30-a6cd-fc20-6c9cb23c7198","last_modified":1480349202186},{"guid":"4zffxtbr-bs@VideoDownloadConverter_4z.com","prefs":[],"schema":1480349193877,"blockID":"i507","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949266","who":"All Firefox users who have this add-on installed.","why":"Certain versions of this add-on contains an executable that is flagged by multiple tools as malware. Newer versions no longer use it.","name":"VideoDownloadConverter","created":"2013-12-12T15:37:23Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"5.75.3.25126","minVersion":"0","targetApplication":[]}],"id":"0a0f106a-ecc6-c537-1818-b36934943e91","last_modified":1480349202156},{"guid":"hdv@vovcacik.addons.mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i656","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the High Definition Video extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"High Definition Video, version 102.0","created":"2014-07-10T15:22:59Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"102.0","minVersion":"102.0","targetApplication":[]}],"id":"972249b2-bba8-b508-2ead-c336631135ac","last_modified":1480349202125},{"guid":"@video_downloader_pro","prefs":[],"schema":1480349193877,"blockID":"i1265","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1298335","who":"Users of versions of 1.2.1 to 1.2.5 inclusive.","why":"Versions 1.2.1 to 1.2.5 of Video Downloader Pro included code that violated our polices - affected versions send every visited url to a remote server without the user's consent. Versions older than 1.2.1 and more recent than 1.2.5 are okay.","name":"Video Downloader Pro","created":"2016-08-26T18:26:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.2.5","minVersion":"1.2.1","targetApplication":[]}],"id":"ff9c8def-7d50-66b4-d42a-f9a4b04bd224","last_modified":1480349202099},{"guid":"contato@facefollow.net","prefs":[],"schema":1480349193877,"blockID":"i509","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=950846","who":"All Firefox users who have this add-on installed.","why":"This add-on spams users' Facebook accounts.","name":"Face follow","created":"2013-12-16T16:15:15Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"56f15747-af8c-342c-6877-a41eeacded84","last_modified":1480349202067},{"guid":"wecarereminder@bryan","prefs":[],"schema":1480349193877,"blockID":"i666","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=818614","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is being silently installed by various software packages, in violation of the Add-on Guidelines.","name":"We-Care Reminder","created":"2014-07-10T16:18:36Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"51e0ead7-144c-c1f4-32f2-25fc5fcde870","last_modified":1480349202039},{"guid":"/^({83a8ce1b-683c-4784-b86d-9eb601b59f38}|{ef1feedd-d8da-4930-96f1-0a1a598375c6}|{79ff1aae-701f-4ca5-aea3-74b3eac6f01b}|{8a184644-a171-4b05-bc9a-28d75ffc9505}|{bc09c55d-0375-4dcc-836e-0e3c8addfbda}|{cef81415-2059-4dd5-9829-1aef3cf27f4f})$/","prefs":[],"schema":1480349193877,"blockID":"i526","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949566","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted and uses multiple IDs.","name":"KeyBar add-on","created":"2013-12-20T14:12:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9dfa4e92-bbf2-66d1-59a9-51402d1d226c","last_modified":1480349202010},{"guid":"{d9284e50-81fc-11da-a72b-0800200c9a66}","prefs":[],"schema":1480349193877,"blockID":"i806","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1106948","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable the add-on in the Add-on Manager.","why":"Starting with Firefox 34, current versions of the Yoono add-on cause all tabs to appear blank.","name":"Yoono","created":"2014-12-16T08:35:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"7.7.34","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"34.0a1"}]}],"id":"ccdceb04-3083-012f-9d9f-aac85f10b494","last_modified":1480349201976},{"guid":"{f2548724-373f-45fe-be6a-3a85e87b7711}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i768","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1088726","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and is considered malware, in violation of the Add-on Guidelines.","name":"Astro New Tab","created":"2014-10-30T14:52:09Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8510e9e2-c7d8-90d0-a2ff-eb09293acc6e","last_modified":1480349201854},{"guid":"KSqOiTeSJEDZtTGuvc18PdPmYodROmYzfpoyiCr2@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1032","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1211172","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Video Player (malware)","created":"2015-10-05T16:22:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3d9188ac-235f-773a-52a2-261b3ea9c03c","last_modified":1480349201504},{"guid":"{849ded12-59e9-4dae-8f86-918b70d213dc}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i708","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1047102","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes homepage and search settings without the user's consent, in violation of the Add-on Guidelines.","name":"Astromenda New Tab","created":"2014-09-02T16:29:08Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a319bfee-464f-1c33-61ad-738c52842fbd","last_modified":1480349201453},{"guid":"grjkntbhr@hgergerherg.com","prefs":[],"schema":1480349193877,"blockID":"i1018","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1208196","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"GreenPlayer (malware)","created":"2015-09-24T16:04:53Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9c47d940-bdd9-729f-e32e-1774d87f24b5","last_modified":1480349201425},{"guid":"quick_start@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i588","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011316","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware that is installed without user consent.","name":"Quick Start (malware)","created":"2014-06-03T15:53:15Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2affbebe-8776-3edb-28b9-237cb8b85f97","last_modified":1480349201398},{"guid":"/^(matchersite(pro(srcs?)?)?\\@matchersite(pro(srcs?)?)?\\.com)|((pro)?sitematcher(_srcs?|pro|site|sitesrc|-generic)?\\@(pro)?sitematcher(_srcs?|pro|site|sitesrc|-generic)?\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i668","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1039892","who":"All Firefox users who have any of these add-ons installed. User who wish to continue using these add-ons can enable them in the Add-ons Manager.","why":"This is a group of add-ons that are being distributed under multiple different IDs and likely being silently installed, in violation of the Add-on Guidelines.","name":"Site Matcher","created":"2014-07-17T14:35:14Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"52e1a2de-ab35-be27-4810-334f681ccc4a","last_modified":1480349201372},{"guid":"{EEF73632-A085-4fd3-A778-ECD82C8CB297}","prefs":[],"schema":1480349193877,"blockID":"i165","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806451","who":"All Firefox users who have these add-ons installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Codec-M (malware)","created":"2012-10-29T16:41:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e5ecd02a-20ee-749b-d5cf-3d74d1173a1f","last_modified":1480349201262},{"guid":"firefox-extension@mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i688","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1049533","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hides itself under the name Java_plugin, among others.","name":"FinFisher (malware)","created":"2014-08-06T17:13:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"98aca74a-69c7-9960-cccc-096a4a4adc6c","last_modified":1480349201235},{"guid":"jid1-vW9nopuIAJiRHw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i570","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=990291","who":"All Firefox users who have this add-on installed. Those who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed, reverts settings changes to enforce its own, and is also causing stability problems in Firefox, all in violation of the Add-on Guidelines.","name":"SmileysWeLove","created":"2014-03-31T16:17:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bf2abd66-f910-650e-89aa-cd1d5c2f8a89","last_modified":1480349201204},{"guid":"87aukfkausiopoawjsuifhasefgased278djasi@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1050","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1220461","who":"All users who have this add-on installed.","why":"This is a malicious add-on that poses as a video update and hijacks Facebook accounts.","name":"Trace Video (malware)","created":"2015-11-02T14:53:21Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cb4cfac0-79c2-0fbf-206a-324aa3abbea5","last_modified":1480349201157},{"guid":"{e44a1809-4d10-4ab8-b343-3326b64c7cdd}","prefs":[],"schema":1480349193877,"blockID":"i451","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=916966","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines, manipulating settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Entrusted","created":"2013-09-18T16:33:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ad5f53ed-7a43-cb1f-cbd7-41808fac1791","last_modified":1480349201128},{"guid":"{21EAF666-26B3-4A3C-ABD0-CA2F5A326744}","prefs":[],"schema":1480349193877,"blockID":"i620","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024752","who":"All Firefox users who have this add-on installed.","why":"This add-on is probably silently installed, and is causing significant stability issues for users, in violation of the Add-on Guidelines.","name":"V-Bates","created":"2014-06-12T15:27:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2d8833db-01a7-a758-080f-19e47abc54cb","last_modified":1480349201096},{"guid":"{1FD91A9C-410C-4090-BBCC-55D3450EF433}","prefs":[],"schema":1480349193877,"blockID":"i338","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844979","who":"All Firefox users who have this add-on installed.","why":"This extension overrides search settings, and monitors any further changes done to them so that they can be reverted. This violates our add-on guidelines.","name":"DataMngr (malware)","created":"2013-04-24T11:30:28Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2e35995f-bec6-aa2b-3372-346d3325f72e","last_modified":1480349201059},{"guid":"9598582LLKmjasieijkaslesae@jetpack","prefs":[],"schema":1480349193877,"blockID":"i996","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1201165","who":"All users who have this add-on installed.","why":"This is a malicious add-on that takes over Facebook accounts.","name":"Secure Player (malware)","created":"2015-09-07T13:50:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"52f9c6e7-f7d5-f52e-cc35-eb99ef8b4b6a","last_modified":1480349201029},{"guid":"{bf7380fa-e3b4-4db2-af3e-9d8783a45bfc}","prefs":[],"schema":1480349193877,"blockID":"i406","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=776404","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on changes search settings without user interaction, and fails to reset them after it is removed. This violates our Add-on Guidelines.","name":"uTorrentBar","created":"2013-06-27T10:46:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3bcefc4b-110c-f3b8-17ad-f9fc97c1120a","last_modified":1480349201000},{"guid":"{ce7e73df-6a44-4028-8079-5927a588c948}","prefs":[],"schema":1480349193877,"blockID":"i117","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=781269","who":"All Firefox users who have this add-on installed.","why":"The Search By Image (by Google) extension causes very high CPU utilization during regular browsing, often damaging user experience significantly, in a way that is very difficult to associate with the extension.\r\n\r\nUsers who want to continue using the add-on regardless of its performance impact can enable it in the Add-ons Manager.","name":"Search By Image (by Google)","created":"2012-08-10T08:50:52Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.8","minVersion":"0","targetApplication":[]}],"id":"fb1f9aed-2f1f-3e2c-705d-3b34ca9168b6","last_modified":1480349200972},{"guid":"{424b0d11-e7fe-4a04-b7df-8f2c77f58aaf}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i800","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080839","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and is considered malware, in violation of the Add-on Guidelines.","name":"Astromenda NT","created":"2014-12-15T10:51:56Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"07bdf6aa-cfc8-ed21-6b36-6f90af02b169","last_modified":1480349200939},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i618","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:25:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.31.*","minVersion":"3.15.31","targetApplication":[]}],"id":"825feb43-d6c2-7911-4189-6f589f612c34","last_modified":1480349200911},{"guid":"{167d9323-f7cc-48f5-948a-6f012831a69f}","prefs":[],"schema":1480349193877,"blockID":"i262","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=812303","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently side-installed by other software, and doesn't do much more than changing the users' settings, without reverting them on removal.","name":"WhiteSmoke (malware)","created":"2013-01-29T13:33:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a8f249fe-3db8-64b8-da89-7b584337a7af","last_modified":1480349200885},{"guid":"/^({988919ff-0cd8-4d0c-bc7e-60d55a49eb64}|{494b9726-9084-415c-a499-68c07e187244}|{55b95864-3251-45e9-bb30-1a82589aaff1}|{eef3855c-fc2d-41e6-8d91-d368f51b3055}|{90a1b331-c2b4-4933-9f63-ba7b84d60d58}|{d2cf9842-af95-48cd-b873-bfbb48cd7f5e})$/","prefs":[],"schema":1480349193877,"blockID":"i541","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963819","who":"All Firefox users who have this add-on installed","why":"This add-on has been repeatedly blocked before and keeps showing up with new add-on IDs, in violation of the Add-on Guidelines.","name":"MixiDJ (malware)","created":"2014-01-28T14:09:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"36196aed-9d0d-ebee-adf1-d1f7fadbc48f","last_modified":1480349200819},{"guid":"{29b136c9-938d-4d3d-8df8-d649d9b74d02}","prefs":[],"schema":1480349193877,"blockID":"i598","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011322","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed, in violation with our Add-on Guidelines.","name":"Mega Browse","created":"2014-06-12T13:21:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"63b1c965-27c3-cd06-1b76-8721add39edf","last_modified":1480349200775},{"guid":"{6e7f6f9f-8ce6-4611-add2-05f0f7049ee6}","prefs":[],"schema":1480349193877,"blockID":"i868","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1086574","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our Add-on Guidelines.","name":"Word Proser","created":"2015-02-26T14:58:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f54797da-cdcd-351a-c95e-874b64b0d226","last_modified":1480349200690},{"guid":"{02edb56b-9b33-435b-b7df-b2843273a694}","prefs":[],"schema":1480349193877,"blockID":"i438","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=896581","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines. It is installed bypassing the Firefox opt-in screen, and manipulates settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"KeyBar Toolbar","created":"2013-08-09T15:27:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"896710d2-5a65-e9b0-845b-05aa72c2bd51","last_modified":1480349200338},{"guid":"{e1aaa9f8-4500-47f1-9a0a-b02bd60e4076}","prefs":[],"schema":1480349193877,"blockID":"i646","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the Youtube Video Replay extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"Youtube Video Replay, version 178.7.0","created":"2014-07-10T15:10:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"178.7.0","minVersion":"178.7.0","targetApplication":[]}],"id":"ac5d1083-6753-bbc1-a83d-c63c35371b22","last_modified":1480349200312},{"guid":"{1cdbda58-45f8-4d91-b566-8edce18f8d0a}","prefs":[],"schema":1480349193877,"blockID":"i724","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080835","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Website Counselor Pro","created":"2014-10-13T16:00:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7b70bd36-d2f7-26fa-9038-8b8dd132cd81","last_modified":1480349200288},{"guid":"{b12785f5-d8d0-4530-a3ea-5c4263b85bef}","prefs":[],"schema":1480349193877,"blockID":"i988","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1161573","who":"All users who have this add-on installed. Those who wish continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on overrides user's preferences without consent, in violation of the Add-on Guidelines.","name":"Hero Fighter Community Toolbar","created":"2015-08-17T16:04:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3e6d73f2-e8e3-af69-866e-30d3977b09e4","last_modified":1480349200171},{"guid":"{c2d64ff7-0ab8-4263-89c9-ea3b0f8f050c}","prefs":[],"schema":1480349193877,"blockID":"i39","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=665775","who":"Users of MediaBar versions 4.3.1.00 and below in all versions of Firefox.","why":"This add-on causes a high volume of crashes and is incompatible with certain versions of Firefox.","name":"MediaBar","created":"2011-07-19T10:18:12Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.3.1.00","minVersion":"0.1","targetApplication":[]}],"id":"e928a115-9d8e-86a4-e2c7-de39627bd9bf","last_modified":1480349200047},{"guid":"{9edd0ea8-2819-47c2-8320-b007d5996f8a}","prefs":["browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i684","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033857","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is believed to be silently installed in Firefox, in violation of the Add-on Guidelines.","name":"webget","created":"2014-08-06T13:33:33Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d38561f5-370f-14be-1443-a74dad29b1f3","last_modified":1480349199962},{"guid":"/^({ad9a41d2-9a49-4fa6-a79e-71a0785364c8})|(ffxtlbr@mysearchdial\\.com)$/","prefs":["browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i670","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036740","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on has been repeatedly been silently installed into users' systems, and is known for changing the default search without user consent, in violation of the Add-on Guidelines.","name":"MySearchDial","created":"2014-07-18T15:47:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a04075e6-5df2-2e1f-85a6-3a0171247349","last_modified":1480349199927},{"guid":"odtffplugin@ibm.com","prefs":[],"schema":1480349193877,"blockID":"i982","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1190630","who":"All users who have these versions installed. The latest versions of this add-on aren't blocked, so updating to them should be sufficient to fix this problem.","why":"Certain versions of the IBM Remote Control add-on could leave a machine vulnerable to run untrusted code.","name":"IBM Endpoint Manager for Remote Control 9.0.1.1 to 9.0.1.100","created":"2015-08-11T11:25:43Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"9.0.1.100","minVersion":"9.0.1.1","targetApplication":[]}],"id":"f6e3e5d2-9331-1097-ba4b-cf2e484b7187","last_modified":1480349199886},{"guid":"support@todoist.com","prefs":[],"schema":1480349193877,"blockID":"i1030","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1205479","who":"All users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is sending all sites visited by the user to a remote server, additionally doing so in an unsafe way.","name":"Todoist","created":"2015-10-01T16:53:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.9","minVersion":"0","targetApplication":[]}],"id":"d0a84aab-0661-b3c5-c184-a2fd3f9dfb9c","last_modified":1480349199850},{"guid":"/^({1f43c8af-e9e4-4e5a-b77a-f51c7a916324}|{3a3bd700-322e-440a-8a6a-37243d5c7f92}|{6a5b9fc2-733a-4964-a96a-958dd3f3878e}|{7b5d6334-8bc7-4bca-a13e-ff218d5a3f17}|{b87bca5b-2b5d-4ae8-ad53-997aa2e238d4}|{bf8e032b-150f-4656-8f2d-6b5c4a646e0d})$/","prefs":[],"schema":1480349193877,"blockID":"i1136","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251940","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hides itself from view and disables various security features in Firefox.","name":"Watcher (malware)","created":"2016-03-04T17:56:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a2d0378f-ebe4-678c-62d8-2e4c6a613c17","last_modified":1480349199818},{"guid":"liiros@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i814","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1119657","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems without their consent and performs unwanted operations.","name":"One Tab (malware)","created":"2015-01-09T12:49:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"387c054d-cc9f-7ebd-c814-b4c1fbcb2880","last_modified":1480349199791},{"guid":"youtubeunblocker@unblocker.yt","prefs":[],"schema":1480349193877,"blockID":"i1128","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"The add-on has a mechanism that updates certain configuration files from the developer\u2019s website. This mechanism has a vulnerability that is being exploited through this website (unblocker.yt) to change security settings in Firefox and install malicious add-ons.","name":"YouTube Unblocker","created":"2016-03-01T21:18:33Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3395fce1-42dd-e31a-1466-2da3f32456a0","last_modified":1480349199768},{"guid":"{97E22097-9A2F-45b1-8DAF-36AD648C7EF4}","prefs":[],"schema":1480349193877,"blockID":"i916","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1170633","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-02T09:57:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"94fba774-c4e6-046a-bc7d-ede787a9d0fe","last_modified":1480349199738},{"guid":"{b64982b1-d112-42b5-b1e4-d3867c4533f8}","prefs":[],"schema":1480349193877,"blockID":"i167","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=805973","who":"All Firefox users who have this add-on installed.","why":"This add-on is a frequent cause for browser crashes and other problems.","name":"Browser Manager","created":"2012-10-29T17:17:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"00bbe501-2d27-7a1c-c344-6eea1c707473","last_modified":1480349199673},{"guid":"{58bd07eb-0ee0-4df0-8121-dc9b693373df}","prefs":[],"schema":1480349193877,"blockID":"i286","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=842206","who":"All Firefox users who have this extension installed.","why":"This extension is malicious and is installed under false pretenses, causing problems for many Firefox users. Note that this is not the same BrowserProtect extension that is listed on our add-ons site. That one is safe to use.","name":"Browser Protect / bProtector (malware)","created":"2013-02-18T10:54:28Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b40a60d3-b9eb-09eb-bb02-d50b27aaac9f","last_modified":1480349199619},{"guid":"trtv3@trtv.com","prefs":[],"schema":1480349193877,"blockID":"i465","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=845610","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"TornTV","created":"2013-11-01T15:21:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3d4d8a33-2eff-2556-c699-9be0841a8cd4","last_modified":1480349199560},{"guid":"youtube@downloader.yt","prefs":[],"schema":1480349193877,"blockID":"i1231","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1278932","who":"All users who have this add-on installed.","why":"The add-on has a mechanism that updates certain configuration files from the developer\u2019s website. This mechanism has a vulnerability that can being exploited through this website (downloader.yt) to change security settings in Firefox and/or install malicious add-ons. \r\n","name":"YouTube downloader","created":"2016-06-09T14:50:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8514eaee-850c-e27a-a058-8badeeafc26e","last_modified":1480349199528},{"guid":"low_quality_flash@pie2k.com","prefs":[],"schema":1480349193877,"blockID":"i658","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the Low Quality Flash extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"Low Quality Flash, versions between 46.2 and 47.1","created":"2014-07-10T15:27:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"47.1","minVersion":"46.2","targetApplication":[]}],"id":"b869fae6-c18c-0d39-59a2-603814656404","last_modified":1480349199504},{"guid":"{d2cf9842-af95-48cd-b873-bfbb48cd7f5e}","prefs":[],"schema":1480349193877,"blockID":"i439","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=902569","who":"All Firefox users who have this add-on installed.","why":"This is another instance of the previously blocked Mixi DJ add-on, which doesn't follow our Add-on Guidelines. If you wish to continue using it, it can be enabled in the Add-ons Manager.","name":"Mixi DJ V45","created":"2013-08-09T16:08:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e81c31fc-265e-61b9-d4c1-0e2f31f1652e","last_modified":1480349199478},{"guid":"/^({b95faac1-a3d7-4d69-8943-ddd5a487d966}|{ecce0073-a837-45a2-95b9-600420505f7e}|{2713b394-286f-4d7c-89ea-4174eeab9f5a}|{da7a20cf-bef4-4342-ad78-0240fdf87055})$/","prefs":[],"schema":1480349193877,"blockID":"i624","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947482","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is known to change user settings without their consent, is distributed under multiple add-on IDs, and is also correlated with reports of tab functions being broken in Firefox, in violation of the Add-on Guidelines.\r\n","name":"WiseConvert","created":"2014-06-18T13:50:38Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ed57d7a6-5996-c7da-8e07-1ad125183e84","last_modified":1480349199446},{"guid":"{f894a29a-f065-40c3-bb19-da6057778493}","prefs":[],"schema":1480349193877,"blockID":"i742","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080817","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on appears to be silently installed into users' systems, and changes settings without consent, in violation of the Add-on Guidelines.","name":"Spigot Shopping Assistant","created":"2014-10-17T15:46:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"39d8334e-4b7c-4336-2d90-e6aa2d783967","last_modified":1480349199083},{"guid":"plugin@analytic-s.com","prefs":[],"schema":1480349193877,"blockID":"i467","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935797","who":"All Firefox users who have this add-on installed.","why":"This add-on bypasses the external install opt in screen in Firefox, violating the Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Analytics","created":"2013-11-07T14:08:48Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ffbed3f3-e5c9-bc6c-7530-f68f47b7efd6","last_modified":1480349199026},{"guid":"{C4A4F5A0-4B89-4392-AFAC-D58010E349AF}","prefs":[],"schema":1480349193877,"blockID":"i678","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=895668","who":"All Firefox users who have this add-on installed. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"This add-on is generally silently installed, in violation of the Add-on Guidelines.","name":"DataMngr","created":"2014-07-23T14:12:23Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"151021fc-ce4e-a734-e075-4ece19610f64","last_modified":1480349198947},{"guid":"HxLVJK1ioigz9WEWo8QgCs3evE7uW6LEExAniBGG@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1036","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1211170","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Mega Player (malware)","created":"2015-10-05T16:37:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"32e34b41-a73c-72d4-c96c-136917ad1d4d","last_modified":1480349198894},{"guid":"{6af08a71-380e-42dd-9312-0111d2bc0630}","prefs":[],"schema":1480349193877,"blockID":"i822","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1126353","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware, hiding itself in the Add-ons Manager, and keeping track of certain user actions.","name":"{6af08a71-380e-42dd-9312-0111d2bc0630} (malware)","created":"2015-01-27T09:50:40Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"96d0c12b-a6cf-4539-c1cf-a1c75c14ff24","last_modified":1480349198826},{"guid":"colmer@yopmail.com","prefs":[],"schema":1480349193877,"blockID":"i550","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=968445","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Video Plugin Facebook (malware)","created":"2014-02-06T15:49:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c394d10b-384e-cbd0-f357-9c521715c373","last_modified":1480349198744},{"guid":"fplayer@adobe.flash","prefs":[],"schema":1480349193877,"blockID":"i444","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=909433","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware disguised as the Flash Player plugin.","name":"Flash Player (malware)","created":"2013-08-26T14:49:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c6557989-1b59-72a9-da25-b816c4a4c723","last_modified":1480349198667},{"guid":"ascsurfingprotection@iobit.com","prefs":[],"schema":1480349193877,"blockID":"i740","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963776","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Advanced SystemCare Surfing Protection","created":"2014-10-17T15:39:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4405f99d-c9b7-c496-1b45-268163ce29b7","last_modified":1480349198637},{"guid":"{6E19037A-12E3-4295-8915-ED48BC341614}","prefs":[],"schema":1480349193877,"blockID":"i24","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=615518","who":"Users of RelevantKnowledge version 1.3.328.4 and older in Firefox 4 and later.","why":"This add-on causes a high volume of Firefox crashes.","name":"comScore RelevantKnowledge","created":"2011-03-02T17:42:56Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.3.328.4","minVersion":"0.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.7a1pre"}]}],"id":"7c189c5e-f95b-0aef-e9e3-8e879336503b","last_modified":1480349198606},{"guid":"crossriderapp4926@crossrider.com","prefs":[],"schema":1480349193877,"blockID":"i91","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=754648","who":"All Firefox users who have installed this add-on.","why":"Versions of this add-on prior to 0.81.44 automatically post message to users' walls and hide them from their view. Version 0.81.44 corrects this.","name":"Remove My Timeline (malware)","created":"2012-05-14T14:16:43Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.81.43","minVersion":"0","targetApplication":[]}],"id":"5ee3e72e-96fb-c150-fc50-dd581e960963","last_modified":1480349198547},{"guid":"/^(93abedcf-8e3a-4d02-b761-d1441e437c09@243f129d-aee2-42c2-bcd1-48858e1c22fd\\.com|9acfc440-ac2d-417a-a64c-f6f14653b712@09f9a966-9258-4b12-af32-da29bdcc28c5\\.com|58ad0086-1cfb-48bb-8ad2-33a8905572bc@5715d2be-69b9-4930-8f7e-64bdeb961cfd\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i544","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949596","who":"All Firefox users who have this add-on installed. If you wish to continue using it, it can be enabled in the Add-ons Manager.","why":"This add-on is in violation of the Add-on Guidelines, using multiple add-on IDs and potentially doing other unwanted activities.","name":"SuperLyrics","created":"2014-01-30T11:51:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d8d25967-9814-3b65-0787-a0525c16e11e","last_modified":1480349198510},{"guid":"wHO@W9.net","prefs":[],"schema":1480349193877,"blockID":"i980","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1192468","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"BestSavEFOrYoU (malware)","created":"2015-08-11T11:20:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4beb917f-68f2-1f91-beed-dff6d83006f8","last_modified":1480349198483},{"guid":"frhegnejkgner@grhjgewfewf.com","prefs":[],"schema":1480349193877,"blockID":"i1040","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1212451","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Async Codec (malware)","created":"2015-10-07T13:03:37Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fb6ab4ce-5517-bd68-2cf7-a93a109a528a","last_modified":1480349198458},{"guid":"firefox@luckyleap.net","prefs":[],"schema":1480349193877,"blockID":"i471","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:33Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3a9e04c7-5e64-6297-8442-2816915aad77","last_modified":1480349198433},{"guid":"auto-plugin-checker@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1210","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1270175","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"This add-on reports every visited URL to a third party without disclosing it to the user.","name":"auto-plugin-checker","created":"2016-05-04T16:25:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3e202419-5318-2025-b579-c828af24a06e","last_modified":1480349198401},{"guid":"lugcla21@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i432","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=902072","who":"All Firefox users who have this add-on installed.","why":"This add-on includes malicious code that spams users' Facebook accounts with unwanted messages.","name":"FB Color Changer (malware)","created":"2013-08-06T13:16:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b6943f35-9429-1f8e-bf8e-fe37979fe183","last_modified":1480349198372},{"guid":"{99079a25-328f-4bd4-be04-00955acaa0a7}","prefs":[],"schema":1480349193877,"blockID":"i402","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835678","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our Add-on Guidelines.","name":"Searchqu","created":"2013-06-25T15:16:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"16008331-8b47-57c8-a6f7-989914d1cb8a","last_modified":1480349198341},{"guid":"{81b13b5d-fba1-49fd-9a6b-189483ac548a}","prefs":[],"schema":1480349193877,"blockID":"i473","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:43Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"76debc7b-b875-6da4-4342-1243cbe437f6","last_modified":1480349198317},{"guid":"{e935dd68-f90d-46a6-b89e-c4657534b353}","prefs":[],"schema":1480349193877,"blockID":"i732","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Sites Pro","created":"2014-10-16T16:38:24Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"97fdc235-ac1a-9f20-1b4a-17c2f0d89ad1","last_modified":1480349198260},{"guid":"{32da2f20-827d-40aa-a3b4-2fc4a294352e}","prefs":[],"schema":1480349193877,"blockID":"i748","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963787","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Start Page","created":"2014-10-17T16:02:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6c980c8e-4a3c-7912-4a3a-80add457575a","last_modified":1480349198223},{"guid":"chinaescapeone@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i431","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=901770","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that uses a deceptive name and hijacks social networks.","name":"F-Secure Security Pack (malware)","created":"2013-08-05T16:43:24Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fbd89a9d-9c98-8481-e4cf-93e327ca8be1","last_modified":1480349198192},{"guid":"{cc6cc772-f121-49e0-b1f0-c26583cb0c5e}","prefs":[],"schema":1480349193877,"blockID":"i716","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Website Counselor","created":"2014-10-02T12:12:34Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"debcd28c-884b-ca42-d983-6fabf91034dd","last_modified":1480349198148},{"guid":"{906000a4-88d9-4d52-b209-7a772970d91f}","prefs":[],"schema":1480349193877,"blockID":"i474","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"326d05b9-ace7-67c6-b094-aad926c185a5","last_modified":1480349197744},{"guid":"{A34CAF42-A3E3-11E5-945F-18C31D5D46B0}","prefs":["security.csp.enable","security.fileuri.strict_origin_policy","security.mixed_content.block_active_content"],"schema":1480349193877,"blockID":"i1227","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1274995","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"This add-on downgrades the security of all iframes from https to http and changes important Firefox security preferences.","name":"Mococheck WAP browser","created":"2016-05-31T15:45:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2230a5ce-a8f8-a20a-7974-3b960a03aba9","last_modified":1480349197699},{"guid":"{AB2CE124-6272-4b12-94A9-7303C7397BD1}","prefs":[],"schema":1480349193877,"blockID":"i20","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=627278","who":"Users of Skype extension versions below 5.2.0.7165 for all versions of Firefox.","why":"This add-on causes a high volume of Firefox crashes and introduces severe performance issues. Please update to the latest version. For more information, please read our announcement.","name":"Skype extension","created":"2011-01-20T18:39:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"5.2.0.7164","minVersion":"0.1","targetApplication":[]}],"id":"60e16015-1803-197a-3241-484aa961d18f","last_modified":1480349197667},{"guid":"f6682b47-e12f-400b-9bc0-43b3ccae69d1@39d6f481-b198-4349-9ebe-9a93a86f9267.com","prefs":[],"schema":1480349193877,"blockID":"i682","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1043017","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is being silently installed, in violation of the Add-on Guidelines.","name":"enformation","created":"2014-08-04T16:07:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a7ae65cd-0869-67e8-02f8-6d22c56a83d4","last_modified":1480349197636},{"guid":"rally_toolbar_ff@bulletmedia.com","prefs":[],"schema":1480349193877,"blockID":"i537","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=950267","who":"All Firefox users who have this extension installed. If you want to continue using it, you can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by silently installing it.","name":"Rally Toolbar","created":"2014-01-23T15:51:48Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4ac6eb63-b51a-3296-5b02-bae77f424032","last_modified":1480349197604},{"guid":"x77IjS@xU.net","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i774","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes user settings without consent, in violation of the Add-on Guidelines\r\n","name":"YoutubeAdBlocke","created":"2014-10-31T16:22:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4771da14-bcf2-19b1-3d71-bc61a1c7d457","last_modified":1480349197578},{"guid":"{49c53dce-afa0-49a1-a08b-2eb8e8444128}","prefs":[],"schema":1480349193877,"blockID":"i441","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844985","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"ytbyclick","created":"2013-08-09T16:58:50Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5f08d720-58c2-6acb-78ad-7af45c82c90b","last_modified":1480349197550},{"guid":"searchengine@gmail.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i886","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1152555","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-on Manager.","why":"This add-on appears to be malware, being silently installed and hijacking user settings, in violation of the Add-on Guidelines.","name":"Search Enginer","created":"2015-04-10T16:25:21Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"46de4f6e-2b29-7334-ebbb-e0048f114f7b","last_modified":1480349197525},{"guid":"{bb7b7a60-f574-47c2-8a0b-4c56f2da9802}","prefs":[],"schema":1480349193877,"blockID":"i754","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080850","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"AdvanceElite","created":"2014-10-17T16:27:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f222ceb2-9b69-89d1-8dce-042d8131a12e","last_modified":1480349197500},{"guid":"/^(test3@test.org|test2@test.org|test@test.org|support@mozilla.org)$/","prefs":[],"schema":1480349193877,"blockID":"i1119","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1242721","who":"All users who have these add-ons installed.","why":"These add-ons are malicious, or at least attempts at being malicious, using misleading names and including risky code.","name":"test.org add-ons (malware)","created":"2016-01-25T13:31:43Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"afd2a0d7-b050-44c9-4e45-b63696d9b22f","last_modified":1480349197468},{"guid":"/^((34qEOefiyYtRJT@IM5Munavn\\.com)|(Mro5Fm1Qgrmq7B@ByrE69VQfZvZdeg\\.com)|(KtoY3KGxrCe5ie@yITPUzbBtsHWeCdPmGe\\.com)|(9NgIdLK5Dq4ZMwmRo6zk@FNt2GCCLGyUuOD\\.com)|(NNux7bWWW@RBWyXdnl6VGls3WAwi\\.com)|(E3wI2n@PEHTuuNVu\\.com)|(2d3VuWrG6JHBXbQdbr@3BmSnQL\\.com))$/","prefs":[],"schema":1480349193877,"blockID":"i324","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=841791","who":"All users who have this add-on installed.","why":"This extension is malware, installed pretending to be the Flash Player plugin.","name":"Flash Player (malware)","created":"2013-03-22T14:48:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5be3a399-af3e-644e-369d-628273b3fdc2","last_modified":1480349197432},{"guid":"axtara__web@axtara.com","prefs":[],"schema":1480349193877,"blockID":"i1263","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have version 1.1.1 or less of this add-on installed.","why":"Old versions of this add-on contained code from YouTube Unblocker, which was originally blocked due to malicious activity. Version 1.1.2 is now okay.","name":"AXTARA Search (pre 1.1.2)","created":"2016-08-17T16:47:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"1.1.1","minVersion":"0","targetApplication":[]}],"id":"c58be1c9-3d63-a948-219f-e3225e1eec8e","last_modified":1480349197404},{"guid":"{8f894ed3-0bf2-498e-a103-27ef6e88899f}","prefs":[],"schema":1480349193877,"blockID":"i792","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"ExtraW","created":"2014-11-26T13:49:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bebc9e15-59a1-581d-0163-329d7414edff","last_modified":1480349197368},{"guid":"profsites@pr.com","prefs":[],"schema":1480349193877,"blockID":"i734","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.\r\n","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"ProfSites","created":"2014-10-16T16:39:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0d6d84d7-0b3f-c5ab-57cc-6b66b0775a23","last_modified":1480349197341},{"guid":"{872b5b88-9db5-4310-bdd0-ac189557e5f5}","prefs":[],"schema":1480349193877,"blockID":"i497","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=945530","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making settings changes that can't be easily reverted.","name":"DVDVideoSoft Menu","created":"2013-12-03T16:08:09Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e8da89c4-c585-77e4-9872-591d20723a7e","last_modified":1480349197240},{"guid":"123456789@offeringmedia.com","prefs":[],"schema":1480349193877,"blockID":"i664","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that attempts to hide itself by impersonating the Adobe Flash plugin.","name":"Taringa MP3 / Adobe Flash","created":"2014-07-10T15:41:24Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6d0a7dda-d92a-c8e2-21be-c92b0a88ac8d","last_modified":1480349197208},{"guid":"firefoxdav@icloud.com","prefs":[],"schema":1480349193877,"blockID":"i1214","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1271358","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"This add-on is causing frequent and persistent crashing.","name":"iCloud Bookmarks","created":"2016-05-17T16:55:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.4.22","minVersion":"0","targetApplication":[]}],"id":"2dddd7a7-b081-45e2-3eeb-2a7f76a1465f","last_modified":1480349197172},{"guid":"youplayer@addons.mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i660","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the YouPlayer extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"YouPlayer, versions between 79.9.8 and 208.0.1","created":"2014-07-10T15:31:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"208.0.1","minVersion":"79.9.8","targetApplication":[]}],"id":"82dca22b-b889-5d9d-3fc9-b2184851f2d1","last_modified":1480349197136},{"guid":"{df6bb2ec-333b-4267-8c4f-3f27dc8c6e07}","prefs":[],"schema":1480349193877,"blockID":"i487","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=940681","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Facebook 2013 (malware)","created":"2013-11-19T14:59:45Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5867c409-b342-121e-3c3b-426e2f0ba1d4","last_modified":1480349197109},{"guid":"/^({4e988b08-8c51-45c1-8d74-73e0c8724579}|{93ec97bf-fe43-4bca-a735-5c5d6a0a40c4}|{aed63b38-7428-4003-a052-ca6834d8bad3}|{0b5130a9-cc50-4ced-99d5-cda8cc12ae48}|{C4CFC0DE-134F-4466-B2A2-FF7C59A8BFAD})$/","prefs":[],"schema":1480349193877,"blockID":"i524","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947481","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted.","name":"SweetPacks","created":"2013-12-20T13:43:21Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1a3a26a2-cdaa-e5ba-f6ac-47b98ae2cc26","last_modified":1480349197082},{"guid":"foxyproxy@eric.h.jung","prefs":[],"schema":1480349193877,"blockID":"i950","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1183890","who":"All users who have this add-on installed on Thunderbird 38 and above.","why":"This add-on is causing consistent startup crashes on Thunderbird 38 and above.","name":"FoxyProxy Standard for Thunderbird","created":"2015-07-15T09:34:44Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.5.5","minVersion":"0","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"38.0a2"},{"guid":"{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}","maxVersion":"*","minVersion":"2.35"}]}],"id":"5ee8203d-bea2-6cd5-9ba0-d1922ffb3d21","last_modified":1480349197056},{"guid":"{82AF8DCA-6DE9-405D-BD5E-43525BDAD38A}","prefs":[],"schema":1480349193877,"blockID":"i1056","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1225639","who":"All users who have this add-on installed in Firefox 43 and above. User who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is associated with frequent shutdown crashes in Firefox.","name":"Skype Click to Call","created":"2015-11-17T14:03:05Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"7.5.0.9082","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"43.0a1"}]}],"id":"484f8386-c415-7499-a8a0-f4e16f5a142f","last_modified":1480349197027},{"guid":"{22119944-ED35-4ab1-910B-E619EA06A115}","prefs":[],"schema":1480349193877,"blockID":"i45","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=699134","who":"Users of version 7.9.20.6 of RoboForm Toolbar and earlier on Firefox 48 and above.","why":"Older versions of the RoboForm Toolbar add-on are causing crashes in Firefox 48 and above. The developer has released a fix, available in versions 7.9.21+.","name":"Roboform","created":"2011-11-19T06:14:56Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"7.9.20.6","minVersion":"0.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"8.0a1"}]}],"id":"5f7f9e13-d3e8-ea74-8341-b83e36d67d94","last_modified":1480349196995},{"guid":"{87b5a11e-3b54-42d2-9102-0a7cb1f79ebf}","prefs":[],"schema":1480349193877,"blockID":"i838","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128327","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the Add-on Guidelines.","name":"Cyti Web (malware)","created":"2015-02-06T14:29:12Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1ba0e57c-4c0c-4eb6-26e7-c2016769c343","last_modified":1480349196965},{"guid":"/^({bf67a47c-ea97-4caf-a5e3-feeba5331231}|{24a0cfe1-f479-4b19-b627-a96bf1ea3a56})$/","prefs":[],"schema":1480349193877,"blockID":"i542","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963819","who":"All Firefox users who have this add-on installed.","why":"This add-on has been repeatedly blocked before and keeps showing up with new add-on IDs, in violation of the Add-on Guidelines.","name":"MixiDJ (malware)","created":"2014-01-28T14:10:49Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fc442b64-1b5d-bebb-c486-f431b154f3db","last_modified":1480349196622},{"guid":"/^({ebd898f8-fcf6-4694-bc3b-eabc7271eeb1}|{46008e0d-47ac-4daa-a02a-5eb69044431a}|{213c8ed6-1d78-4d8f-8729-25006aa86a76}|{fa23121f-ee7c-4bd8-8c06-123d087282c5}|{19803860-b306-423c-bbb5-f60a7d82cde5})$/","prefs":[],"schema":1480349193877,"blockID":"i622","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947482","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is known to change user settings without their consent, is distributed under multiple add-on IDs, and is also correlated with reports of tab functions being broken in Firefox, in violation of the Add-on Guidelines.","name":"WiseConvert","created":"2014-06-18T13:48:26Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ffd184fa-aa8f-8a75-ff00-ce285dec5b22","last_modified":1480349196597},{"guid":"/^({fa95f577-07cb-4470-ac90-e843f5f83c52}|ffxtlbr@speedial\\.com)$/","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i696","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1031115","who":"All Firefox users who have any of these add-ons installed. Users who wish to continue using these add-ons can enable them in the Add-ons Manager.","why":"These add-ons are silently installed and change homepage and search defaults without user consent, in violation of the Add-on Guidelines. They are also distributed under more than one add-on ID.","name":"Speedial","created":"2014-08-21T13:55:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"130c7419-f727-a2fb-3891-627bc69a43bb","last_modified":1480349196565},{"guid":"pennerdu@faceobooks.ws","prefs":[],"schema":1480349193877,"blockID":"i442","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=904050","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Console Video (malware)","created":"2013-08-13T14:00:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fb83e48e-a780-9d06-132c-9ecc65b43674","last_modified":1480349196541},{"guid":"anttoolbar@ant.com","prefs":[],"schema":1480349193877,"blockID":"i88","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=748269","who":"All Firefox users who have installed version 2.4.6.4 of the Ant Video Downloader and Player add-on.","why":"Version 2.4.6.4 of the Ant Video Downloader and Player add-on is causing a very high number of crashes in Firefox. There's an updated version 2.4.6.5 that doesn't have this problem. All users are recommended to update as soon as possible.","name":"Ant Video Downloader and Player","created":"2012-05-01T10:32:11Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.4.6.4","minVersion":"2.4.6.4","targetApplication":[]}],"id":"9eef435b-39d4-2b73-0810-44b0d3ff52ad","last_modified":1480349196509},{"guid":"{E90FA778-C2B7-41D0-9FA9-3FEC1CA54D66}","prefs":[],"schema":1480349193877,"blockID":"i446","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=788838","who":"All Firefox users who have this add-on installed. The add-on can be enabled again in the Add-ons Manager.","why":"This add-on is installed silently, in violation of our Add-on Guidelines.","name":"YouTube to MP3 Converter","created":"2013-09-06T15:59:29Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"83eb6337-a3b6-84e4-e76c-ee9200b80796","last_modified":1480349196471},{"guid":"{ad7ce998-a77b-4062-9ffb-1d0b7cb23183}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i804","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080839","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and is considered malware, in violation of the Add-on Guidelines.","name":"Astromenda Search Addon","created":"2014-12-15T10:53:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"633f9999-c81e-bd7a-e756-de7d34feb39d","last_modified":1480349196438},{"guid":"{52b0f3db-f988-4788-b9dc-861d016f4487}","prefs":[],"schema":1480349193877,"blockID":"i584","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=974104","who":"All Firefox users who have these add-ons installed. If you wish to continue using these add-ons, you can enable them in the Add-ons Manager.","why":"Versions of this add-on are silently installed by the Free Driver Scout installer, in violation of our Add-on Guidelines.","name":"Web Check (Free Driver Scout bundle)","created":"2014-05-22T11:07:00Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.1.9999999","minVersion":"0","targetApplication":[]}],"id":"cba0ac44-90f9-eabb-60b0-8da2b645e067","last_modified":1480349196363},{"guid":"dodatek@flash2.pl","prefs":[],"schema":1480349193877,"blockID":"i1279","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1312748","who":"Any user with version 1.3 or newer of this add-on installed.","why":"This add-on claims to be a flash plugin and it does some work on youtube, but it also steals your facebook and adfly credentials and sends them to a remote server.","name":"Aktualizacja Flash WORK addon","created":"2016-10-27T15:52:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"1.3","targetApplication":[]}],"id":"2dab5211-f9ec-a1bf-c617-6f94f28b5ee1","last_modified":1480349196331},{"guid":"{2d069a16-fca1-4e81-81ea-5d5086dcbd0c}","prefs":[],"schema":1480349193877,"blockID":"i440","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=903647","who":"All Firefox users who have this add-on installed.","why":"This add-on is installed silently and doesn't follow many other of the Add-on Guidelines. If you want to continue using this add-on, you can enable it in the Add-ons Manager.","name":"GlitterFun","created":"2013-08-09T16:26:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e3f77f3c-b1d6-3b29-730a-846007b9cb16","last_modified":1480349196294},{"guid":"xivars@aol.com","prefs":[],"schema":1480349193877,"blockID":"i501","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=946420","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Video Plugin Facebook (malware)","created":"2013-12-04T15:34:32Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3303d201-7006-3c0d-5fd5-45503e2e690c","last_modified":1480349196247},{"guid":"2bbadf1f-a5af-499f-9642-9942fcdb7c76@f05a14cc-8842-4eee-be17-744677a917ed.com","prefs":[],"schema":1480349193877,"blockID":"i700","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1052599","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is widely considered malware and is apparently installed silently into users' systems, in violation of the Add-on Guidelines.","name":"PIX Image Viewer","created":"2014-08-21T16:15:16Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1b72889b-90e6-ea58-4fe8-d48257df7d8b","last_modified":1480349196212},{"guid":"/^[0-9a-f]+@[0-9a-f]+\\.info/","prefs":[],"schema":1480349193877,"blockID":"i256","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806451","who":"All Firefox users who have installed any of these add-ons.","why":"The set of extensions labeled as Codec, Codec-M, Codec-C and other names are malware being distributed as genuine add-ons.\r\n\r\nIf you think an add-on you installed was incorrectly blocked and the block dialog pointed you to this page, please comment on this blog post.","name":"Codec extensions (malware)","created":"2013-01-22T12:16:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0c654540-00f2-0ad4-c9be-7ca2ace5341e","last_modified":1480349196184},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i600","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:16:08Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.5.*","minVersion":"3.15.5","targetApplication":[]}],"id":"51c4ab3b-9ad3-c5c3-98c8-a220025fc5a3","last_modified":1480349196158},{"guid":"{729c9605-0626-4792-9584-4cbe65b243e6}","prefs":[],"schema":1480349193877,"blockID":"i788","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Browser Ext Assistance","created":"2014-11-20T10:07:19Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3c588238-2501-6a53-65ea-5c8ff0f3e51d","last_modified":1480349196123},{"guid":"unblocker20__web@unblocker.yt","prefs":[],"schema":1480349193877,"blockID":"i1213","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"This add-on is a copy of YouTube Unblocker, which was originally blocked due to malicious activity.","name":"YouTube Unblocker 2.0","created":"2016-05-09T17:28:18Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"de305335-e9f3-f410-cf5c-f88b7ad4b088","last_modified":1480349196088},{"guid":"webbooster@iminent.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i630","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=866943","who":"All Firefox users who have any of these add-ons installed. Users who wish to continue using them can enable them in the Add-ons Manager.","why":"These add-ons have been silently installed repeatedly, and change settings without user consent, in violation of the Add-on Guidelines.","name":"Iminent Minibar","created":"2014-06-26T15:49:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d894ea79-8215-7a0c-b0e9-be328c3afceb","last_modified":1480349196032},{"guid":"jid1-uabu5A9hduqzCw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1016","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1208051","who":"All users who have this add-on installed.","why":"This add-on is injecting unwanted and unexpected advertisements into all web pages, and masking this behavior as ad-blocking in its code.","name":"SpeedFox (malware)","created":"2015-09-24T09:49:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"31397419-3dfa-9db3-f1aa-e812d4220669","last_modified":1480349196001},{"guid":"/^firefox@(jumpflip|webconnect|browsesmart|mybuzzsearch|outobox|greygray|lemurleap|divapton|secretsauce|batbrowse|whilokii|linkswift|qualitink|browsefox|kozaka|diamondata|glindorus|saltarsmart|bizzybolt|websparkle)\\.(com?|net|org|info|biz)$/","prefs":[],"schema":1480349193877,"blockID":"i548","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=937405","who":"All Firefox users who have one or more of these add-ons installed. If you wish to continue using any of these add-ons, they can be enabled in the Add-ons Manager.","why":"A large amount of add-ons developed by Yontoo are known to be silently installed and otherwise violate the Add-on Guidelines.","name":"Yontoo add-ons","created":"2014-01-30T15:06:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bfaf3510-397e-48e6-cc4f-74202aaaed54","last_modified":1480349195955},{"guid":"firefox@bandoo.com","prefs":[],"schema":1480349193877,"blockID":"i23","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=629634","who":"Users of Bandoo version 5.0 for Firefox 3.6 and later.","why":"This add-on causes a high volume of Firefox crashes.","name":"Bandoo","created":"2011-03-01T23:30:23Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"5.0","minVersion":"5.0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.7a1pre"}]}],"id":"bd487cf4-3f6a-f956-a6e9-842ac8deeac5","last_modified":1480349195915},{"guid":"5nc3QHFgcb@r06Ws9gvNNVRfH.com","prefs":[],"schema":1480349193877,"blockID":"i372","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=875752","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware pretending to be the Flash Player plugin.","name":"Flash Player 11 (malware)","created":"2013-06-18T13:23:40Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dc71fcf5-fae4-5a5f-6455-ca7bbe4202db","last_modified":1480349195887},{"guid":"/^(7tG@zEb\\.net|ru@gfK0J\\.edu)$/","prefs":[],"schema":1480349193877,"blockID":"i854","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=952255","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the Add-on Guidelines.","name":"youtubeadblocker (malware)","created":"2015-02-09T15:41:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cfe42207-67a9-9b88-f80c-994e6bdd0c55","last_modified":1480349195851},{"guid":"{a7aae4f0-bc2e-a0dd-fb8d-68ce32c9261f}","prefs":[],"schema":1480349193877,"blockID":"i378","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=865090","who":"All Firefox users who have installed this add-on.","why":"This extension is malware that hijacks Facebook accounts for malicious purposes.","name":"Myanmar Extension for Facebook (malware)","created":"2013-06-18T15:58:54Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"30ecd9b9-4023-d9ef-812d-f1a75bb189b0","last_modified":1480349195823},{"guid":"a88a77ahjjfjakckmmabsy278djasi@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1034","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1211171","who":"All users who have this add-on installed.","why":"This is a malicious add-on that takes over Facebook accounts.","name":"Fast Unlock (malware)","created":"2015-10-05T16:28:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f801f112-3e8f-770f-10db-384349a36026","last_modified":1480349195798},{"guid":"crossriderapp5060@crossrider.com","prefs":[],"schema":1480349193877,"blockID":"i228","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=810016","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently side-installed by other software, and it overrides user preferences and inserts advertisements in web content.","name":"Savings Sidekick","created":"2012-11-29T16:31:13Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a37f76ac-7b77-b5a3-bac8-addaacf34bae","last_modified":1480349195769},{"guid":"/^(saamazon@mybrowserbar\\.com)|(saebay@mybrowserbar\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i672","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011337","who":"All Firefox users who have these add-ons installed. Users wishing to continue using these add-ons can enable them in the Add-ons Manager.","why":"These add-ons are being silently installed, in violation of the Add-on Guidelines.","name":"Spigot Shopping Assistant","created":"2014-07-22T15:13:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e072a461-ee5a-c83d-8d4e-5686eb585a15","last_modified":1480349195347},{"guid":"{b99c8534-7800-48fa-bd71-519a46cdc7e1}","prefs":[],"schema":1480349193877,"blockID":"i596","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011325","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed, in violation with our Add-on Guidelines.","name":"BrowseMark","created":"2014-06-12T13:19:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f411bb0f-7c82-9061-4a80-cabc8ff45beb","last_modified":1480349195319},{"guid":"/^({94d62e35-4b43-494c-bf52-ba5935df36ef}|firefox@advanceelite\\.com|{bb7b7a60-f574-47c2-8a0b-4c56f2da9802})$/","prefs":[],"schema":1480349193877,"blockID":"i856","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1130323","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the Add-on Guidelines.","name":"AdvanceElite (malware)","created":"2015-02-09T15:51:11Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e3d52650-d3e2-4cef-71f7-e6188f56fe4d","last_modified":1480349195286},{"guid":"{458fb825-2370-4973-bf66-9d7142141847}","prefs":["app.update.auto","app.update.enabled","app.update.interval","app.update.url"],"schema":1480349193877,"blockID":"i1024","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1209588","who":"All users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on hides itself in the Add-ons Manager, interrupts the Firefox update process, and reportedly causes other problems to users, in violation of the Add-on Guidelines.","name":"Web Shield","created":"2015-09-29T09:25:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"32c5baa7-d547-eaab-302d-b873c83bfe2d","last_modified":1480349195258},{"guid":"{f2456568-e603-43db-8838-ffa7c4a685c7}","prefs":[],"schema":1480349193877,"blockID":"i778","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Sup-SW","created":"2014-11-07T13:53:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"93568fa2-0cb7-4e1d-e893-d7261e81547c","last_modified":1480349195215},{"guid":"{77BEC163-D389-42c1-91A4-C758846296A5}","prefs":[],"schema":1480349193877,"blockID":"i566","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=964594","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-on Manager.","why":"This add-on is silently installed into Firefox, in violation of the Add-on Guidelines.","name":"V-Bates","created":"2014-03-05T13:20:54Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"080edbac-25d6-e608-abdd-feb1ce7a9a77","last_modified":1480349195185},{"guid":"helper@vidscrab.com","prefs":[],"schema":1480349193877,"blockID":"i1077","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1231010","who":"All Firefox users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on injects remote scripts and injects unwanted content into web pages.","name":"YouTube Video Downloader (from AddonCrop)","created":"2016-01-14T14:32:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"36b2e1e0-5fda-bde3-db55-dfcbe24dfd04","last_modified":1480349195157},{"guid":"/^ext@WebexpEnhancedV1alpha[0-9]+\\.net$/","prefs":[],"schema":1480349193877,"blockID":"i535","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=952717","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, it can be enabled in the Add-ons Manager.","why":"This add-on is generally unwanted by users and uses multiple random IDs in violation of the Add-on Guidelines.","name":"Webexp Enhanced","created":"2014-01-09T11:22:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c7d6a30d-f3ee-40fb-5256-138dd4593a61","last_modified":1480349195123},{"guid":"jid1-XLjasWL55iEE1Q@jetpack","prefs":[],"schema":1480349193877,"blockID":"i578","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1002037","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that presents itself as \"Flash Player\" but is really injecting unwanted content into Facebook pages.","name":"Flash Player (malware)","created":"2014-04-28T16:25:03Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1e75b2f0-02fc-77a4-ad2f-52a4caff1a71","last_modified":1480349195058},{"guid":"{a3a5c777-f583-4fef-9380-ab4add1bc2a8}","prefs":[],"schema":1480349193877,"blockID":"i142","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=792132","who":"Todos los usuarios de Firefox que instalaron la versi\u00f3n 4.2 del complemento Cuevana Stream.\r\n\r\nAll Firefox users who have installed version 4.2 of the Cuevana Stream add-on.","why":"Espa\u00f1ol\r\nUna versi\u00f3n maliciosa del complemento Cuevana Stream (4.2) fue colocada en el sitio Cuevana y distribuida a muchos usuarios del sitio. Esta versi\u00f3n recopila informaci\u00f3n de formularios web y los env\u00eda a una direcci\u00f3n remota con fines maliciosos. Se le recomienda a todos los usuarios que instalaron esta versi\u00f3n que cambien sus contrase\u00f1as inmediatamente, y que se actualicen a la nueva versi\u00f3n segura, que es la 4.3.\r\n\r\nEnglish\r\nA malicious version of the Cuevana Stream add-on (4.2) was uploaded to the Cuevana website and distributed to many of its users. This version takes form data and sends it to a remote location with malicious intent. It is recommended that all users who installed this version to update their passwords immediately, and update to the new safe version, version 4.3.\r\n\r\n","name":"Cuevana Stream (malicious version)","created":"2012-09-18T13:37:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"4.2","minVersion":"4.2","targetApplication":[]}],"id":"91e551b9-7e94-60e2-f1bd-52f25844ab16","last_modified":1480349195007},{"guid":"{34712C68-7391-4c47-94F3-8F88D49AD632}","prefs":[],"schema":1480349193877,"blockID":"i922","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1173154","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-09T15:27:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"dd350efb-34ac-2bb5-5afd-eed722dbb916","last_modified":1480349194976},{"guid":"PDVDZDW52397720@XDDWJXW57740856.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i846","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128320","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and attempts to change user settings like the home page and default search, in violation of the Add-on Guidelines.","name":"Ge-Force","created":"2015-02-06T15:03:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c33e950c-c977-ed89-c86a-3be8c4be1967","last_modified":1480349194949},{"guid":"{977f3b97-5461-4346-92c8-a14c749b77c9}","prefs":[],"schema":1480349193877,"blockID":"i69","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=729356","who":"All Firefox users who have this add-on installed.","why":"This add-on adds apps to users' accounts, with full access permissions, and sends spam posts using these apps, all without any consent from users.","name":"Zuperface+","created":"2012-02-22T16:41:23Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f105bdc7-7ebd-587c-6344-1533249f50b3","last_modified":1480349194919},{"guid":"discoverypro@discoverypro.com","prefs":[],"schema":1480349193877,"blockID":"i582","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1004231","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enabled it in the Add-ons Manager.","why":"This add-on is silently installed by the CNET installer for MP3 Rocket and probably other software packages. This is in violation of the Add-on Guidelines.","name":"Website Discovery Pro","created":"2014-04-30T16:10:03Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"34eab242-6fbc-a459-a89e-0dc1a0b8355d","last_modified":1480349194878},{"guid":"jid1-bKSXgRwy1UQeRA@jetpack","prefs":[],"schema":1480349193877,"blockID":"i680","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=979856","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into user's systems, in violation of the Add-on Guidelines.","name":"Trusted Shopper","created":"2014-08-01T16:34:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f701b790-b266-c69d-0fba-f2d189cb0f34","last_modified":1480349194851},{"guid":"bcVX5@nQm9l.org","prefs":[],"schema":1480349193877,"blockID":"i848","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128266","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the Add-on Guidelines.","name":"boomdeal","created":"2015-02-09T15:21:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f8d6d4e1-b9e6-07f5-2b49-192106a45d82","last_modified":1480349194799},{"guid":"aytac@abc.com","prefs":[],"schema":1480349193877,"blockID":"i504","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947341","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks users' Facebook accounts.","name":"Facebook Haber (malware)","created":"2013-12-06T12:07:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bfaf8298-dd69-165c-e1ed-ad55584abd18","last_modified":1480349194724},{"guid":"Adobe@flash.com","prefs":[],"schema":1480349193877,"blockID":"i136","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=790100","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware posing as a legitimate Adobe product.","name":"Adobe Flash (malware)","created":"2012-09-10T16:09:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"47ac744e-3176-5cb6-1d02-b460e0c7ada0","last_modified":1480349194647},{"guid":"{515b2424-5911-40bd-8a2c-bdb20286d8f5}","prefs":[],"schema":1480349193877,"blockID":"i491","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=940753","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted.","name":"Connect DLC","created":"2013-11-29T14:52:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6d658443-b34a-67ad-934e-cbf7cd407460","last_modified":1480349194580},{"guid":"/^({3f3cddf8-f74d-430c-bd19-d2c9147aed3d}|{515b2424-5911-40bd-8a2c-bdb20286d8f5}|{17464f93-137e-4646-a0c6-0dc13faf0113}|{d1b5aad5-d1ae-4b20-88b1-feeaeb4c1ebc}|{aad50c91-b136-49d9-8b30-0e8d3ead63d0})$/","prefs":[],"schema":1480349193877,"blockID":"i516","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947478","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted and being distributed under multiple add-on IDs.","name":"Connect DLC","created":"2013-12-20T12:38:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"96f8e157-8b8b-8e2e-76cd-6850599b4370","last_modified":1480349194521},{"guid":"wxtui502n2xce9j@no14","prefs":[],"schema":1480349193877,"blockID":"i1012","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1206157","who":"All users who have this add-on installed.","why":"This is a malicious add-on that takes over Facebook accounts.","name":"Video fix (malware)","created":"2015-09-21T13:04:09Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"246798ac-25fa-f4a4-258c-a71f9f6ae091","last_modified":1480349194463},{"guid":"flashX@adobe.com","prefs":[],"schema":1480349193877,"blockID":"i168","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=807052","who":"All Firefox users who have this add-on installed.","why":"This is an exploit proof-of-concept created for a conference presentation, which will probably be copied and modified for malicious purposes. \r\n","name":"Zombie Browser Pack","created":"2012-10-30T12:07:41Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d7c69812-801c-8d8e-12cb-c5171bdc48a1","last_modified":1480349194428},{"guid":"/^(ff\\-)?dodate(kKKK|XkKKK|k|kk|kkx|kR)@(firefox|flash(1)?)\\.pl|dode(ee)?k@firefoxnet\\.pl|(addon|1)@upsolutions\\.pl$/","prefs":[],"schema":1480349193877,"blockID":"i1278","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1312748","who":"Any user with a version of this add-on installed.","why":"This add-on claims to be a flash plugin and it does some work on youtube, but it also steals your facebook and adfly credentials and sends them to a remote server.","name":"Aktualizacja dodatku Flash Add-on","created":"2016-10-27T10:52:53Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"389aec65-a15d-8276-c7a8-691ac283c9f1","last_modified":1480349194386},{"guid":"tmbepff@trendmicro.com","prefs":[],"schema":1480349193877,"blockID":"i1223","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1275245","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"Add-on is causing a high-frequency crash in Firefox.","name":"Trend Micro BEP 9.2 to 9.2.0.1023","created":"2016-05-30T17:07:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"9.2.0.1023","minVersion":"9.2","targetApplication":[]}],"id":"46f75b67-2675-bdde-be93-7ea03475d405","last_modified":1480349194331},{"guid":"{4889ddce-7a83-45e6-afc9-1e4f1149fff4}","prefs":[],"schema":1480343836083,"blockID":"i840","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128327","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the Add-on Guidelines.","name":"Cyti Web (malware)","created":"2015-02-06T14:30:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"be600f35-0633-29f3-c571-819e19d85db9","last_modified":1480349193867},{"guid":"{55dce8ba-9dec-4013-937e-adbf9317d990","prefs":[],"schema":1480343836083,"blockID":"i690","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1048647","who":"All Firefox users. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is being silently installed in users' systems, in violation of the Add-on Guidelines.","name":"Deal Keeper","created":"2014-08-12T16:23:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"512b0d40-a10a-5ddc-963b-b9c487eb1422","last_modified":1480349193833},{"guid":"/^new@kuot\\.pro|{13ec6687-0b15-4f01-a5a0-7a891c18e4ee}|rebeccahoppkins(ty(tr)?)?@gmail\\.com|{501815af-725e-45be-b0f2-8f36f5617afc}|{9bdb5f1f-b1e1-4a75-be31-bdcaace20a99}|{e9d93e1d-792f-4f95-b738-7adb0e853b7b}|dojadewaskurwa@gmail\\.com$/","prefs":[],"schema":1480343836083,"blockID":"i1414","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1312748","who":"All users who have this add-on installed.","why":"This add-on claims to be a flash plugin and it does some work on youtube, but it also steals your facebook and adfly credentials and sends them to a remote server.","name":"Aktualizacja dodatku Flash (malware)","created":"2016-10-28T18:06:03Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5cebc983-bc88-d5f8-6807-bd1cbfcd82fd","last_modified":1480349193798},{"guid":"/^pink@.*\\.info$/","prefs":[],"schema":1480343836083,"blockID":"i238","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806543","who":"All Firefox users (Firefox 19 and above) who have any of these add-ons installed.","why":"This is a set of malicious add-ons that affect many users and are installed without their consent.","name":"Pink add-ons (malware)","created":"2012-12-07T13:46:20Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"18.0"}]}],"id":"0d964264-8bd6-b78d-3c6c-92046c7dc8d0","last_modified":1480349193764},{"guid":"{58d2a791-6199-482f-a9aa-9b725ec61362}","prefs":[],"schema":1480343836083,"blockID":"i746","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963787","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Start Page","created":"2014-10-17T16:01:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8ebbc7d0-635c-b74a-de9f-16eb5837b36a","last_modified":1480349193730},{"guid":"{94cd2cc3-083f-49ba-a218-4cda4b4829fd}","prefs":[],"schema":1480343836083,"blockID":"i590","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1013678","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' profiles, in violation of the Add-on Guidelines.","name":"Value Apps","created":"2014-06-03T16:12:50Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"556b8d4d-d6c2-199d-9f33-8eccca07e8e7","last_modified":1480349193649},{"guid":"contentarget@maildrop.cc","prefs":[],"schema":1480343836083,"blockID":"i818","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1119971","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks Facebook accounts.","name":"Astro Play (malware)","created":"2015-01-12T09:29:19Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"440e9923-027a-6089-e036-2f78937dc193","last_modified":1480349193622},{"guid":"unblocker30__web@unblocker.yt","prefs":[],"schema":1480343836083,"blockID":"i1228","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"This add-on is a copy of YouTube Unblocker, which was originally blocked due to malicious activity.","name":"YouTube Unblocker 3.0","created":"2016-06-01T15:17:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2d83e640-ef9d-f260-f5a3-a1a5c8390bfc","last_modified":1480349193595},{"guid":"noOpus@outlook.com","prefs":[],"schema":1480343836083,"blockID":"i816","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1119659","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems without their consent and performs unwanted operations.","name":"Full Screen (malware)","created":"2015-01-09T12:52:32Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b64d7cef-8b6c-2575-16bc-732fca7db377","last_modified":1480349193537},{"guid":"{c95a4e8e-816d-4655-8c79-d736da1adb6d}","prefs":[],"schema":1480343836083,"blockID":"i433","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844945","who":"All Firefox users who have this add-on installed.","why":"This add-on bypasses the external install opt in screen in Firefox, violating the Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Hotspot Shield","created":"2013-08-09T11:25:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b3168278-a8ae-4882-7f26-355bc362bed0","last_modified":1480349193510},{"guid":"{9802047e-5a84-4da3-b103-c55995d147d1}","prefs":[],"schema":1480343836083,"blockID":"i722","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Web Finder Pro","created":"2014-10-07T12:58:14Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"50097c29-26b1-bf45-ffe1-83da217eb127","last_modified":1480349193482},{"guid":"/^({bf9194c2-b86d-4ebc-9b53-1c08b6ff779e}|{61a83e16-7198-49c6-8874-3e4e8faeb4f3}|{f0af464e-5167-45cf-9cf0-66b396d1918c}|{5d9968c3-101c-4944-ba71-72d77393322d}|{01e86e69-a2f8-48a0-b068-83869bdba3d0})$/","prefs":[],"schema":1480343836083,"blockID":"i515","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947473","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by using multiple add-on IDs and making unwanted settings changes.","name":"VisualBee Toolbar","created":"2013-12-20T12:26:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"029fa6f9-2351-40b7-5443-9a66e057f199","last_modified":1480349193449},{"guid":"/^({d50bfa5f-291d-48a8-909c-5f1a77b31948}|{d54bc985-6e7b-46cd-ad72-a4a266ad879e}|{d89e5de3-5543-4363-b320-a98cf150f86a}|{f3465017-6f51-4980-84a5-7bee2f961eba}|{fae25f38-ff55-46ea-888f-03b49aaf8812})$/","prefs":[],"schema":1480343836083,"blockID":"i1137","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251940","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hides itself from view and disables various security features in Firefox.","name":"Watcher (malware)","created":"2016-03-04T17:56:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"252e18d0-85bc-7bb3-6197-5f126424c9b3","last_modified":1480349193419},{"guid":"ffxtlbr@claro.com","prefs":[],"schema":1480343836083,"blockID":"i218","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=816762","who":"All Firefox users who have installed this add-on.","why":"The Claro Toolbar is side-installed with other software, unexpectedly changing users' settings and then making it impossible for these settings to be reverted by users.","name":"Claro Toolbar","created":"2012-11-29T16:07:00Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e017a3b2-9b37-b8a0-21b0-bc412ae8a7f4","last_modified":1480349193385},{"guid":"/^(.*@(unblocker\\.yt|sparpilot\\.com))|(axtara@axtara\\.com)$/","prefs":[],"schema":1480343836083,"blockID":"i1229","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"These add-ons are copies of YouTube Unblocker, which was originally blocked due to malicious activity.","name":"YouTube Unblocker (various)","created":"2016-06-03T15:28:39Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c677cc5d-5b1e-8aa2-5cea-5a8dddce2ecf","last_modified":1480349193344},{"guid":"/^(j003-lqgrmgpcekslhg|SupraSavings|j003-dkqonnnthqjnkq|j003-kaggrpmirxjpzh)@jetpack$/","prefs":[],"schema":1480343836083,"blockID":"i692","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1048656","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is being silently installed in users' systems, in violation of the Add-on Guidelines.","name":"SupraSavings","created":"2014-08-12T16:27:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b0d30256-4581-1489-c241-d2e85b6c38f4","last_modified":1480349193295},{"guid":"helperbar@helperbar.com","prefs":[],"schema":1480343836083,"blockID":"i258","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=817786","who":"All Firefox users who have this add-on installed. This only applies to version 1.0 of Snap.do. Version 1.1 fixed all the issues for which this block was created.","why":"This extension violates a number of our Add-on Guidelines, particularly on installation and settings handling. It also causes some stability problems in Firefox due to the way the toolbar is handled.\r\n\r\nUsers who wish to keep the add-on enabled can enable it again in the Add-ons Manager.","name":"Snap.do","created":"2013-01-28T13:52:26Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0","minVersion":"0","targetApplication":[]}],"id":"f1ede5b8-7757-5ec5-d8ed-1a01889154aa","last_modified":1480349193254},{"guid":"/^((support2_en@adobe14\\.com)|(XN4Xgjw7n4@yUWgc\\.com)|(C7yFVpIP@WeolS3acxgS\\.com)|(Kbeu4h0z@yNb7QAz7jrYKiiTQ3\\.com)|(aWQzX@a6z4gWdPu8FF\\.com)|(CBSoqAJLYpCbjTP90@JoV0VMywCjsm75Y0toAd\\.com)|(zZ2jWZ1H22Jb5NdELHS@o0jQVWZkY1gx1\\.com))$/","prefs":[],"schema":1480343836083,"blockID":"i326","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=841791","who":"All users who have this add-on installed.","why":"This extension is malware, installed pretending to be the Flash Player plugin.","name":"Flash Player (malware)","created":"2013-03-22T14:49:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3142020b-8af9-1bac-60c5-ce5ad0ff3d42","last_modified":1480349193166},{"guid":"newmoz@facebook.com","prefs":[],"schema":1480343836083,"blockID":"i576","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=997986","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook user accounts and sends spam on the user's behalf.","name":"Facebook Service Pack (malware)","created":"2014-04-22T14:34:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d85798d3-9b87-5dd9-ace2-64914b93df77","last_modified":1480349193114},{"guid":"flvto@hotger.com","prefs":[],"schema":1480343836083,"blockID":"i1211","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1270175","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"This add-on reports every visited URL to a third party without disclosing it to the user.","name":"YouTube to MP3 Button","created":"2016-05-04T16:26:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a14d355f-719f-3b97-506c-083cc97cebaa","last_modified":1480349193088},{"guid":"{0F827075-B026-42F3-885D-98981EE7B1AE}","prefs":[],"schema":1480343836083,"blockID":"i334","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=862272","who":"All Firefox users who have this extension installed.","why":"This extension is malicious and is installed under false pretenses, causing problems for many Firefox users. Note that this is not the same BrowserProtect extension that is listed on our add-ons site. That one is safe to use.","name":"Browser Protect / bProtector (malware)","created":"2013-04-16T13:25:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"aad4545f-8f9d-dd53-2aa8-e8945cad6185","last_modified":1480349192987}]} \ No newline at end of file +{"data":[{"guid":"/(({a4d84dae-7906-4064-911b-3ad2b1ec178b})|({d7e388c5-1cd0-4aa6-8888-9172f90951fb})|({a67f4004-855f-4e6f-8ef0-2ac735614967})|({25230eb3-db35-4613-8c03-e9a3912b7004})|({37384122-9046-4ff9-a31f-963767d9fe33})|({f1479b0b-0762-4ba2-97fc-010ea9dd4e73})|({53804e15-69e5-4b24-8883-c8f68bd98cf6})|({0f2aec80-aade-46b8-838c-54eeb595aa96})|({b65d6378-6840-4da6-b30e-dee113f680aa})|({e8fc3f33-14b7-41aa-88a1-d0d7b5641a50})|({c49ee246-d3d2-4e88-bfdb-4a3b4de9f974}))$/","prefs":[],"schema":1534621297612,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1484536","why":"Add-ons that don't respect user choice by overriding search.","name":"Search hijacking add-ons (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"01c22882-868b-43e1-bb23-29d5dc7bc11b","last_modified":1534781959544},{"guid":"/^((firefox@browser-security\\.de)|(firefox@smarttube\\.io)|({0fde9597-0508-47ff-ad8a-793fa059c4e7})|(info@browser-privacy\\.com)|({d3b98a68-fd64-4763-8b66-e15e47ef000a})|({36ea170d-2586-45fb-9f48-5f6b6fd59da7})|(youtubemp3converter@yttools\\.io)|(simplysearch@dirtylittlehelpers\\.com)|(extreme@smarttube\\.io)|(selfdestructingcookies@dirtylittlehelpers\\.com)|({27a1b6d8-c6c9-4ddd-bf20-3afa0ccf5040})|({2e9cae8b-ee3f-4762-a39e-b53d31dffd37})|(adblock@smarttube\\.io)|({a659bdfa-dbbe-4e58-baf8-70a6975e47d0})|({f9455ec1-203a-4fe8-95b6-f6c54a9e56af})|({8c85526d-1be9-4b96-9462-aa48a811f4cf})|(mail@quick-buttons\\.de)|(youtubeadblocker@yttools\\.io)|(extension@browser-safety\\.org)|(contact@web-security\\.com)|(videodownloader@dirtylittlehelpers\\.com)|(googlenotrack@dirtylittlehelpers\\.com)|(develop@quick-amz\\.com))$/","prefs":[],"schema":1534448497752,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483995","why":"Sending user data to remote servers unnecessarily, and potential for remote code execution. Suspicious account activity for multiple accounts on AMO.","name":"Web Security and others"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"96b2e7d5-d4e4-425e-b275-086dc7ccd6ad","last_modified":1534449179691},{"guid":"/^((de\\.firefoxextension12345@asdf\\.pl)|(deex1@de\\.com)|(esex1@ese\\.com)|(estrellach@protonmail\\.com)|(fifi312@protonmail\\.com)|(finex1@fin\\.com)|(firefoxextension123@asdf\\.pl)|(firefoxextension1234@asdf\\.pl)|(firefoxextension12345@asdf\\.pl)|(firefoxextension123456@asdf\\.pl)|(frexff1@frexff1\\.com)|(frexff2@frexff2\\.com)|(frexff3@frexff3\\.com)|(ind@niepodam\\.pl)|(jacob4311@protonmail\\.com)|(javonnu144@protonmail\\.com)|(keellon33-ff@protonmail\\.com)|(keellon33@protonmail\\.com)|(masetoo4113@protonmail\\.com)|(mikecosenti11@protonmail\\.com)|(paigecho@protonmail\\.com)|(salooo12@protonmail\\.com)|(swex1@swe\\.com)|(swex2@swe\\.com)|(swex3@swe\\.com)|(willburpoor@protonmail\\.com)|(williamhibburn@protonmail\\.com)|)$/","prefs":[],"schema":1534415492022,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483769","why":"Malware targeting Facebook","name":"Facebook malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"202fbae4-e904-430a-a244-63b0fb04385f","last_modified":1534415530239},{"guid":"/^((@svuznnqyxinw)|(myprivacytools@besttools\\.com)|(powertools@penprivacy\\.com)|(privacypro@mybestprivacy\\.com)|(realsecure@top10\\.com)|(rlbvpdfrlbgx@scoutee\\.net)|(vfjkurlfijwz@scoutee\\.net))$/","prefs":[],"schema":1534382102271,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1482322","why":"Add-ons that change the default search engine, taking away user control.","name":"Search hijacking add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"df852b6a-28be-4b10-9285-869f4761f111","last_modified":1534382538298},{"guid":"/^(({1a3fb414-0945-405c-a62a-9fe5e1a50c69})|({1a45f6aa-d80a-4317-84d2-0ce43671b08a})|({2d52a462-8bec-4708-9cd1-894b682bdc78})|({3f841cfc-de5a-421f-8bd7-2bf1d943b02a})|({5c7601bf-522b-47e5-b0f0-ea0e706af443})|({7ebe580f-71c9-4ef8-8073-f38deaeb9dfb})|({8b2188fd-1daf-4851-b387-28d964014353})|({8cee42ac-f1fe-40ae-aed6-24e3b76b2f77})|({8d13c4a9-5e8c-47a6-b583-681c83164ac9})|({9b1d775a-1877-45c9-ad48-d6fcfa4fff39})|({9efdbe5f-6e51-4a35-a41b-71dc939e6221})|({23f63efb-156e-440b-a96c-118bebc21057})|({026dfc8c-ecc8-41ba-b45f-70ffbd5cc672})|({34aa433c-27e9-4c87-a662-9f82f99eb9af})|({36f34d69-f22f-47c3-b4cd-4f37b7676107})|({39bd8607-0af4-4d6b-bd69-9a63c1825d3c})|({48c6ad6d-297c-4074-8fef-ca5f07683859})|({54aa688d-9504-481d-ba75-cfee421b98e0})|({59f59748-e6a8-4b41-87b5-9baadd75ddef})|({61d99407-1231-4edc-acc8-ab96cbbcf151})|({68ca8e3a-397a-4135-a3af-b6e4068a1eae})|({71beafd6-779b-4b7d-a78b-18a107277b59})|({83ed90f8-b07e-4c45-ba6b-ba2fe12cebb6})|({231dfb44-98e0-4bc4-b6ee-1dac4a836b08})|({273f0bce-33f4-45f6-ae03-df67df3864c2})|({392f4252-c731-4715-9f8d-d5815f766abb})|({484ec5d0-4cfd-4d96-88d0-a349bfc33780})|({569dbf47-cc10-41c4-8fd5-5f6cf4a833c7})|({578cad7a-57d5-404d-8dda-4d30de33b0c2})|({986b2c3f-e335-4b39-b3ad-46caf809d3aa})|({1091c11f-5983-410e-a715-0968754cff54})|({2330eb8a-e3fe-4b2e-9f17-9ddbfb96e6f5})|({5920b042-0af1-4658-97c1-602315d3b93d})|({6331a47f-8aae-490c-a9ad-eae786b4349f})|({6698b988-c3ef-4e1f-8740-08d52719eab5})|({30516f71-88d4-489b-a27f-d00a63ad459f})|({12089699-5570-4bf6-890f-07e7f674aa6e})|({84887738-92bf-4903-a5e8-695fd078c657})|({8562e48e-3723-412a-9ebd-b33d3d3b29dd})|({6e449795-c545-41be-92c0-5d467c147389})|({1e369c7c-6b61-436e-8978-4640687670d6})|({a03d427a-bd2e-42b6-828f-a57f38fac7b5})|({a77fc9b9-6ebb-418d-b0b6-86311c191158})|({a368025b-9828-43a1-8a5c-f6fab61c9be9})|({b1908b02-410d-4778-8856-7e259fbf471d})|({b9425ace-c2e9-4ec4-b564-4062546f4eca})|({b9845b5d-70c9-419c-a9a5-98ea8ee5cc01})|({ba99fee7-9806-4e32-8257-a33ffc3b8539})|({bdf8767d-ae4c-4d45-8f95-0ba29b910600})|({c6c4a718-cf91-4648-aa9b-170d66163cf2})|({ca0f2988-e1a8-4e83-afde-0dca56a17d5f})|({cac5db09-979b-40e3-8c8e-d96397b0eecb})|({d3b5280b-f8d8-4669-bdf6-91f23ae58042})|({d73d2f6a-ea24-4b1b-8c76-563fce9f786d})|({d77fed37-85c0-4b94-89bb-0d2849472b8d})|({d371abec-84bb-481b-acbf-235639451127})|({de47a3b4-dad1-4f4a-bdd6-8666586e29e8})|({ded6afad-2aaa-446b-b6bd-b12a8a61c945})|({e0c3a1ca-8e21-4d1b-b53b-ea115cf59172})|({e6bbf496-6489-4b48-8e5a-799aad4aa742})|({e63b262a-f9b8-4496-9c4b-9d3cbd6aea90})|({e73c1b5d-20f7-4d86-ad16-9de3c27718e2})|({eb01dc49-688f-4a21-aa8d-49bd88a8f319})|({edc9816b-60b4-493c-a090-01125e0b8018})|({effa2f97-0f07-44c8-99cb-32ac760a0621})|({f6e6fd9b-b89f-4e8d-9257-01405bc139a6})|({ff87977a-fefb-4a9d-b703-4b73dce8853d})|({ffea9e62-e516-4238-88a7-d6f9346f4955}))$/","prefs":[],"schema":1534335096640,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483191","why":"Add-ons that change the default search engine, taking away user control.","name":"Search hijacking add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"d9892a76-b22e-40bd-8073-89b0f8110ec7","last_modified":1534336165428},{"guid":"/^((Timemetric@tmetric)|(textMarkertool@underFlyingBirches\\.org)|(youpanel@jetpack)|({6f13489d-b274-45b6-80fa-e9daa140e1a4})|({568db771-c718-4587-bcd0-e3728ee53550})|({829827cd-03be-4fed-af96-dd5997806fb4})|({9077390b-89a9-41ad-998f-ab973e37f26f})|({8e7269ac-a171-4d9f-9c0a-c504848fd52f})|({aaaffe20-3306-4c64-9fe5-66986ebb248e})|({bf153de7-cdf2-4554-af46-29dabfb2aa2d})|({c579191c-6bb8-4795-adca-d1bf180b512d})|({e2a4966f-919d-4afc-a94f-5bd6e0606711})|({ee97f92d-1bfe-4e9d-816c-0dfcd63a6206}))$/","prefs":[],"schema":1534275699570,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1483206","why":"Add-ons that execute malicious remote code","name":"Various malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"2734325e-143b-4962-98bf-4b18c77407e2","last_modified":1534334500118},{"guid":"/^(({0f9e469e-4245-43f8-a7a8-7e730f80d284})|({117ca2f3-df4c-4e17-a5c5-b49077e9c731})|({11db147a-a1cb-43dd-9c05-0d11683483e1})|({1ed2af70-9e89-42db-a9e8-17ae594003ac})|({24ed6bdc-3085-413b-a62e-dc5dd30272f4})|({2aa19a7a-2a43-4e0d-a3dc-abb33fa7e2b6})|({3d6fbbb3-6c80-47bb-af20-56fcaebcb9ca})|({42f4c194-8929-42b9-a9a3-afa56dd0913b})|({46740fa0-896d-4f2e-a240-9478865c47c2})|({4718da68-a373-4a03-a77b-0f49b8bb40ee})|({4d41e0b8-bf7e-45ab-bd90-c426b420e3ee})|({50957a38-c15d-42da-94f5-325bc74a554c})|({5650fc63-a7c5-4627-8d0a-99b20dcbd94b})|({5c5c38ec-08bf-493a-9352-6ccf25d60c08})|({67ecb446-9ccd-4193-a27f-7bd1521bd03c})|({71f01ffe-226d-4634-9b21-968f5ce9f8f5})|({72f31855-2412-4998-a6ff-978f89bba0c3})|({7b3c1e86-2599-4e1a-ad98-767ae38286c8})|({7c37463c-001e-4f58-9e88-aaab2a624551})|({7de64f18-8e6b-4c41-9b05-d8872b418026})|({82dcf841-c7e1-4764-bb47-caa28909e447})|({872f20ea-196e-4d11-8835-1cc4c877b1b8})|({8efee317-546f-418d-82d3-60cc5187acf5})|({93deeba1-0126-43f7-a94d-4eecfce53b33})|({9cc12446-16da-4200-b284-d5fc18670825})|({9cd27996-6068-4597-8e97-bb63f783a224})|({9fdcedc7-ffde-44c3-94f6-4196b1e0d9fc})|({a191563e-ac30-4c5a-af3d-85bb9e9f9286})|({a4cb0430-c92e-44c6-9427-6a6629c4c5f6})|({a87f1b9b-8817-4bff-80fd-db96020c56c8})|({ae29a313-c6a9-48be-918d-1e4c67ba642f})|({b2cea58a-845d-4394-9b02-8a31cfbb4873})|({b420e2be-df31-4bea-83f4-103fe0aa558c})|({b77afcab-0971-4c50-9486-f6f54845a273})|({b868c6f4-5841-4c14-86ee-d60bbfd1cec1})|({b99ae7b1-aabb-4674-ba8f-14ed32d04e76})|({b9bb8009-3716-4d0c-bcb4-35f9874e931e})|({c53c4cbc-04a7-4771-9e97-c08c85871e1e})|({ce0d1384-b99b-478e-850a-fa6dfbe5a2d4})|({cf8e8789-e75d-4823-939f-c49a9ae7fba2})|({d0f67c53-42b5-4650-b343-d9664c04c838})|({dfa77d38-f67b-4c41-80d5-96470d804d09})|({e20c916e-12ea-445b-b6f6-a42ec801b9f8})|({e2a4966f-919d-4afc-a94f-5bd6e0606711})|({e7d03b09-24b3-4d99-8e1b-c510f5d13612})|({fa8141ba-fa56-414e-91c0-898135c74c9d})|({fc99b961-5878-46b4-b091-6d2f507bf44d})|(firedocs@mozilla\\.com)|(firetasks@mozilla\\.com)|(getta@mozilla\\.com)|(javideo@mozilla\\.com)|(javideo2@mozilla\\.com)|(javideos@mozilla\\.com)|(javideosz@mozilla\\.com)|(search_free@mozilla\\.com)|(search-unlisted@mozilla\\.com)|(search-unlisted101125511@mozilla\\.com)|(search-unlisted10155511@mozilla\\.com)|(search-unlisted1025525511@mozilla\\.com)|(search-unlisted1099120071@mozilla\\.com)|(search-unlisted1099125511@mozilla\\.com)|(search-unlisted109925511@mozilla\\.com)|(search-unlisted11@mozilla\\.com)|(search-unlisted111@mozilla\\.com)|(search-unlisted12@mozilla\\.com)|(search-unlisted14400770034@mozilla\\.com)|(search-unlisted144007741154@mozilla\\.com)|(search-unlisted144436110034@mozilla\\.com)|(search-unlisted14454@mozilla\\.com)|(search-unlisted1570124111@mozilla\\.com)|(search-unlisted1570254441111@mozilla\\.com)|(search-unlisted15721239034@mozilla\\.com)|(search-unlisted157441@mozilla\\.com)|(search-unlisted15757771@mozilla\\.com)|(search-unlisted1577122001@mozilla\\.com)|(search-unlisted15777441001@mozilla\\.com)|(search-unlisted15788120036001@mozilla\\.com)|(search-unlisted157881200361111@mozilla\\.com)|(search-unlisted1578899961111@mozilla\\.com)|(search-unlisted157999658@mozilla\\.com)|(search-unlisted158436561@mozilla\\.com)|(search-unlisted158440374111@mozilla\\.com)|(search-unlisted15874111@mozilla\\.com)|(search-unlisted1741395551@mozilla\\.com)|(search-unlisted17441000051@mozilla\\.com)|(search-unlisted174410000522777441@mozilla\\.com)|(search-unlisted1768fdgfdg@mozilla\\.com)|(search-unlisted180000411@mozilla\\.com)|(search-unlisted18000411@mozilla\\.com)|(search-unlisted1800411@mozilla\\.com)|(search-unlisted18011888@mozilla\\.com)|(search-unlisted1801668@mozilla\\.com)|(search-unlisted18033411@mozilla\\.com)|(search-unlisted180888@mozilla\\.com)|(search-unlisted181438@mozilla\\.com)|(search-unlisted18411@mozilla\\.com)|(search-unlisted18922544@mozilla\\.com)|(search-unlisted1955511@mozilla\\.com)|(search-unlisted2@mozilla\\.com)|(search-unlisted3@mozilla\\.com)|(search-unlisted4@mozilla\\.com)|(search-unlisted400@mozilla\\.com)|(search-unlisted40110@mozilla\\.com)|(search-unlisted5@mozilla\\.com)|(search-unlisted55@mozilla\\.com)|(search@mozilla\\.com)|(searchazsd@mozilla\\.com)|(smart246@mozilla\\.com)|(smarter1@mozilla\\.com)|(smarters1@mozilla\\.com)|(stream@mozilla\\.com)|(tahdith@mozilla\\.com)|(therill@mozilla\\.com)|(Updates@mozilla\\.com))$/","prefs":[],"schema":1534102906482,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1480591","why":"These add-ons violate the no-surprises and user-control policy.","name":"Search engine hijacking malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cee5c2ab-1059-4b15-a78c-1203116552c4","last_modified":1534157457677},{"guid":"/^((search-unlisted2@mozilla\\.com)|(search-unlisted3@mozilla\\.com)|(search-unlisted4@mozilla\\.com)|(search-unlisted5@mozilla\\.com)|(search-unlisted11@mozilla\\.com)|(search-unlisted12@mozilla\\.com)|(search-unlisted55@mozilla\\.com)|(search-unlisted111@mozilla\\.com)|(search-unlisted400@mozilla\\.com)|(search-unlisted40110@mozilla\\.com)|(search-unlisted17441000051@mozilla\\.com)|(search-unlisted174410000522777441@mozilla\\.com)|(search-unlisted@mozilla\\.com)|({0a054930-63d7-46f4-937a-de80eab21da4})|({0b24cf69-02b8-407d-83db-e7af04fc1f3e})|({0c4df994-4f4a-4646-ae5d-8936be8a4188})|({0d50d8aa-d1ed-4930-b0a0-f3340d2f510e})|({0eb4672d-58a6-4230-b74c-50ca3716c4b0})|({0f9e469e-4245-43f8-a7a8-7e730f80d284})|({0fc9fcc7-2f47-4fd1-a811-6bd4d611294b})|({4479446e-40f3-48af-ab85-7e3bb4468227})|({1a927d5b-42e7-4407-828a-fdc441d0daae})|({1a760841-50c3-4143-9f7e-3c8f04e8f9d1})|({1bd8ba17-b3ed-412e-88db-35bc4d8771d7})|({1c7d6d9e-325a-4260-8213-82d51277fc31})|({01c9a4a4-06dd-426b-9500-2ea6fe841b88})|({1cab8ccf-deff-4743-925d-a47cbd0a6b56})|({1cb0652a-4645-412d-b7e8-0b9e9a83242f})|({1d6634ca-dd37-4a31-aad1-321f05aa2bb3})|({1d9997b2-f61e-429a-8591-999a6d62becc})|({1ed2af70-9e89-42db-a9e8-17ae594003ac})|({01f409a5-d617-47be-a574-d54325fe05d1})|({2a8bec00-0ab0-4b4d-bd3d-4f59eada8fd8})|({2aeb1f92-6ddc-49f5-b7b3-3872d7e019a9})|({2bb68b03-b528-4133-9fc4-4980fbb4e449})|({2cac0be1-10a2-4a0d-b8c5-787837ea5955})|({2d3c5a5a-8e6f-4762-8aff-b24953fe1cc9})|({2ee125f1-5a32-4f8e-b135-6e2a5a51f598})|({2f53e091-4b16-4b60-9cae-69d0c55b2e78})|({3a65e87c-7ffc-408d-927e-ebf1784efd6d})|({3a26e767-b781-4e21-aaf8-ac813d9edc9f})|({3c3ef2a3-0440-4e77-9e3c-1ca8d48f895c})|({3dca6517-0d75-42d2-b966-20467f82dca1})|({3f4191fa-8f16-47d2-9414-36bfc9e0c2bf})|({3f49e12b-bb58-4797-982c-4364030d96d9})|({4aa2f47a-0bae-4a47-8a1b-1b93313a2938})|({04abafc7-7a65-401d-97f3-af2853854373})|({4ad16913-e5cb-4292-974c-d557ef5ec5bb})|({4b1050c6-9139-4126-9331-30a836e75db9})|({4b1777ec-6fe4-4572-9a29-5af206e003bf})|({4beacbbb-1691-40e7-8c1e-4853ce2e2dee})|({4c140bc5-c2ad-41c3-a407-749473530904})|({4cbef3f0-4205-4165-8871-2844f9737602})|({4dac7c77-e117-4cae-a9f0-6bd89e9e26ab})|({04ed02dc-0cb0-40c2-8bc8-6f20843024b8})|({4f6b6aaf-c5a1-4fac-8228-ead4d359dc6d})|({4f8a15fb-45c2-4d3b-afb1-c0c8813a4a5a})|({5af74f5a-652b-4b83-a2a9-f3d21c3c0010})|({5b0f6d3c-10fd-414c-a135-dffd26d7de0f})|({5b421f02-e55e-4b63-b90e-aa0cfea01f53})|({5b620343-cd69-49b8-a7ba-f9d499ee5d3d})|({5c5cf69b-ed92-4429-8d26-ff3bb6c37269})|({5cf77367-b141-4ba4-ac2a-5b2ca3728e81})|({5da81d3d-5db1-432a-affc-4a2fe9a70749})|({5eac1066-90c3-4ba0-b361-e6315dcd6828})|({5ec4c837-59b9-496d-96e2-ff3fa74ca01f})|({5efd8c7a-ff37-41ac-a55c-af4170453fdf})|({5f4e63e4-351f-4a21-a8e5-e50dc72b5566})|({6a934ff5-e41d-43a2-baf5-2d215a869674})|({06a71249-ef35-4f61-b2c8-85c3c6ee5617})|({6ad26473-5822-4142-8881-0c56a8ebc8c0})|({6cee30bc-a27c-43ea-ac72-302862db62b2})|({6ed852d5-a72e-4f26-863f-f660e79a2ebb})|({6eee2d17-f932-4a43-a254-9e2223be8f32})|({6f13489d-b274-45b6-80fa-e9daa140e1a4})|({6fa41039-572b-44a4-acd4-01fdaebf608d})|({7ae85eef-49cf-440d-8d13-2bebf32f14cf})|({7b3c1e86-2599-4e1a-ad98-767ae38286c8})|({7b23c0de-aa3d-447f-9435-1e8eba216f09})|({7b71d75e-51f5-4a71-9207-7acb58827420})|({7c6bf09e-5526-4bce-9548-7458ec56cded})|({7ca54c8d-d515-4f2a-a21f-3d32951491a6})|({7d932012-b4dd-42cc-8a78-b15ca82d0e61})|({7d5e24a1-7bef-4d09-a952-b9519ec00d20})|({7eabad73-919d-4890-b737-8d409c719547})|({7eaf96aa-d4e7-41b0-9f12-775c2ac7f7c0})|({7f8bc48d-1c7c-41a0-8534-54adc079338f})|({7f84c4d8-bdf5-4110-a10d-fa2a6e80ef6a})|({8a6bda75-4668-4489-8869-a6f9ccbfeb84})|({8a0699a0-09c3-4cf1-b38d-fec25441650c})|({8ab8c1a2-70d4-41a8-bf78-0d0df77ac47f})|({8b4cb418-027e-4213-927a-868b33a88b4f})|({8fcfe2b3-598e-4861-a5d4-0d77993f984b})|({9a941038-82fa-4ae4-ba98-f2eb2d195345})|({9b8a3057-8bf4-4a9e-b94b-867e4e71a50c})|({9b8df895-fcdd-452a-8c46-da5be345b5bc})|({09c8fa16-4eec-4f78-b19d-9b24b1b57e1e})|({09cbfddf-5e55-4676-920d-5a16cb9e4cb5})|({9cf8d28f-f546-4871-ac4d-5faff8b5bde3})|({9d592fd5-e655-461a-9b28-9eba85d4c97f})|({9fc6e583-78a5-4a2b-8569-4297bb8b3300})|({014d98ce-dab9-4c1d-8643-166e75d7cb4d})|({18c64b09-4ccb-4c21-ba6f-ebd4a1efa034})|({21d83d85-a636-4b18-955d-376a6b19bd19})|({22ecf14b-ead6-4684-a498-7b2b839a4c97})|({23c65153-c21e-430a-a2dc-0793410a870d})|({29c69b12-8208-457e-92f4-e663b00a1f10})|({30a8d6f1-0401-4327-8c46-2e1ab45dfe77})|({30d63f93-1446-43b3-8219-deefec9c81ce})|({32cb52f8-c78a-423d-b378-0abec72304a6})|({35bfa8c0-68c1-41f8-a5dd-7f3b3c956da9})|({36a4269e-4eef-4538-baea-9dafbf6a8e2f})|({37f8e483-c782-40ed-82e9-36f101b9e41f})|({42a512a8-37e0-4e07-a1db-5b4651d75048})|({43ae5745-c40a-45ab-9c11-74316c0e9fd2})|({53fa8e1c-112b-4013-b582-0d9e8c51ca75})|({56effac7-3ae9-41e3-9b46-51469f67b3b2})|({61a486c0-ce3d-4bf1-b4f2-e186a2adecf1})|({62b55928-80cc-49f7-8a4b-ec06030d6601})|({63df223d-51cf-4f76-aad8-bbc94c895ed2})|({064d8320-e0f3-411f-9ed1-8c1349279d20})|({071b9878-a7d3-4ae3-8ef0-2eaee1923403})|({72c1ca96-c05d-46a7-bce1-c507ec3db4ea})|({76ce213c-8e57-4a14-b60a-67a5519bd7a7})|({78c2f6a0-3b54-4a21-bf25-a3348278c327})|({0079b71b-89c9-4d82-aea3-120ee12d9890})|({81ac42f3-3d17-4cff-85af-8b7f89c8826b})|({81dc4f0e-9dab-4bd2-ab9d-d9365fbf676f})|({82c8ced2-e08c-4d6c-a12b-3e8227d7fc2a})|({83d6f65c-7fc0-47d0-9864-a488bfcaa376})|({83d38ac3-121b-4f28-bf9c-1220bd3c643b})|({84b9121e-55c9-409a-9b28-c588b5096222})|({87ba49bd-daba-4071-aedf-4f32a7e63dbe})|({87c552f9-7dbb-421b-8deb-571d4a2d7a21})|({87dcb9bf-3a3e-4b93-9c85-ba750a55831a})|({89a4f24d-37d5-46e7-9d30-ba4778da1aaa})|({93c524c4-2e92-4dd7-8b37-31a69bc579e8})|({94df38fc-2dbe-4056-9b35-d9858d0264d3})|({95c7ae97-c87e-4827-a2b7-7b9934d7d642})|({95d58338-ba6a-40c8-93fd-05a34731dc0e})|({97c436a9-7232-4495-bf34-17e782d6232c})|({97fca2cd-545f-42ef-ae93-dc13b046bd3b})|({0111c475-01e6-42ea-a9b4-27bed9eb6092})|({115a8321-4414-4f4c-aee6-9f812121b446})|({158a5a56-aca0-418f-bec0-5b3bda6e9d4c})|({243a0246-cbab-4b46-93fb-249039f68d84})|({283d4f2a-bab1-43ce-90be-5129741ac988})|({408a506b-2336-4671-a490-83a1094b4097})|({0432b92a-bfcf-41b9-b5f0-df9629feece1})|({484e0ba4-a20b-4404-bb1b-b93473782ae0})|({486ecaf1-1080-48c1-8973-549bc731ccf9})|({495a84bd-5a0c-4c74-8a50-88a4ba9d74ba})|({520f2c78-7804-4f59-ae74-a192476055ed})|({543f7503-3620-4f41-8f9e-c258fdff07e9})|({0573bea9-7368-49cd-ba10-600be3535a0b})|({605a0c42-86af-40c4-bf39-f14060f316aa})|({618baeb9-e694-4c7b-9328-69f35b6a8839})|({640c40e5-a881-4d16-a4d0-6aa788399dd2})|({713d4902-ae7b-4a9a-bcf5-47f39a73aed0})|({767d394a-aa77-40c9-9365-c1916b4a2f84})|({832ffcf9-55e9-4fd1-b2eb-f19e1fac5089})|({866a0745-8b91-4199-820a-ec17de52b5f2})|({869b5825-e344-4375-839b-085d3c09ab9f})|({919fed43-3961-48d9-b0ef-893054f4f6f1})|({971d6ef0-a085-4a04-83d8-6e489907d926})|({1855d130-4893-4c79-b4aa-cbdf6fee86d3})|({02328ee7-a82b-4983-a5f7-d0fc353698f0})|({2897c767-03aa-4c2f-910a-6d0c0b9b9315})|({3908d078-e1db-40bf-9567-5845aa77b833})|({04150f98-2d7c-4ae2-8979-f5baa198a577})|({4253db7f-5136-42c3-b09d-cf38344d1e16})|({4414af84-1e1f-449b-ac85-b79f812eb69b})|({4739f233-57c1-4466-ad51-224558cf375d})|({5066a3b2-f848-4a59-a297-f268bc3a08b6})|({6072a2a8-f1bc-4c9c-b836-7ac53e3f51e4})|({7854ee87-079f-4a25-8e57-050d131404fe})|({07953f60-447e-4f53-a5ef-ed060487f616})|({8886a262-1c25-490b-b797-2e750dd9f36b})|({12473a49-06df-4770-9c47-a871e1f63aea})|({15508c91-aa0a-4b75-81a2-13055c96281d})|({18868c3a-a209-41a6-855d-f99f782d1606})|({24997a0a-9d9b-4c87-a076-766d44e1f6fd})|({27380afd-f42a-4c25-b57d-b9012e0d5d48})|({28044ca8-8e90-435e-bc63-a757af2fb6be})|({30972e0a-f613-4c46-8c87-2e59878e7180})|({31680d42-c80d-4f8a-86d3-cd4930620369})|({44685ba6-68b3-4895-879e-4efa29dfb578})|({046258c9-75c5-429d-8d5b-386cfbadc39d})|({47352fbf-80d9-4b70-9398-fb7bffa3da53})|({56316a2b-ef89-4366-b4aa-9121a2bb6dea})|({65072bef-041f-492e-8a51-acca2aaeac70})|({677e2d00-264c-4f62-a4e8-2d971349c440})|({72056a58-91a5-4de5-b831-a1fa51f0411a})|({85349ea6-2b5d-496a-9379-d4be82c2c13d})|({98363f8b-d070-47b6-acc6-65b80acac4f3})|({179710ba-0561-4551-8e8d-1809422cb09f})|({207435d0-201d-43f9-bb0f-381efe97501d})|({313e3aef-bdc9-4768-8f1f-b3beb175d781})|({387092cb-d2dc-4da5-9389-4a766c604ec2})|({0599211f-6314-4bf9-854b-84cb18da97f8})|({829827cd-03be-4fed-af96-dd5997806fb4})|({856862a5-8109-47eb-b815-a94059570888})|({1e6f5a54-2c4f-4597-aa9e-3e278c617d38})|({1490068c-d8b7-4bd2-9621-a648942b312c})|({18e5e07b-0cfa-4990-a67b-4512ecbae04b})|({3584581e-c01a-4f53-aec8-ca3293bb550d})|({5280684d-f769-43c9-8eaa-fb04f7de9199})|({5766852a-b384-4276-ad06-70c2283b4792})|({34364255-2a81-4d6e-9760-85fe616abe80})|({45621564-b408-4c29-8515-4cf1f26e4bc3})|({62237447-e365-487e-8fc3-64ddf37bdaed})|({7e7aa524-a8af-4880-8106-102a35cfbf42})|({71639610-9cc3-47e0-86ed-d5b99eaa41d5})|({78550476-29ff-4b7e-b437-195024e7e54e})|({85064550-57a8-4d06-bd4b-66f9c6925bf5})|({93070807-c5cd-4bde-a699-1319140a3a9c})|({11e7b9b3-a769-4d7f-b200-17cffa4f9291})|({22632e5e-95b9-4f05-b4b7-79033d50467f})|({03e10db6-b6a7-466a-a2b3-862e98960a85})|({23775e7d-dfcf-42b1-aaad-8017aa88fc59})|({85e31e7e-3e3a-42d3-9b7b-0a2ff1818b33})|({9e32ca65-4670-41e3-b6bb-8773e6b9bba8})|({6e43af8e-a78e-4beb-991f-7b015234eacc})|({57e61dc7-db04-4cf8-bbd3-62a15fc74138})|({01166e60-d740-440c-b640-6bf964504b3c})|({52e137bc-a330-4c25-a981-6c1ab9feb806})|({488e190b-d1f6-4de8-bffb-0c90cc805b62})|({5e257c96-bfed-457d-b57e-18f31f08d7bb})|({2134e327-8060-441c-ba68-b167b82ff5bc})|({1e68848a-2bb7-425c-81a2-524ab93763eb})|({8e888a6a-ec19-4f06-a77c-6800219c6daf})|({7e907a15-0a4c-4ff4-b64f-5eeb8f841349})|({a0ab16af-3384-4dbe-8722-476ce3947873})|({a0c54bd8-7817-4a40-b657-6dc7d59bd961})|({a0ce2605-b5fc-4265-aa65-863354e85058})|({a1f8e136-bce5-4fd3-9ed1-f260703a5582})|({a3fbc8be-dac2-4971-b76a-908464cfa0e0})|({a5a84c10-f12c-496e-80df-33386b7a1463})|({a5f90823-0a50-414f-ad34-de0f6f26f78e})|({a6b83c45-3f24-4913-a1f7-6f42411bbb54})|({a9eb2583-75e0-435a-bb6c-69d5d9b20e27})|({a32ebb9b-8649-493e-a9e9-f091f6ac1217})|({a83c1cbb-7a41-41e7-a2ae-58efcb4dc2e4})|({a506c5af-0f95-4107-86f8-3de05e2794c9})|({a02001ae-b7ed-45d7-baf2-c07f0a7b6f87})|({a5808da1-5b4f-42f2-b030-161fd11a36f7})|({a18087bb-4980-4349-898c-ca1b7a0e59cd})|({a345865c-44b9-4197-b418-934f191ce555})|({a7487703-02d8-4a82-a7d0-2859de96edb4})|({a2427e23-d349-4b25-b5b8-46960b218079})|({a015e172-2465-40fc-a6ce-d5a59992c56a})|({aaaffe20-3306-4c64-9fe5-66986ebb248e})|({abec23c3-478f-4a5b-8a38-68ccd500ec42})|({ac06c6b2-3fd6-45ee-9237-6235aa347215})|({ac037ad5-2b22-46c7-a2dc-052b799b22b5})|({ac296b47-7c03-486f-a1d6-c48b24419749})|({acbff78b-9765-4b55-84a8-1c6673560c08})|({acfe4807-8c3f-4ecc-85d1-aa804e971e91})|({ada56fe6-f6df-4517-9ed0-b301686a34cc})|({af44c8b4-4fd8-42c3-a18e-c5eb5bd822e2})|({b5a35d05-fa28-41b5-ae22-db1665f93f6b})|({b7b0948c-d050-4c4c-b588-b9d54f014c4d})|({b7f366fa-6c66-46bf-8df2-797c5e52859f})|({b9bb8009-3716-4d0c-bcb4-35f9874e931e})|({b12cfdc7-3c69-43cb-a3fb-38981b68a087})|({b019c485-2a48-4f5b-be13-a7af94bc1a3e})|({b91fcda4-88b0-4a10-9015-9365e5340563})|({b30591d6-ec24-4fae-9df6-2f3fe676c232})|({b99847d6-c932-4b52-9650-af83c9dae649})|({bbe79d30-e023-4e82-b35e-0bfdfe608672})|({bc3c2caf-2710-4246-bd22-b8dc5241693a})|({bc3c7922-e425-47e2-a2dd-0dbb71aa8423})|({bc763c41-09ca-459a-9b22-cf4474f51ebc})|({bd5ba448-b096-4bd0-9582-eb7a5c9c0948})|({be5d0c88-571b-4d01-a27a-cc2d2b75868c})|({be981b5e-1d9d-40dc-bd4f-47a7a027611c})|({be37931c-af60-4337-8708-63889f36445d})|({bea8866f-01f8-49e9-92cd-61e96c05d288})|({bf153de7-cdf2-4554-af46-29dabfb2aa2d})|({c3a2b953-025b-425d-9e6e-f1a26ee8d4c2})|({c3b71705-c3a6-4e32-bd5f-eb814d0e0f53})|({c5d359ff-ae01-4f67-a4f7-bf234b5afd6e})|({c6c8ea62-e0b1-4820-9b7f-827bc5b709f4})|({c8c8e8de-2989-4028-bbf2-d372e219ba71})|({c34f47d1-2302-4200-80d4-4f26e47b2980})|({c178b310-6ed5-4e04-9e71-76518dd5fb3e})|({c2341a34-a3a0-4234-90cf-74df1db0aa49})|({c8399f02-02f4-48e3-baea-586564311f95})|({c41807db-69a1-4c35-86c1-bc63044e4fcb})|({c383716f-b23f-47b2-b6bb-d7c1a7c218af})|({c3447081-f790-45cb-ae03-0d7f1764c88c})|({c445e470-9e5a-4521-8649-93c8848df377})|({c8e14311-4b2d-4eb0-9a6b-062c6912f50e})|({ca4fdfdb-e831-4e6e-aa8b-0f2e84f4ed07})|({ca6cb8b2-a223-496d-b0f6-35c31bc7ca2b})|({cba7ce11-952b-4dcb-ba85-a5b618c92420})|({cc6b2dc7-7d6f-470f-bccc-6a42907162d1})|({cc689da4-203f-4a0c-a7a6-a00a5abe74c5})|({ccb7b5d6-a567-40a2-9686-a097a8b583dd})|({cd28aa38-d2f1-45a3-96c3-6cfd4702ef51})|({cd89045b-2e06-46bb-9e34-48e8799e5ef2})|({cdda1813-51d6-4b1f-8a2f-8f9a74a28e14})|({ce0d1384-b99b-478e-850a-fa6dfbe5a2d4})|({ce93dcc7-f911-4098-8238-7f023dcdfd0d})|({cf9d96ff-5997-439a-b32b-98214c621eee})|({cfa458f9-b49b-4e09-8cb2-5e50bd8937cc})|({cfb50cdf-e371-4d6b-9ef2-fcfe6726db02})|({d1ab5ebd-9505-481d-a6cd-6b9db8d65977})|({d03b6b0f-4d44-4666-a6d6-f16ad9483593})|({d9d8cfc1-7112-40cc-a1e9-0c7b899aae98})|({d47ebc8a-c1ea-4a42-9ca3-f723fff034bd})|({d72d260f-c965-4641-bf49-af4135fc46cb})|({d78d27f4-9716-4f13-a8b6-842c455d6a46})|({d355bee9-07f0-47d3-8de6-59b8eecba57b})|({d461cc1b-8a36-4ff0-b330-1824c148f326})|({d97223b8-44e5-46c7-8ab5-e1d8986daf44})|({d42328e1-9749-46ba-b35c-cce85ddd4ace})|({da7d00bf-f3c8-4c66-8b54-351947c1ef68})|({db84feec-2e1f-48f0-9511-645fe4784feb})|({dc6256cc-b6d0-44ca-b42f-4091f11a9d29})|({dd1cb0ec-be2a-432b-9c90-d64c824ac371})|({dd95dd08-75d1-4f06-a75b-51979cbab247})|({ddae89bd-6793-45d8-8ec9-7f4fb7212378})|({de3b1909-d4da-45e9-8da5-7d36a30e2fc6})|({df09f268-3c92-49db-8c31-6a25a6643896})|({e2a4966f-919d-4afc-a94f-5bd6e0606711})|({e05ba06a-6d6a-4c51-b8fc-60b461ffecaf})|({e7b978ae-ffc2-4998-a99d-0f4e2f24da82})|({e7fb6f2f-52b6-4b02-b410-2937940f5049})|({e08d85c5-4c0f-4ce3-9194-760187ce93ba})|({e08ebf0b-431d-4ed1-88bb-02e5db8b9443})|({e9c47315-2a2b-4583-88f3-43d196fa11af})|({e341ed12-a703-47fe-b8dd-5948c38070e4})|({e804fa4c-08e0-4dae-a237-8680074eba07})|({e8982fbd-1bc2-4726-ad8d-10be90f660bd})|({e40673cd-9027-4f61-956c-2097c03ae2be})|({e72172d1-39c9-4f41-829d-a1b8d845d1ca})|({e73854da-9503-423b-ab27-fafea2fbf443})|({e81e7246-e697-4811-b336-72298d930857})|({ea618d26-780e-4f0f-91fd-2a6911064204})|({ea523075-66cd-4c03-ab04-5219b8dda753})|({eb3ebb14-6ced-4f60-9800-85c3de3680a4})|({ec8c5fee-0a49-44f5-bf55-f763c52889a6})|({eccd286a-5b1d-494d-82b0-92a12213d95a})|({ed352072-ddf0-4cb4-9cb6-d8aa3741c2de})|({edb476af-0505-42af-a7fd-ec9f454804c0})|({ee97f92d-1bfe-4e9d-816c-0dfcd63a6206})|({f0b809eb-be22-432f-b26f-b1cadd1755b9})|({f5ffa269-fbca-4598-bbd8-a8aa9479e0b3})|({f6c543bf-2222-4230-8ecb-f5446095b63d})|({f6df4ef7-14bd-43b5-90c9-7bd02943789c})|({f6f98e6b-f67d-4c53-8b76-0b5b6df79218})|({f38b61f3-3fed-4249-bb3d-e6c8625c7afb})|({f50e0a8f-8c32-4880-bcef-ca978ccd1d83})|({f59c2d3d-58da-4f74-b8c9-faf829f60180})|({f82b3ad5-e590-4286-891f-05adf5028d2f})|({f92c1155-97b3-40f4-9d5b-7efa897524bb})|({f95a3826-5c8e-4f82-b353-21b6c0ca3c58})|({f5758afc-9faf-42bb-9543-a4cfb0bfce9d})|({f447670d-64f5-418f-9b4a-5352d6c8e127})|({f4262989-6de0-4604-918f-663b85fad605})|({fa8bd609-0e06-4ba9-8e2e-5989f0b2e197})|({fa0808f6-25ab-4a8b-bd17-3b275c55ff09})|({fac5816b-fd0f-4db2-a16e-52394b6db41d})|({fc99b961-5878-46b4-b091-6d2f507bf44d})|({fce89242-66d3-4946-9ed0-e66078f172fc})|({fcf72e24-5831-439e-bb07-fd53a9e87a30})|({fdc0601f-1fbb-40a5-84e1-8bbe96b22502})|({feb3c734-4529-4d69-9f3a-2dae18f1d896}))$/","prefs":[],"schema":1533411700296,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1479009","why":"Malicious add-ons disguising as updates or useful add-ons, but violating data collection policies, user-control, no surprises and security.","name":"Firefox Update (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cae5d906-0b1d-4d1c-b83f-f9727b8c4a29","last_modified":1533550294490},{"guid":"{5834f62d-6164-4cdd-a0a3-c00c66ec9d13}","prefs":[],"schema":1532704368947,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1479002","why":"This add-on violates our security and user-choice/no surprises policies.","name":"Youtube Dark Mode (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"d0a401cb-0c70-4784-8288-b06a88b2ae8a","last_modified":1532705151926},{"guid":"/^((@asdfjhsdfuhw)|(@asdfsdfwe)|(@asdieieuss)|(@dghfghfgh)|(@difherk)|(@dsfgtftgjhrdf4)|(@fidfueir)|(@fsgergsdqtyy)|(@hjconsnfes)|(@isdifvdkf)|(@iweruewir)|(@oiboijdjfj)|(@safesearchavs)|(@safesearchavsext)|(@safesearchincognito)|(@safesearchscoutee)|(@sdfykhhhfg)|(@sdiosuff)|(@sdklsajd)|(@sduixcjksd)|(@sicognitores)|(@simtabtest)|(@sodiasudi)|(@test13)|(@test131)|(@test131ver)|(@test132)|(@test13s)|(@testmptys)|(\\{ac4e5b0c-13c4-4bfd-a0c3-1e73c81e8bac\\})|(\\{e78785c3-ec49-44d2-8aac-9ec7293f4a8f\\})|(general@filecheckerapp\\.com)|(general@safesearch\\.net))$/","prefs":[],"schema":1532703832328,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1475330","why":"These Add-ons violate our data collection, no surprises and user-choice policies.","name":"Safesearch (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"d664412d-ed08-4892-b247-b007a70856ff","last_modified":1532704364007},{"guid":"{dd3d7613-0246-469d-bc65-2a3cc1668adc}","prefs":[],"schema":1532684052432,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1478731","why":"This add-on violates data practices outlined in the review policy.","name":"BlockSite"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.0.3","minVersion":"0"}],"id":"e04f98b5-4480-43a3-881d-e509e4e28cdc","last_modified":1532684085999},{"guid":"{bee8b1f2-823a-424c-959c-f8f76c8b2306}","prefs":[],"schema":1532547689407,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1478731","why":"This add-on violates data practices outlined in the review policy.","name":"Popup blocker for FireFox"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.0.7.3","minVersion":"0"}],"id":"f0713a5e-7208-484e-b3a0-4e6dc6a195be","last_modified":1532684052426},{"guid":"/^((\\{39bd8607-0af4-4d6b-bd69-9a63c1825d3c\\})|(\\{273f0bce-33f4-45f6-ae03-df67df3864c2\\})|(\\{a77fc9b9-6ebb-418d-b0b6-86311c191158\\})|(\\{c6c4a718-cf91-4648-aa9b-170d66163cf2\\})|(\\{d371abec-84bb-481b-acbf-235639451127\\})|(\\{e63b262a-f9b8-4496-9c4b-9d3cbd6aea90\\}))$/","prefs":[],"schema":1532386339902,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1477950","why":"Add-ons that contain malicious functionality like search engine redirect.","name":"Smash (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c37c7c24-e738-4d06-888c-108b4d63b428","last_modified":1532424286908},{"guid":"/^((\\{ac296b47-7c03-486f-a1d6-c48b24419749\\})|(\\{1cab8ccf-deff-4743-925d-a47cbd0a6b56\\})|(\\{5da81d3d-5db1-432a-affc-4a2fe9a70749\\})|(\\{071b9878-a7d3-4ae3-8ef0-2eaee1923403\\})|(\\{261476ea-bd0e-477c-abd7-33cdf626f81f\\})|(\\{224e66d0-6b11-4c4b-9bcf-41180889898a\\})|(\\{1e90cf52-c67c-4bd9-80c3-a2bf521fc981\\})|(\\{09c4799c-00f1-439e-9e60-3827c589b372\\})|(\\{d3d2095a-9faa-466f-82ae-3114179b34d6\\})|(\\{70389ea5-7e4d-4515-835c-fbd047f229dd\\})|(\\{2e8083a5-cd88-4aaa-bb8b-e54e9753f280\\})|(\\{fbf2480b-5c19-478e-bfd0-192ad9f84dc9\\})|(\\{6c7dc694-89f8-477e-88d5-c55af4d6a846\\})|(\\{915c12c6-901a-490d-9bfc-20f00d1ad31d\\})|(\\{d3a4aa3e-f74c-4382-876d-825f592f2976\\})|(\\{0ad91ec1-f7c4-4a39-9244-3310e9fdd169\\})|(\\{9c17aa27-63c5-470a-a678-dc899ab67ed3\\})|(\\{c65efef2-9988-48db-9e0a-9ff8164182b6\\})|(\\{d54c5d25-2d51-446d-8d14-18d859e3e89a\\})|(\\{e458f1f1-a331-4486-b157-81cba19f0993\\})|(\\{d2de7e1f-6e51-41d6-ba8a-937f8a5c92ff\\})|(\\{2b08a649-9bea-4dd4-91c8-f53a84d38e19\\})|(\\{312dd57e-a590-4e19-9b26-90e308cfb103\\})|(\\{82ce595a-f9b6-4db8-9c97-b1f1c933418b\\})|(\\{0a2e64f0-ea5a-4fff-902d-530732308d8e\\})|(\\{5fbdc975-17ab-4b4e-90d7-9a64fd832a08\\})|(\\{28820707-54d8-41f0-93e9-a36ffb2a1da6\\})|(\\{64a2aed1-5dcf-4f2b-aad6-9717d23779ec\\})|(\\{ee54794f-cd16-4f7d-a7dd-515a36086f60\\})|(\\{4d381160-b2d5-4718-9a05-fc54d4b307e7\\})|(\\{60393e0e-f039-4b80-bad4-10189053c2ab\\})|(\\{0997b7b2-52d7-4d14-9aa6-d820b2e26310\\})|(\\{8214cbd6-d008-4d16-9381-3ef1e1415665\\})|(\\{6dec3d8d-0527-49a3-8f12-b05f2a8b95b2\\})|(\\{0c0d8d8f-3ae0-4c98-81ac-06453a316d16\\})|(\\{84d5ef02-a283-484a-80da-7087836c74aa\\})|(\\{24413756-2c44-47c5-8bbf-160cb37776d8\\})|(\\{cf6ac458-06e8-45d0-9cbf-ec7fc0eb1710\\})|(\\{263a5792-933a-4de1-820a-d04198e17120\\})|(\\{b5fd7f37-190d-4c0a-b8dd-8b4850c986ac\\})|(\\{cb5ef07b-c2e7-47a6-be81-2ceff8df4dd5\\})|(\\{311b20bc-b498-493c-a5e1-22ec32b0e83c\\})|(\\{b308aead-8bc1-4f37-9324-834b49903df7\\})|(\\{3a26e767-b781-4e21-aaf8-ac813d9edc9f\\}))$/","prefs":[],"schema":1532361925873,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1476553","why":"Third-party websites try to trick users into installing add-ons that inject remote scripts.","name":"Various malicious add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"52842139-3d11-41ac-9d7f-8e51122a3141","last_modified":1532372344457},{"guid":"/^((@FirefoxUpdate)|(@googledashboard)|(@smash_mov)|(@smash_tv)|(@smashdashboard)|(@smashmovs)|(@smashtvs)|(\\{0be01832-7cce-4457-b8ad-73b743914085\\})|(\\{0e1c683e-9f34-45f1-b365-a283befb471a\\})|(\\{0c72a72d-6b2e-4a0e-8a31-16581176052d\\})|(\\{0ccfc208-8441-4c27-b1cb-799accb04908\\})|(\\{0ede8d39-26f2-49c4-8014-dfc484f54a65\\})|(\\{1fc1f8e6-3575-4a6f-a4d1-c4ca1c36bd2a\\})|(\\{3a1d6607-e6a8-4012-9506-f14cd157c171\\})|(\\{03b3ac4d-59a3-4cc6-aa4d-9b39dd8b3196\\})|(\\{3bb6e889-ac7a-46ca-8eed-45ba4fbe75b5\\})|(\\{3c841114-da8c-44ea-8303-78264edfe60b\\})|(\\{3f3bcb3e-dd73-4410-b102-60a87fcb8323\\})|(\\{3f951165-fd85-42ae-96ef-6ff589a1fe72\\})|(\\{04c86cb3-5f52-4083-9e9a-e322dd02181a\\})|(\\{4d8b44ef-9b8b-4d82-b668-a49648d2749d\\})|(\\{4d25d2b4-6ae7-4a66-abc0-c3fca4cdddf6\\})|(\\{5c9a2eca-2126-4a84-82c0-efbf3d989371\\})|(\\{6ecb9f49-90f0-43a1-8f8a-e809ea4f732b\\})|(\\{6fb8289d-c6c8-4fe5-9a92-7dc6cbf35349\\})|(\\{7fea697d-327c-4d20-80d5-813a6fb26d86\\})|(\\{08a3e913-0bbc-42ba-96d7-3fa16aceccbf\\})|(\\{8b04086b-94a5-4161-910b-59e3e31e4364\\})|(\\{08c28c16-9fb6-4b32-9868-db37c1668f94\\})|(\\{8cd69708-2f5e-4282-a94f-3feebc4bce35\\})|(\\{8dc21e24-3883-4d01-b486-ef1d1106fa3d\\})|(\\{8f8cc21a-2097-488f-a213-f5786a2ccbbf\\})|(\\{9c8b93f7-3bf8-4762-b221-40c912268f96\\})|(\\{9ce66491-ef06-4da6-b602-98c2451f6395\\})|(\\{1e1acc1c-8daa-4c2e-ad05-5ef01ae65f1e\\})|(\\{10b0f607-1efa-4762-82a0-e0d9bbae4e48\\})|(\\{24f338d7-b539-49f1-b276-c9edc367a32d\\})|(\\{40c9030f-7a2f-4a58-9d0a-edccd8063218\\})|(\\{41f97b71-c7c6-40b8-83b1-a4dbff76f73d\\})|(\\{42f3034a-0c4a-4f68-a8fd-8a2440e3f011\\})|(\\{52d456e5-245a-4319-b8d2-c14fbc9755f0\\})|(\\{57ea692b-f9fe-42df-bf5e-af6953fba05a\\})|(\\{060c61d8-b48f-465d-aa4b-23325ea757c3\\})|(\\{65c1967c-6a5c-44dd-9637-0d4d8b4c339b\\})|(\\{65d40b64-b52a-46d8-b146-580ff91889cb\\})|(\\{75b7af0d-b4ed-4320-95c8-7ffd8dd2cb7c\\})|(\\{77fe9731-b683-4599-9b06-a5dcea63d432\\})|(\\{84b20d0c-9c87-4340-b4f8-1912df2ae70d\\})|(\\{92b9e511-ac81-4d47-9b8f-f92dc872447e\\})|(\\{95afafef-b580-4f66-a0fe-7f3e74be7507\\})|(\\{116a0754-20eb-4fe5-bd35-575867a0b89e\\})|(\\{118bf5f6-98b1-4543-b133-42fdaf3cbade\\})|(\\{248eacc4-195f-43b2-956c-b9ad1ae67529\\})|(\\{328f931d-83c1-4876-953c-ddc9f63fe3b4\\})|(\\{447fa5d3-1c27-4502-9e13-84452d833b89\\})|(\\{476a1fa9-bce8-4cb4-beff-cb31980cc521\\})|(\\{507a5b13-a8a3-4653-a4a7-9a03099acf48\\})|(\\{531bf931-a8c6-407b-a48f-8a53f43cd461\\})|(\\{544c7f83-ef54-4d17-aa91-274fa27514ef\\})|(\\{546ea388-2839-4215-af49-d7289514a7b1\\})|(\\{635cb424-0cd5-4446-afaf-6265c4b711b5\\})|(\\{654b21c7-6a70-446c-b9ac-8cac9592f4a9\\})|(\\{0668b0a7-7578-4fb3-a4bd-39344222daa3\\})|(\\{944ed336-d750-48f1-b0b5-3c516bfb551c\\})|(\\{1882a9ce-c0e3-4476-8185-f387fe269852\\})|(\\{5571a054-225d-4b65-97f7-3511936b3429\\})|(\\{5921be85-cddd-4aff-9b83-0b317db03fa3\\})|(\\{7082ba5c-f55e-4cd8-88d6-8bc479d3749e\\})|(\\{7322a4cb-641c-4ca2-9d83-8701a639e17a\\})|(\\{90741f13-ab72-443f-a558-167721f64883\\})|(\\{198627a5-4a7b-4857-b074-3040bc8effb8\\})|(\\{5e5b9f44-2416-4669-8362-42a0b3f97868\\})|(\\{824985b9-df2a-401c-9168-749960596007\\})|(\\{4853541f-c9d7-42c5-880f-fd460dbb5d5f\\})|(\\{6e6ff0fd-4ae4-49ae-ac0c-e2527e12359b\\})|(\\{90e8aa72-a7eb-4337-81d4-538b0b09c653\\})|(\\{02e3137a-96a4-433d-bfb2-0aa1cd4aed08\\})|(\\{9e734c09-fcb1-4e3f-acab-04d03625301c\\})|(\\{a6ad792c-69a8-4608-90f0-ff7c958ce508\\})|(\\{a512297e-4d3a-468c-bd1a-f77bd093f925\\})|(\\{a71b10ae-b044-4bf0-877e-c8aa9ad47b42\\})|(\\{a33358ad-a3fa-4ca1-9a49-612d99539263\\})|(\\{a7775382-4399-49bf-9287-11dbdff8f85f\\})|(\\{afa64d19-ddba-4bd5-9d2a-c0ba4b912173\\})|(\\{b4ab1a1d-e137-4c59-94d5-4f509358a81d\\})|(\\{b4ec2f8e-57fd-4607-bf4f-bc159ca87b26\\})|(\\{b06bfc96-c042-4b34-944c-8eb67f35630a\\})|(\\{b9dcdfb0-3420-4616-a4cb-d41b5192ba0c\\})|(\\{b8467ec4-ff65-45f4-b7c5-f58763bf9c94\\})|(\\{b48e4a17-0655-4e8e-a5e2-3040a3d87e55\\})|(\\{b6166509-5fe0-4efd-906e-1e412ff07a04\\})|(\\{bd1f666e-d473-4d13-bc4d-10dde895717e\\})|(\\{be572ad4-5dd7-4b6b-8204-5d655efaf3b3\\})|(\\{bf2a3e58-2536-44d4-b87f-62633256cf65\\})|(\\{bfc5ac5f-80bd-43e5-9acb-f6d447e0d2ce\\})|(\\{bfe3f6c1-c5fe-44af-93b3-576812cb6f1b\\})|(\\{c0b8009b-57dc-45bc-9239-74721640881d\\})|(\\{c1cf1f13-b257-4271-b922-4c57c6b6e047\\})|(\\{c3d61029-c52f-45df-8ec5-a654b228cd48\\})|(\\{c39e7c0b-79d5-4137-bef0-57cdf85c920f\\})|(\\{ce043eac-df8a-48d0-a739-ef7ed9bdf2b5\\})|(\\{cf62e95a-8ded-4c74-b3ac-f5c037880027\\})|(\\{cff02c70-7f07-4592-986f-7748a2abd9e1\\})|(\\{d1b87087-09c5-4e58-b01d-a49d714da2a2\\})|(\\{d14adc78-36bf-4cf0-9679-439e8371d090\\})|(\\{d64c923e-8819-488c-947f-716473d381b2\\})|(\\{d734e7e3-1b8e-42a7-a9b3-11b16c362790\\})|(\\{d147e8c6-c36e-46b1-b567-63a492390f07\\})|(\\{db1a103d-d1bb-4224-a5e1-8d0ec37cff70\\})|(\\{dec15b3e-1d12-4442-930e-3364e206c3c2\\})|(\\{dfa4b2e3-9e07-45a4-a152-cde1e790511d\\})|(\\{dfcda377-b965-4622-a89b-1a243c1cbcaf\\})|(\\{e4c5d262-8ee4-47d3-b096-42b8b04f590d\\})|(\\{e82c0f73-e42c-41dd-a686-0eb4b65b411c\\})|(\\{e60616a9-9b50-49d8-b1e9-cecc10a8f927\\})|(\\{e517649a-ffd7-4b49-81e0-872431898712\\})|(\\{e771e094-3b67-4c33-8647-7b20c87c2183\\})|(\\{eff5951b-b6d4-48f5-94c3-1b0e178dcca5\\})|(\\{f26a8da3-8634-4086-872e-e589cbf03375\\})|(\\{f992ac88-79d3-4960-870e-92c342ed3491\\})|(\\{f4e4fc03-be50-4257-ae99-5cd0bd4ce6d5\\})|(\\{f73636fb-c322-40e1-82fb-e3d7d06d9606\\})|(\\{f5128739-78d5-4ad7-bac7-bd1af1cfb6d1\\})|(\\{fc11e7f0-1c31-4214-a88f-6497c27b6be9\\})|(\\{feedf4f8-08c1-451f-a717-f08233a64ec9\\}))$/","prefs":[],"schema":1532097654002,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1476369","why":"These add-ons contain unwanted features and try to prevent the user from uninstalling themselves.","name":"Smash/Upater (malware) and similar"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c7d7515d-563f-459f-821c-27d4cf825dbf","last_modified":1532101113096},{"guid":"^((@mixclouddownloader)|(all-down@james\\.burrow)|(d\\.lehr@chello\\.at)|(easy-video-downloader@addonsmash)|(easy-youtube-mp3@james\\.burrow)|(gid@addonsmash)|(gmail_panel@addon_clone)|(guid-reused-by-pk-907175)|(idm@addonsmash)|(image-picka@addonsmash)|(instant-idm@addon\\.host)|(jdm@awesome\\.addons)|(open-in-idm@addonsmash)|(open-in-idm@james\\.burrow)|(open-in-vlc@awesome\\.addons)|(saveimage@addonsmash)|(thundercross@addonsmash)|(vk-download@addon\\.host)|(vk-music-downloader@addonsmash)|(whatsapp_popup@addons\\.clone)|(ytb-down@james\\.burrow)|(ytb-mp3-downloader@james\\.burrow)|(\\{0df8d631-7d88-401e-ba7e-af1425dded8a\\})|(\\{3c74e141-1993-4c04-b755-a66dd491bb47\\})|(\\{5cdd95c7-5d92-40c5-8e2a-8c52c90191d9\\})|(\\{40efedc0-8e48-404a-a779-f4016b25c0e6\\})|(\\{53d605ce-599b-4352-8a06-5e594b3d1822\\})|(\\{3697c1e8-27d7-4c63-a27e-ac16191a1545\\})|(\\{170503FA-3349-4F17-BC86-001888A5C8E2\\})|(\\{649558df-9461-4824-ad18-f2d4d4845ac8\\})|(\\{27875553-afd5-4365-86dc-019bcd60594c\\})|(\\{27875553-afd5-4365-86dc-019bcd60594c\\})|(\\{6e7624fa-7f70-4417-93db-1ec29c023275\\})|(\\{b1aea1f1-6bed-41ef-9679-1dfbd7b2554f\\})|(\\{b9acc029-d62b-4d23-b921-8e7aea34266a\\})|(\\{b9b59e13-4ac5-4eff-8dbe-c345b7619b3c\\})|(\\{b0186d2d-3126-4537-9186-a6f198547901\\})|(\\{b3e8fde8-6d97-4ac3-95e0-57b797f4c56b\\})|(\\{e6a9a96e-4a08-4719-b9bd-0e91c35aaabc\\})|(\\{e69a36e6-ee12-4fe6-87ca-66b77fc0ffbf\\})|(\\{ee3601f1-78ab-48bf-89ae-0cfe4aed1f2e\\})|(\\{f4ce48b3-ad14-4900-86cb-4604474c5b08\\})|(\\{f5c1262d-b1e8-44a4-b820-a834f0f6d605\\}))$","prefs":[],"schema":1531762485603,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1476020","why":"Add-ons repeatedly violated several of review policies.","name":"Several youtube downloading add-ons and others"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0"}],"id":"ae8ae617-590d-430b-86d4-16364372b67f","last_modified":1531762863373},{"guid":"{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}","prefs":[],"schema":1530711142817,"blockID":"i1900","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1472948","why":"This add-on violates data practices outlined in the review policy.","name":"Stylish"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.1.1","minVersion":"3.0.0"}],"id":"c635229f-7aa0-44c5-914f-80c590949071","last_modified":1530716488758},{"guid":"/^(contactus@unzipper.com|{72dcff4e-48ce-41d8-a807-823adadbe0c9}|{dc7d2ecc-9cc3-40d7-93ed-ef6f3219bd6f}|{994db3d3-ccfe-449a-81e4-f95e2da76843}|{25aef460-43d5-4bd0-aa3d-0a46a41400e6}|{178e750c-ae27-4868-a229-04951dac57f7})$/","prefs":[],"schema":1528400492025,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1460331","why":"Add-ons change search settings against our policies, affecting core Firefox features. Add-on is also reportedly installed without user consent.","name":"SearchWeb"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"5afea853-d029-43f3-a387-64ce9980742a","last_modified":1528408770328},{"guid":"{38363d75-6591-4e8b-bf01-0270623d1b6c}","prefs":[],"schema":1526326889114,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1461625","why":"This add-on contains abusive functionality.","name":"Photobucket Hotlink Fix"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"0f0764d5-a290-428b-a5b2-3767e1d72c71","last_modified":1526381862851},{"guid":"@vkmad","prefs":[],"schema":1526154098016,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1461410","why":"This add-on includes malicious functionality.","name":"VK Universal Downloader (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cbfa5303-c1bf-49c8-87d8-259738a20064","last_modified":1526322954850},{"guid":"/^(({41c14ab8-9958-44bf-b74e-af54c1f169a6})|({78054cb2-e3e8-4070-a8ad-3fd69c8e4707})|({0089b179-8f3d-44d9-bb18-582843b0757a})|({f44ddcb4-4cc0-4866-92fa-eefda60c6720})|({1893d673-7953-4870-8069-baac49ce3335})|({fb28cac0-c2aa-4e0c-a614-cf3641196237})|({d7dee150-da14-45ba-afca-02c7a79ad805})|(RandomNameTest@RandomNameTest\\.com )|(corpsearchengine@mail\\.ru)|(support@work\\.org))$/","prefs":[],"schema":1525377099963,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1458330","why":"These are malicious add-ons that inject remote scripts and use deceptive names.","name":"\"Table\" add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"3a123214-b4b6-410c-a061-bbaf0d168d31","last_modified":1525377135149},{"guid":"/((@extcorp\\.[a-z]+)|(@brcorporation\\.com)|(@brmodcorp\\.com)|(@teset\\.com)|(@modext\\.tech)|(@ext?mod\\.net)|(@browcorporation\\.org)|(@omegacorporation\\.org)|(@browmodule\\.com)|(@corpext\\.net)|({6b50ddac-f5e0-4d9e-945b-e4165bfea5d6})|({fab6484f-b8a7-4ba9-a041-0f948518b80c})|({b797035a-7f29-4ff5-bd19-77f1b5e464b1})|({0f612416-5c5a-4ec8-b482-eb546af9cac4}))$/","prefs":[],"schema":1525290095999,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1458330","why":"These are malicious add-ons that inject remote scripts and use deceptive names.","name":"\"Table\" add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"3ab9f100-e253-4080-b3e5-652f842ddb7a","last_modified":1525377099954},{"guid":"/^({b99ae7b1-aabb-4674-ba8f-14ed32d04e76})|({dfa77d38-f67b-4c41-80d5-96470d804d09})$/","prefs":[],"schema":1524146566650,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1455291","why":"These add-ons claim to be the flash plugin.","name":"Flash Plugin (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"96b137e6-8cb5-44d6-9a34-4a4a76fb5e38","last_modified":1524147337556},{"guid":"/^({6ecb9f49-90f0-43a1-8f8a-e809ea4f732b})|(@googledashboard)|(@smashdashboard)|(@smash_tv)|(@smash_mov)|(@smashmovs)|(@smashtvs)|(@FirefoxUpdate)|({92b9e511-ac81-4d47-9b8f-f92dc872447e})|({3c841114-da8c-44ea-8303-78264edfe60b})|({116a0754-20eb-4fe5-bd35-575867a0b89e})|({6e6ff0fd-4ae4-49ae-ac0c-e2527e12359b})|({f992ac88-79d3-4960-870e-92c342ed3491})|({6ecb9f49-90f0-43a1-8f8a-e809ea4f732b})|({a512297e-4d3a-468c-bd1a-f77bd093f925})|({08c28c16-9fb6-4b32-9868-db37c1668f94})|({b4ab1a1d-e137-4c59-94d5-4f509358a81d})|({feedf4f8-08c1-451f-a717-f08233a64ec9})$/","prefs":[],"schema":1524139371832,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1454691","why":"This malware prevents itself from getting uninstalled ","name":"Malware"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"feb2d0d7-1b76-4dba-bf84-42873a92af5f","last_modified":1524141477640},{"guid":"{872f20ea-196e-4d11-8835-1cc4c877b1b8}","prefs":[],"schema":1523734896380,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1454413","why":"Extension claims to be Flash Player","name":"Flash Player (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"1e5f5cb2-346c-422a-9aaa-29d8760949d2","last_modified":1523897202689},{"guid":"/(__TEMPLATE__APPLICATION__@ruta-mapa\\.com)|(application-3@findizer\\.fr)|(application2@allo-pages\\.fr)|(application2@bilan-imc\\.fr)|(application2@lettres\\.net)|(application2@search-maps-finder\\.com)|(application-imcpeso@imc-peso\\.com)|(application-meuimc@meu-imc\\.com)|(application-us2@factorlove)|(application-us@misterdirections)|(application-us@yummmi\\.es)|(application@amiouze\\.fr)|(application@astrolignes\\.com)|(application@blotyn\\.com)|(application@bmi-result\\.com)|(application@bmi-tw\\.com)|(application@calcolo-bmi\\.com)|(application@cartes-itineraires\\.com)|(application@convertisseur\\.pro)|(application@de-findizer\\.fr)|(application@de-super-rezepte\\.com)|(application@dermabeauty\\.fr)|(application@dev\\.squel\\.v2)|(application@eu-my-drivingdirections\\.com)|(application@fr-allo-pages\\.fr)|(application@fr-catizz\\.com)|(application@fr-mr-traduction\\.com)|(application@good-recettes\\.com)|(application@horaires\\.voyage)|(application@imc-calcular\\.com)|(application@imc-peso\\.com)|(application@it-mio-percorso\\.com)|(application@iti-maps\\.fr)|(application@itineraire\\.info)|(application@lbc-search\\.com)|(application@les-pages\\.com)|(application@lovincalculator\\.com)|(application@lovintest\\.com)|(application@masowe\\.com)|(application@matchs\\.direct)|(application@mein-bmi\\.com)|(application@mes-resultats\\.com)|(application@mestaf\\.com)|(application@meu-imc\\.com)|(application@mon-calcul-imc\\.fr)|(application@mon-juste-poids\\.com)|(application@mon-trajet\\.com)|(application@my-drivingdirections\\.com)|(application@people-show\\.com)|(application@plans-reduc\\.fr)|(application@point-meteo\\.fr)|(application@poulixo\\.com)|(application@quipage\\.fr)|(application@quizdeamor\\.com)|(application@quizdoamor\\.com)|(application@quotient-retraite\\.fr)|(application@recettes\\.net)|(application@routenplaner-karten\\.com)|(application@ruta-mapa\\.com)|(application@satellite\\.dev\\.squel\\.v2)|(application@search-bilan-imc\\.fr)|(application@search-maps-finder\\.com)|(application@slimness\\.fr)|(application@start-bmi\\.com)|(application@tests-moi\\.com)|(application@tousmesjeux\\.fr)|(application@toutlannuaire\\.fr)|(application@tuto-diy\\.com)|(application@ubersetzung-app\\.com)|(application@uk-cookyummy\\.com)|(application@uk-howlogin\\.me)|(application@uk-myloap\\.com)|(application@voyagevoyage\\.co)|(application@wikimot\\.fr)|(application@www\\.plans-reduc\\.fr)|(application@yummmi\\.es)|(application@yummmies\\.be)|(application@yummmies\\.ch)|(application@yummmies\\.fr)|(application@yummmies\\.lu)|(application@zikplay\\.fr)|(applicationY@search-maps-finder\\.com)|(cmesapps@findizer\\.fr)|(findizer-shopping@jetpack)|(\\{8aaebb36-1488-4022-b7ec-29b790d12c17\\})/","prefs":[],"schema":1523216496621,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1452648","why":"Those add-ons do not provide a real functionality for users, other than silently tracking browsing behavior.","name":"Tracking Add-ons (harmful)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"36f97298-8bef-4372-a548-eb829413bee9","last_modified":1523286321447},{"guid":"adbeaver@adbeaver.org","prefs":[],"schema":1521630548030,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1445031","why":"This add-on generates numerous errors when loading Facebook, caused by ad injection included in it. Users who want to continue using this add-on can enable it in the Add-ons Manager.","name":"AdBeaver"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0"}],"id":"baf7f735-d6b6-410a-8cc8-25c60f7c57e2","last_modified":1522103097333},{"guid":"{44685ba6-68b3-4895-879e-4efa29dfb578}","prefs":[],"schema":1521565140013,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1447042","why":"This add-on impersonates a Flash tool and runs remote code on users' systems.","name":"FF Flash Manager"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"547037f2-97ae-435a-863c-efd7532668cd","last_modified":1521630548023},{"guid":"/^.*extension.*@asdf\\.pl$/","prefs":[],"schema":1520451695869,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1444037","why":"These add-ons are using deceptive names and taking over Facebook accounts to post spam content.","name":"Facebook spammers"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"3d55fab0-ec1a-4bca-84c9-3b74f5d01509","last_modified":1520527480321},{"guid":"/^(addon@fasterweb\\.com|\\{5f398d3f-25db-47f5-b422-aa2364ff6c0b\\}|addon@fasterp\\.com|addon@calculator)$/","prefs":[],"schema":1520338910918,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1443478","why":"These are malicious add-ons that use deceptive names and run remote scripts.","name":"FasterWeb add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"f58729ec-f93c-41d9-870d-dd9c9fd811b6","last_modified":1520358450708},{"guid":"{42baa93e-0cff-4289-b79e-6ae88df668c4}","prefs":[],"schema":1520336325565,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1443196","why":"The add-on claims to be \"Adobe Shockwave Flash Player\"","name":"Adobe Shockwave Flash Player (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"0cd723fe-d33d-43a0-b84f-7a3cad253212","last_modified":1520338780397},{"guid":"/{0c9970a2-6874-483b-a486-2296cfe251c2}|{01c9a4a4-06dd-426b-9500-2ea6fe841b88}|{1c981c7c-30e0-4ed2-955d-6b370e0a9d19}|{2aa275f8-fabc-4766-95b2-ecfc73db310b}|{2cac0be1-10a2-4a0d-b8c5-787837ea5955}|{2eb66f6c-94b3-44f5-9de2-22371236ec99}|{2f8aade6-8717-4277-b8b1-55172d364903}|{3c27c34f-8775-491a-a1c9-fcb15beb26d3}|{3f4dea3e-dbfc-428f-a88b-36908c459e20}|{3f4191fa-8f16-47d2-9414-36bfc9e0c2bf}|{4c140bc5-c2ad-41c3-a407-749473530904}|{05a21129-af2a-464c-809f-f2df4addf209}|{5da81d3d-5db1-432a-affc-4a2fe9a70749}|{5f4e63e4-351f-4a21-a8e5-e50dc72b5566}|{7c1df23b-1fd8-42b9-8752-71fff2b979de}|{7d5e24a1-7bef-4d09-a952-b9519ec00d20}|{7d932012-b4dd-42cc-8a78-b15ca82d0e61}|{7f8bc48d-1c7c-41a0-8534-54adc079338f}|{8a61507d-dc2f-4507-a9b7-7e33b8cbc31b}|{09c8fa16-4eec-4f78-b19d-9b24b1b57e1e}|{9ce2a636-0e49-4b8e-ad17-d0c156c963b0}|{11df9391-dba5-4fe2-bd48-37a9182b796d}|{23c65153-c21e-430a-a2dc-0793410a870d}|{36a4269e-4eef-4538-baea-9dafbf6a8e2f}|{37f8e483-c782-40ed-82e9-36f101b9e41f}|{63df223d-51cf-4f76-aad8-bbc94c895ed2}|{72c1ca96-c05d-46a7-bce1-c507ec3db4ea}|{76ce213c-8e57-4a14-b60a-67a5519bd7a7}|{79db6c96-d65a-4a64-a892-3d26bd02d2d9}|{81ac42f3-3d17-4cff-85af-8b7f89c8826b}|{83d38ac3-121b-4f28-bf9c-1220bd3c643b}|{86d98522-5d42-41d5-83c2-fc57f260a3d9}|{0111c475-01e6-42ea-a9b4-27bed9eb6092}|{214cb48a-ce31-4e48-82cf-a55061f1b766}|{216e0bcc-8a23-4069-8b63-d9528b437258}|{226b0fe6-f80f-48f1-9d8d-0b7a1a04e537}|{302ef84b-2feb-460e-85ca-f5397a77aa6a}|{408a506b-2336-4671-a490-83a1094b4097}|{419be4e9-c981-478e-baa0-937cf1eea1e8}|{0432b92a-bfcf-41b9-b5f0-df9629feece1}|{449e185a-dd91-4f7b-a23a-bbf6c1ca9435}|{591d1b73-5eae-47f4-a41f-8081d58d49bf}|{869b5825-e344-4375-839b-085d3c09ab9f}|{919fed43-3961-48d9-b0ef-893054f4f6f1}|{01166e60-d740-440c-b640-6bf964504b3c}|{2134e327-8060-441c-ba68-b167b82ff5bc}|{02328ee7-a82b-4983-a5f7-d0fc353698f0}|{6072a2a8-f1bc-4c9c-b836-7ac53e3f51e4}|{28044ca8-8e90-435e-bc63-a757af2fb6be}|{28092fa3-9c52-4a41-996d-c43e249c5f08}|{31680d42-c80d-4f8a-86d3-cd4930620369}|{92111c8d-0850-4606-904a-783d273a2059}|{446122cd-cd92-4d0c-9426-4ee0d28f6dca}|{829827cd-03be-4fed-af96-dd5997806fb4}|{4479446e-40f3-48af-ab85-7e3bb4468227}|{9263519f-ca57-4178-b743-2553a40a4bf1}|{71639610-9cc3-47e0-86ed-d5b99eaa41d5}|{84406197-6d37-437c-8d82-ae624b857355}|{93017064-dfd4-425e-a700-353f332ede37}|{a0ab16af-3384-4dbe-8722-476ce3947873}|{a0c54bd8-7817-4a40-b657-6dc7d59bd961}|{a2de96bc-e77f-4805-92c0-95c9a2023c6a}|{a3fbc8be-dac2-4971-b76a-908464cfa0e0}|{a42e5d48-6175-49e3-9e40-0188cde9c5c6}|{a893296e-5f54-43f9-a849-f12dcdee2c98}|{ac296b47-7c03-486f-a1d6-c48b24419749}|{b26bf964-7aa6-44f4-a2a9-d55af4b4eec0}|{be981b5e-1d9d-40dc-bd4f-47a7a027611c}|{be37931c-af60-4337-8708-63889f36445d}|{bfd92dfd-b293-4828-90c1-66af2ac688e6}|{c5cf4d08-0a33-4aa3-a40d-d4911bcc1da7}|{c488a8f5-ea3d-408d-809e-44e82c06ad9d}|{c661c2dc-00f9-4dc1-a9f6-bb2b7e1a4f8d}|{cd28aa38-d2f1-45a3-96c3-6cfd4702ef51}|{cd89045b-2e06-46bb-9e34-48e8799e5ef2}|{cf9d96ff-5997-439a-b32b-98214c621eee}|{d14acee6-f32b-4aa3-a802-6616003fc6a8}|{d97223b8-44e5-46c7-8ab5-e1d8986daf44}|{ddae89bd-6793-45d8-8ec9-7f4fb7212378}|{de3b1909-d4da-45e9-8da5-7d36a30e2fc6}|{df09f268-3c92-49db-8c31-6a25a6643896}|{e5bc3951-c837-4c98-9643-3c113fc8cf5e}|{e9ccb1f2-a8ba-4346-b43b-0d5582bce414}|{e341ed12-a703-47fe-b8dd-5948c38070e4}|{e2139287-2b0d-4f54-b3b1-c9a06c597223}|{ed352072-ddf0-4cb4-9cb6-d8aa3741c2de}|{f0b809eb-be22-432f-b26f-b1cadd1755b9}|{f1bce8e4-9936-495b-bf48-52850c7250ab}|{f01c3add-dc6d-4f35-a498-6b4279aa2ffa}|{f9e1ad25-5961-4cc5-8d66-5496c438a125}|{f4262989-6de0-4604-918f-663b85fad605}|{fc0d55bd-3c50-4139-9409-7df7c1114a9d}/","prefs":[],"schema":1519766961483,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1439702","why":"This malicious add-on claims to be a Firefox \"helper\" or \"updater\" or similar.","name":"FF updater (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"48b14881-5f6b-4e48-afc5-3d9a7fae26a3","last_modified":1519826648080},{"guid":"{44e4b2cf-77ba-4f76-aca7-f3fcbc2dda2f} ","prefs":[],"schema":1519414957616,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1440821","why":"This is a malicious add-on that uses a deceptive name and runs remote code.","name":"AntiVirus for Firefox"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"2447476f-043b-4d0b-9d3c-8e859c97d950","last_modified":1519429178266},{"guid":"{f3c31b34-862c-4bc8-a98f-910cc6314a86}","prefs":[],"schema":1519242096699,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1440736","why":"This is a malicious add-on that is masked as an official Adobe Updater and runs malicious code.","name":"Adobe Updater (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"adfd98ef-cebc-406b-b1e0-61bd4c71e4b1","last_modified":1519409417397},{"guid":"/^(\\{fd0c36fa-6a29-4246-810b-0bb4800019cb\\}|\\{b9c1e5bf-6585-4766-93fc-26313ac59999\\}|\\{3de25fff-25e8-40e9-9ad9-fdb3b38bb2f4\\})$/","prefs":[],"schema":1519069296530,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1439432","why":"These are malicious add-ons that are masked as an official Adobe Updater and run malicious code.","name":"Adobe Updater"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"4e28ba5c-af62-4e53-a7a1-d33334571cf8","last_modified":1519078890592},{"guid":"/^(\\{01c9a4a4-06dd-426b-9500-2ea6fe841b88\\}|{5e024309-042c-4b9d-a634-5d92cf9c7514\\}|{f4262989-6de0-4604-918f-663b85fad605\\}|{e341ed12-a703-47fe-b8dd-5948c38070e4\\}|{cd89045b-2e06-46bb-9e34-48e8799e5ef2\\}|{ac296b47-7c03-486f-a1d6-c48b24419749\\}|{5da81d3d-5db1-432a-affc-4a2fe9a70749\\}|{df09f268-3c92-49db-8c31-6a25a6643896\\}|{81ac42f3-3d17-4cff-85af-8b7f89c8826b\\}|{09c8fa16-4eec-4f78-b19d-9b24b1b57e1e\\}|{71639610-9cc3-47e0-86ed-d5b99eaa41d5\\}|{83d38ac3-121b-4f28-bf9c-1220bd3c643b\\}|{7f8bc48d-1c7c-41a0-8534-54adc079338f\\})$/","prefs":[],"schema":1518550894975,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1438028","why":"These are malicious add-ons that inject remote scripts into popular websites.","name":"Page Marker add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"cc5848e8-23d5-4655-b45c-dc239839b74e","last_modified":1518640450735},{"guid":"/^(https|youtube)@vietbacsecurity\\.com$/","prefs":[],"schema":1517909997354,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1435974","why":"These add-ons contain malicious functionality, violating the users privacy and security.","name":"HTTPS and Youtube downloader (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"646e2384-f894-41bf-b7fc-8879e0095109","last_modified":1517910100624},{"guid":"{ed352072-ddf0-4cb4-9cb6-d8aa3741c2de}","prefs":[],"schema":1517514097126,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1434893","why":"This is a malicious add-on that injects remote scripts into popular pages while pretending to do something else.","name":"Image previewer"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"2104a522-bb2f-4b04-ad0d-b0c571644552","last_modified":1517577111194},{"guid":"/^(\\{0b24cf69-02b8-407d-83db-e7af04fc1f3e\\})|(\\{6feed48d-41d4-49b8-b7d6-ef78cc7a7cd7\\})| (\\{8a0699a0-09c3-4cf1-b38d-fec25441650c\\})$/","prefs":[],"schema":1517341295286,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1434759","why":"These add-ons use remote scripts to alter popular sites like Google or Amazon.","name":"Malicious remote script add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"32ffc62d-40c4-43ac-aa3f-7240978d0ad0","last_modified":1517439279474},{"guid":"/^({be5d0c88-571b-4d01-a27a-cc2d2b75868c})|({3908d078-e1db-40bf-9567-5845aa77b833})|({5b620343-cd69-49b8-a7ba-f9d499ee5d3d})|({6eee2d17-f932-4a43-a254-9e2223be8f32})|({e05ba06a-6d6a-4c51-b8fc-60b461ffecaf})|({a5808da1-5b4f-42f2-b030-161fd11a36f7})|({d355bee9-07f0-47d3-8de6-59b8eecba57b})|({a1f8e136-bce5-4fd3-9ed1-f260703a5582})$/","prefs":[],"schema":1517260691761,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.\n","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"70f37cc7-9f8a-4d0f-a881-f0c56934fa75","last_modified":1517260722621},{"guid":"/^({d78d27f4-9716-4f13-a8b6-842c455d6a46})|({bd5ba448-b096-4bd0-9582-eb7a5c9c0948})|({0b24cf69-02b8-407d-83db-e7af04fc1f3e})|({e08d85c5-4c0f-4ce3-9194-760187ce93ba})|({1c7d6d9e-325a-4260-8213-82d51277fc31})|({8a0699a0-09c3-4cf1-b38d-fec25441650c})|({1e68848a-2bb7-425c-81a2-524ab93763eb})$/","prefs":[],"schema":1517168490224,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"805ee80e-0929-4c92-93ed-062b98053f28","last_modified":1517260691755},{"guid":"/^({abec23c3-478f-4a5b-8a38-68ccd500ec42}|{a83c1cbb-7a41-41e7-a2ae-58efcb4dc2e4}|{62237447-e365-487e-8fc3-64ddf37bdaed}|{b12cfdc7-3c69-43cb-a3fb-38981b68a087}|{1a927d5b-42e7-4407-828a-fdc441d0daae}|{dd1cb0ec-be2a-432b-9c90-d64c824ac371}|{82c8ced2-e08c-4d6c-a12b-3e8227d7fc2a}|{87c552f9-7dbb-421b-8deb-571d4a2d7a21})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c92f2a05-73eb-454e-9583-f6d2382d8bca","last_modified":1516829074251},{"guid":"/^({618baeb9-e694-4c7b-9328-69f35b6a8839}|{b91fcda4-88b0-4a10-9015-9365e5340563}|{04150f98-2d7c-4ae2-8979-f5baa198a577}|{4b1050c6-9139-4126-9331-30a836e75db9}|{1e6f5a54-2c4f-4597-aa9e-3e278c617d38}|{e73854da-9503-423b-ab27-fafea2fbf443}|{a2427e23-d349-4b25-b5b8-46960b218079}|{f92c1155-97b3-40f4-9d5b-7efa897524bb}|{c8e14311-4b2d-4eb0-9a6b-062c6912f50e}|{45621564-b408-4c29-8515-4cf1f26e4bc3}|{27380afd-f42a-4c25-b57d-b9012e0d5d48})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"2d4fe65b-6c02-4461-baa8-dda52e688cf6","last_modified":1516829040469},{"guid":"/^({4dac7c77-e117-4cae-a9f0-6bd89e9e26ab}|{cc689da4-203f-4a0c-a7a6-a00a5abe74c5}|{0eb4672d-58a6-4230-b74c-50ca3716c4b0}|{06a71249-ef35-4f61-b2c8-85c3c6ee5617}|{5280684d-f769-43c9-8eaa-fb04f7de9199}|{c2341a34-a3a0-4234-90cf-74df1db0aa49}|{85e31e7e-3e3a-42d3-9b7b-0a2ff1818b33}|{b5a35d05-fa28-41b5-ae22-db1665f93f6b}|{1bd8ba17-b3ed-412e-88db-35bc4d8771d7}|{a18087bb-4980-4349-898c-ca1b7a0e59cd}|{488e190b-d1f6-4de8-bffb-0c90cc805b62})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"9a3fd797-0ab8-4286-9a1b-2b6c97f9075b","last_modified":1516829006347},{"guid":"/^({f6df4ef7-14bd-43b5-90c9-7bd02943789c}|{ccb7b5d6-a567-40a2-9686-a097a8b583dd}|{9b8df895-fcdd-452a-8c46-da5be345b5bc}|{5cf77367-b141-4ba4-ac2a-5b2ca3728e81}|{ada56fe6-f6df-4517-9ed0-b301686a34cc}|{95c7ae97-c87e-4827-a2b7-7b9934d7d642}|{e7b978ae-ffc2-4998-a99d-0f4e2f24da82}|{115a8321-4414-4f4c-aee6-9f812121b446}|{bf153de7-cdf2-4554-af46-29dabfb2aa2d}|{179710ba-0561-4551-8e8d-1809422cb09f}|{9d592fd5-e655-461a-9b28-9eba85d4c97f})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"aae78cd5-6b26-472e-ab2d-db4105911250","last_modified":1516828973824},{"guid":"/^({30972e0a-f613-4c46-8c87-2e59878e7180}|{0599211f-6314-4bf9-854b-84cb18da97f8}|{4414af84-1e1f-449b-ac85-b79f812eb69b}|{2a8bec00-0ab0-4b4d-bd3d-4f59eada8fd8}|{bea8866f-01f8-49e9-92cd-61e96c05d288}|{046258c9-75c5-429d-8d5b-386cfbadc39d}|{c5d359ff-ae01-4f67-a4f7-bf234b5afd6e}|{fdc0601f-1fbb-40a5-84e1-8bbe96b22502}|{85349ea6-2b5d-496a-9379-d4be82c2c13d}|{640c40e5-a881-4d16-a4d0-6aa788399dd2}|{d42328e1-9749-46ba-b35c-cce85ddd4ace})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"750aa293-3742-46b5-8761-51536afecaef","last_modified":1516828938683},{"guid":"/^({d03b6b0f-4d44-4666-a6d6-f16ad9483593}|{767d394a-aa77-40c9-9365-c1916b4a2f84}|{a0ce2605-b5fc-4265-aa65-863354e85058}|{b7f366fa-6c66-46bf-8df2-797c5e52859f}|{4ad16913-e5cb-4292-974c-d557ef5ec5bb}|{3c3ef2a3-0440-4e77-9e3c-1ca8d48f895c}|{543f7503-3620-4f41-8f9e-c258fdff07e9}|{98363f8b-d070-47b6-acc6-65b80acac4f3}|{5af74f5a-652b-4b83-a2a9-f3d21c3c0010}|{484e0ba4-a20b-4404-bb1b-b93473782ae0}|{b99847d6-c932-4b52-9650-af83c9dae649})$/","prefs":[],"schema":1516828883529,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"a29aed6f-6546-4fa2-8131-df5c9a5427af","last_modified":1516828911059},{"guid":"/^({2bb68b03-b528-4133-9fc4-4980fbb4e449}|{231e58ac-0f3c-460b-bb08-0e589360bec7}|{a506c5af-0f95-4107-86f8-3de05e2794c9}|{8886a262-1c25-490b-b797-2e750dd9f36b}|{65072bef-041f-492e-8a51-acca2aaeac70}|{6fa41039-572b-44a4-acd4-01fdaebf608d}|{87ba49bd-daba-4071-aedf-4f32a7e63dbe}|{95d58338-ba6a-40c8-93fd-05a34731dc0e}|{4cbef3f0-4205-4165-8871-2844f9737602}|{1855d130-4893-4c79-b4aa-cbdf6fee86d3}|{87dcb9bf-3a3e-4b93-9c85-ba750a55831a})$/","prefs":[],"schema":1516822896448,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are malicious add-ons that automatically close the Add-ons Manager.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"5c092b0d-7205-43a1-aa75-b7a42372fb52","last_modified":1516828883523},{"guid":"/^({fce89242-66d3-4946-9ed0-e66078f172fc})|({0c4df994-4f4a-4646-ae5d-8936be8a4188})|({6cee30bc-a27c-43ea-ac72-302862db62b2})|({e08ebf0b-431d-4ed1-88bb-02e5db8b9443})$/","prefs":[],"schema":1516650096284,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1432560","why":"These are malicious add-ons that make it hard for the user to be removed.","name":"FF AntiVir Monitoring"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"9dfeee42-e6a8-49e0-8979-0648f7368239","last_modified":1516744119329},{"guid":"/^(\\{1490068c-d8b7-4bd2-9621-a648942b312c\\})|(\\{d47ebc8a-c1ea-4a42-9ca3-f723fff034bd\\})|(\\{83d6f65c-7fc0-47d0-9864-a488bfcaa376\\})|(\\{e804fa4c-08e0-4dae-a237-8680074eba07\\})|(\\{ea618d26-780e-4f0f-91fd-2a6911064204\\})|(\\{ce93dcc7-f911-4098-8238-7f023dcdfd0d\\})|(\\{7eaf96aa-d4e7-41b0-9f12-775c2ac7f7c0\\})|(\\{b019c485-2a48-4f5b-be13-a7af94bc1a3e\\})|(\\{9b8a3057-8bf4-4a9e-b94b-867e4e71a50c\\})|(\\{eb3ebb14-6ced-4f60-9800-85c3de3680a4\\})|(\\{01f409a5-d617-47be-a574-d54325fe05d1\\})$/","prefs":[],"schema":1516394914836,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are a set of malicious add-ons that block the add-ons manager tab from opening so they can't be uninstalled.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"5bf72f70-a611-4845-af3f-d4dabe8862b6","last_modified":1516394982586},{"guid":"/^(\\{ac06c6b2-3fd6-45ee-9237-6235aa347215\\})|(\\{d461cc1b-8a36-4ff0-b330-1824c148f326\\})|(\\{d1ab5ebd-9505-481d-a6cd-6b9db8d65977\\})|(\\{07953f60-447e-4f53-a5ef-ed060487f616\\})|(\\{2d3c5a5a-8e6f-4762-8aff-b24953fe1cc9\\})|(\\{f82b3ad5-e590-4286-891f-05adf5028d2f\\})|(\\{f96245ad-3bb0-46c5-8ca9-2917d69aa6ca\\})|(\\{2f53e091-4b16-4b60-9cae-69d0c55b2e78\\})|(\\{18868c3a-a209-41a6-855d-f99f782d1606\\})|(\\{47352fbf-80d9-4b70-9398-fb7bffa3da53\\})$/","prefs":[],"schema":1516311993443,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1431748","why":"These are a set of malicious add-ons that block the add-ons manager tab from opening so they can't be uninstalled.","name":"FF Tool"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"4ca8206f-bc2a-4428-9439-7f3142dc08db","last_modified":1516394914828},{"guid":"{5b0f6d3c-10fd-414c-a135-dffd26d7de0f}","prefs":[],"schema":1516131689499,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1430577","why":"This is a malicious add-on that executes remote scripts, redirects popular search URLs and tracks users.","name":"P Birthday"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"8088b39a-3e6d-4a17-a22f-3f95c0464bd6","last_modified":1516303320468},{"guid":"{1490068c-d8b7-4bd2-9621-a648942b312c}","prefs":[],"schema":1515267698296,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1428754","why":"This add-on is using a deceptive name and performing unwanted actions on users' systems.","name":"FF Safe Helper"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"674b6e19-f087-4706-a91d-1e723ed6f79e","last_modified":1515433728497},{"guid":"{dfa727cb-0246-4c5a-843a-e4a8592cc7b9}","prefs":[],"schema":1514922095288,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1426582","why":"Version 2.0.0 shipped with a hidden coin miner, which degrades performance in users who have it enabled. Version 1.2.3 currently available on AMO is not affected.","name":"Open With Adobe PDF Reader 2.0.0"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0.0","minVersion":"2.0.0"}],"id":"455772a3-8360-4f5a-9a5f-a45b904d0b51","last_modified":1515007270887},{"guid":"{d03b6b0f-4d44-4666-a6d6-f16ad9483593}","prefs":[],"schema":1513366896461,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1425581","why":"This is a malicious add-on posing as a legitimate update.","name":"FF Guard Tool (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"10d9ce89-b8d4-4b53-b3d7-ecd192681f4e","last_modified":1513376470395},{"guid":"{7e907a15-0a4c-4ff4-b64f-5eeb8f841349}","prefs":[],"schema":1510083698490,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate update.","name":"Manual Update"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"f7569261-f575-4719-8202-552b20d013b0","last_modified":1510168860382},{"guid":"{3602008d-8195-4860-965a-d01ac4f9ca96}","prefs":[],"schema":1509120801051,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate antivirus.\n","name":"Manual Antivirus"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"28c805a9-e692-4ef8-b3ae-14e085c19ecd","last_modified":1509120934909},{"guid":"{87010166-e3d0-4db5-a394-0517917201df}","prefs":[],"schema":1509120801051,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate antivirus.\n","name":"Manual Antivirus"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"84dd8a02-c879-4477-8ea7-bf2f225b0940","last_modified":1509120881470},{"guid":"{8ab60777-e899-475d-9a4f-5f2ee02c7ea4}","prefs":[],"schema":1509120801051,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate antivirus.\n","name":"Manual Antivirus"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"ccebab59-7190-4258-8faa-a0b752dd5301","last_modified":1509120831329},{"guid":"{368eb817-31b4-4be9-a761-b67598faf9fa}","prefs":[],"schema":1509046897080,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1411885","why":"This is a malicious add-on posing as a legitimate antivirus.","name":"Manual Antivirus"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"9abc7502-bd6f-40d7-b035-abe721345360","last_modified":1509120801043},{"guid":"fi@dictionaries.addons.mozilla.org","prefs":[],"schema":1508701297180,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1407147","why":"This add-on is causing frequent crashes in Firefox 56.","name":"Finnish spellchecker"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"2.1.0","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"56.0a1"}]}],"id":"22431713-a93b-40f4-8264-0b341b5f6454","last_modified":1508856488536},{"guid":"firefox@mega.co.nz","prefs":[],"schema":1506800496781,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1404290","why":"Add-on is causing tabs to load blank.","name":"Mega.nz"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.16.1","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"56.0a1"}]}],"id":"a84e6eba-4bc1-4416-b481-9b837d39f9f0","last_modified":1506963401477},{"guid":"@68eba425-7a05-4d62-82b1-1d6d5a51716b","prefs":[],"schema":1505072496256,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1398905","why":"Misleads users into thinking this is a security and privacy tool (also distributed on a site that makes it look like an official Mozilla product).","name":"SearchAssist Incognito"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0"}],"id":"595e0e53-b76b-4188-a160-66f29c636094","last_modified":1505211411253},{"guid":"{efda3854-2bd9-45a1-9766-49d7ff18931d}","prefs":[],"schema":1503344500341,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1392625","why":"Add-on injects remote code into privileged scope.","name":"Smart Referer"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.8.17.2","minVersion":"0"}],"id":"d83011de-67a4-479b-a778-916a7232095b","last_modified":1503411102265},{"guid":"@H99KV4DO-UCCF-9PFO-9ZLK-8RRP4FVOKD9O","prefs":[],"schema":1502483549048,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1340877","why":"This is a malicious add-on that is being installed silently.","name":"FF Adr (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"5df16afc-c804-43c9-9de5-f1835403e5fb","last_modified":1502483601731},{"guid":"@DA3566E2-F709-11E5-8E87-A604BC8E7F8B","prefs":[],"schema":1502480491460,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1340877","why":"This is a malicious add-on that is being installed silently into users' systems.","name":"SimilarWeb (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"0a47a2f7-f07c-489b-bd39-88122a2dfe6a","last_modified":1502483549043},{"guid":"xdict@www.iciba.com","prefs":[],"schema":1501098091500,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1384497","why":"This add-on has been discontinued and is creating a prompt loop that blocks users from using Firefox.","name":"PowerWord Grab Word Extension"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.3.1","minVersion":"0"}],"id":"28736359-700e-4b61-9c50-0b533a6bac55","last_modified":1501187580933},{"guid":"{3B4DE07A-DE43-4DBC-873F-05835FF67DCE}","prefs":[],"schema":1496950889322,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1371392","why":"This add-on performs hidden actions that cause the users' systems to act as a botnet.","name":"The Safe Surfing (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"510bbd9b-b883-4837-90ab-8e353e27e1be","last_modified":1496951442076},{"guid":"WebProtection@360safe.com","prefs":[],"schema":1496846005095,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1336635","who":"All users of Firefox 52 and above who have this add-on installed.","why":"This add-on breaks the Firefox user interface starting with version 52.","name":"360 Internet Protection versions 5.0.0.1009 and lower"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"5.0.0.1009","minVersion":"0"}],"id":"e16408c3-4e08-47fd-85a9-3cbbce534e95","last_modified":1496849965060},{"guid":"html5@encoding","prefs":[],"schema":1496788543767,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1370847","who":"All users.","why":"This malicious add-on targets a certain user group and spies on them.","name":"HTML5 Encoding (Malicious), all versions"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"c806b01c-3352-4083-afd9-9a8ab6e00b19","last_modified":1496833261424},{"guid":"/^({95E84BD3-3604-4AAC-B2CA-D9AC3E55B64B}|{E3605470-291B-44EB-8648-745EE356599A}|{95E5E0AD-65F9-4FFC-A2A2-0008DCF6ED25}|{FF20459C-DA6E-41A7-80BC-8F4FEFD9C575}|{6E727987-C8EA-44DA-8749-310C0FBE3C3E}|{12E8A6C2-B125-479F-AB3C-13B8757C7F04}|{EB6628CF-0675-4DAE-95CE-EFFA23169743})$/","prefs":[],"schema":1494022576295,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1362585","why":"All of these add-ons have been identified as malware, and are being installed in Firefox globally, most likely via a malicious application installer.","name":"Malicious globally-installed add-ons"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"3fd71895-7fc6-4f3f-aa22-1cbb0c5fd922","last_modified":1494024191520},{"guid":"@safesearchscoutee","prefs":[],"schema":1494013289942,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1362553","why":"This add-on intercepts queries sent to search engines and replaces them with its own, without user consent.","name":"SafeSearch Incognito (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0"}],"id":"edad04eb-ea16-42f3-a4a7-20dded33cc37","last_modified":1494022568654},{"guid":"{0D2172E4-C5AE-465A-B80D-53A840275B5E}","prefs":[],"schema":1493332768943,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1359473","who":"All users of Thunderbird 52 and above, using a version of the Priority Switcher add-on before version 0.7","why":"This add-on is causing recurring startup crashes in Thunderbird.","name":"Priority Switcher for Thunderbird before version 0.7"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.6.999","minVersion":"0","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"52.0a1"}]}],"id":"8c8af415-46db-40be-a66e-38e3762493bd","last_modified":1493332986987},{"guid":"msktbird@mcafee.com","prefs":[],"schema":1493150718059,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1354912","why":"These versions of this add-on are known to cause frequent crashes in Thunderbird.","name":"McAfee Anti-Spam Thunderbird Extension 2.0 and lower"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"2.0","minVersion":"0","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"0"}]}],"id":"9e86d1ff-727a-45e3-9fb6-17f32666daf2","last_modified":1493332747360},{"guid":"/^(\\{11112503-5e91-4299-bf4b-f8c07811aa50\\})|(\\{501815af-725e-45be-b0f2-8f36f5617afc\\})$/","prefs":[],"schema":1491421290217,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1354045","why":"This add-on steals user credentials for popular websites from Facebook.","name":"Flash Player Updater (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c142360c-4f93-467e-9717-b638aa085d95","last_modified":1491472107658},{"guid":"fr@fbt.ovh","prefs":[],"schema":1490898754477,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1351689","why":"Scam add-on that silently steals user credentials of popular websites","name":"Adobe Flash Player (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0f8344d0-8211-49a1-81be-c0084b3da9b1","last_modified":1490898787752},{"guid":"/^\\{(9321F452-96D5-11E6-BC3E-3769C7AD2208)|({18ED1ECA-96D3-11E6-A373-BD66C7AD2208})\\}$/","prefs":[],"schema":1490872899765,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1351710","why":"These add-ons modify websites and add deceptive or abusive content","name":"Scamming add-ons (Malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d6425f24-8c9e-4c0a-89b4-6890fc68d5c9","last_modified":1490898748265},{"guid":"/^(test2@test\\.com)|(test3@test\\.com)|(mozilla_cc2\\.2@internetdownloadmanager\\.com)$/","prefs":[],"schema":1490557289817,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1351095","who":"All users who have any of these add-ons installed.","why":"Old versions of the Internet Download Manager Integration add-on cause performance and stability problems in Firefox 53 and above.","name":"IDM Integration forks"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"53.0a1"}]}],"id":"9085fdba-8498-46a9-b9fd-4c7343a15c62","last_modified":1490653926191},{"guid":"mozilla_cc2@internetdownloadmanager.com","prefs":[],"schema":1489007018796,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1338832","who":"All users who have these versions of the add-on installed.","why":"Old versions of the Internet Download Manager Integration add-on cause performance and stability problems in Firefox 53 and above.","name":"IDM Integration"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"6.26.11","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"53.0a1"}]}],"id":"d33f6d48-a555-49dd-96ff-8d75473403a8","last_modified":1489514734167},{"guid":"InternetProtection@360safe.com","prefs":[],"schema":1489006712382,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1336635","who":"All Firefox users who have this add-on installed.","why":"This add-on breaks the Firefox user interface starting with version 52.","name":"360 Internet Protection"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"5.0.0.1002","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"52.0a1"}]}],"id":"89a61123-79a2-45d1-aec2-97afca0863eb","last_modified":1489006816246},{"guid":"{95E84BD3-3604-4AAC-B2CA-D9AC3E55B64B}","prefs":[],"schema":1487179851382,"details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1338690","who":"All users who have this add-on installed.","why":"This is a malicious add-on that is silently installed in users' systems.","name":"youtube adblock (malware)"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"04b25e3d-a725-493e-be07-cbd74fb37ea7","last_modified":1487288975999},{"guid":"ext@alibonus.com","prefs":[],"schema":1485297431051,"blockID":"i1524","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1333471","who":"All Firefox users who have these versions installed.","why":"Versions 1.20.9 and lower of this add-on contain critical security issues.","name":"Alibonus 1.20.9 and lower","created":"2017-01-24T22:45:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.20.9","minVersion":"0","targetApplication":[]}],"id":"a015d5a4-9184-95db-0c74-9262af2332fa","last_modified":1485301116629},{"guid":"{a0d7ccb3-214d-498b-b4aa-0e8fda9a7bf7}","prefs":[],"schema":1485295513652,"blockID":"i1523","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1314332","who":"All Firefox users who have these versions of the Web of Trust add-on installed.","why":"Versions 20170120 and lower of the Web of Trust add-on send excessive user data to its service, which has been reportedly shared with third parties without sufficient sanitization. These versions are also affected by a vulnerability that could lead to unwanted remote code execution.","name":"Web of Trust 20170120 and lower","created":"2017-01-24T22:01:08Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"20170120","minVersion":"0","targetApplication":[]}],"id":"2224c139-9b98-0900-61c1-04031de11ad3","last_modified":1485297214072},{"guid":"/^(ciscowebexstart1@cisco\\.com|ciscowebexstart_test@cisco\\.com|ciscowebexstart@cisco\\.com|ciscowebexgpc@cisco\\.com)$/","prefs":[],"schema":1485212610474,"blockID":"i1522","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1333225","who":"All Firefox users who have any Cisco WebEx add-ons installed.","why":"A critical security vulnerability has been discovered in Cisco WebEx add-ons that enable malicious websites to execute code on the user's system.","name":"Cisco WebEx add-ons","created":"2017-01-23T22:55:58Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.1","minVersion":"1.0.0","targetApplication":[]}],"id":"30368779-1d3b-490a-0a34-253085af7754","last_modified":1485215014902},{"guid":"{de71f09a-3342-48c5-95c1-4b0f17567554}","prefs":[],"schema":1484335370642,"blockID":"i1493","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1329654","who":"All users who have this add-on installed.","why":"This is a malicious add-on that is installed using a fake name. It changes search and homepage settings.","name":"Search for Firefox Convertor (malware)","created":"2017-01-12T22:17:59Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"1.3.9","minVersion":"0","targetApplication":[]}],"id":"d6ec9f54-9945-088e-ba68-40117eaba24e","last_modified":1484867614757},{"guid":"googlotim@gmail.com","prefs":[],"schema":1483389810787,"blockID":"i1492","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1328594","who":"All users who have Savogram version 1.3.2 installed. Version 1.3.1 doesn't have this problem and can be installed from the add-on page. Note that this is an older version, so affected users won't be automatically updated to it. New versions should correct this problem if they become available.","why":"Version 1.3.2 of this add-on loads remote code and performs DOM injection in an unsafe manner.","name":"Savogram 1.3.2","created":"2017-01-05T19:58:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.3.2","minVersion":"1.3.2","targetApplication":[]}],"id":"0756ed76-7bc7-ec1e-aba5-3a9fac2107ba","last_modified":1483646608603},{"guid":"support@update-firefox.com","prefs":[],"schema":1483387107003,"blockID":"i21","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=629717","who":"All users of the add-on in all Mozilla applications.","why":"This add-on is adware/spyware masquerading as a Firefox update mechanism.","name":"Browser Update (spyware)","created":"2011-01-31T16:23:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dfb06be8-3594-28e4-d163-17e27119f15d","last_modified":1483389809169},{"guid":"{2224e955-00e9-4613-a844-ce69fccaae91}","prefs":[],"schema":1483387107003,"blockID":"i7","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=512406","who":"All users of Internet Saving Optimizer for all Mozilla applications.","why":"This add-on causes a high volume of Firefox crashes and is considered malware.","name":"Internet Saving Optimizer (extension)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b9efb796-97c2-6434-d28f-acc83436f8e5","last_modified":1483389809147},{"guid":"supportaccessplugin@gmail.com","prefs":[],"schema":1483387107003,"blockID":"i43","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=693673","who":"All users with Firefox Access Plugin installed","why":"This add-on is spyware that reports all visited websites to a third party with no user value.","name":"Firefox Access Plugin (spyware)","created":"2011-10-11T11:24:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1ed230a4-e174-262a-55ab-0c33f93a2529","last_modified":1483389809124},{"guid":"{8CE11043-9A15-4207-A565-0C94C42D590D}","prefs":[],"schema":1483387107003,"blockID":"i10","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=541302","who":"All users of this add-on in all Mozilla applications.","why":"This add-on secretly hijacks all search results in most major search engines and masks as a security add-on.","name":"Internal security options editor (malware)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e2e0ac09-6d68-75f5-2424-140f51904876","last_modified":1483389809102},{"guid":"youtube@youtube2.com","prefs":[],"schema":1483387107003,"blockID":"i47","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=713050","who":"All users with any version of Free Cheesecake Factory installed on any Mozilla product.","why":"This add-on hijacks your Facebook account.","name":"Free Cheesecake Factory (malware)","created":"2011-12-22T13:11:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"85f5c1db-433b-bee3-2a3b-325165cacc6e","last_modified":1483389809079},{"guid":"admin@youtubespeedup.com","prefs":[],"schema":1483387107003,"blockID":"i48","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=714221","who":"All users with any version of Youtube Speed UP! installed on any Mozilla product.","why":"This add-on hijacks your Facebook account.","name":"Youtube Speed UP! (malware)","created":"2011-12-29T19:48:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a93922c4-8a8a-5230-8f76-76fecb0653b6","last_modified":1483389809057},{"guid":"{E8E88AB0-7182-11DF-904E-6045E0D72085}","prefs":[],"schema":1483387107003,"blockID":"i13","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=578085","who":"All users of this add-on for all Mozilla applications.","why":"This add-on intercepts website login credentials and is malware. For more information, please read our security announcement.","name":"Mozilla Sniffer (malware)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ebbd6de9-fc8a-3e5b-2a07-232bee589c7c","last_modified":1483389809035},{"guid":"sigma@labs.mozilla","prefs":[],"schema":1483387107003,"blockID":"i44","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=690819","who":"All users of Lab Kit in all versions of Firefox.","why":"The Lab Kit add-on has been retired due to compatibility issues with Firefox 7 and future Firefox browser releases. You can still install Mozilla Labs add-ons individually.\r\n\r\nFor more information, please read this announcement.","name":"Mozilla Labs: Lab Kit","created":"2011-10-11T11:51:34Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d614e9cd-220f-3a19-287b-57e122f8c4b5","last_modified":1483389809012},{"guid":"/^(jid0-S9kkzfTvEmC985BVmf8ZOzA5nLM@jetpack|jid1-qps14pkDB6UDvA@jetpack|jid1-Tsr09YnAqIWL0Q@jetpack|shole@ats.ext|{38a64ef0-7181-11e3-981f-0800200c9a66}|eochoa@ualberta.ca)$/","prefs":[],"schema":1483376308298,"blockID":"i1424","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1325060","who":"All users who have any of the affected versions installed.","why":"A security vulnerability was discovered in old versions of the Add-ons SDK, which is exposed by certain old versions of add-ons. In the case of some add-ons that haven't been updated for a long time, all versions are being blocked.","name":"Various vulnerable add-on versions","created":"2016-12-21T17:22:12Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0699488d-2a19-6735-809e-f229849fe00b","last_modified":1483378113482},{"guid":"pink@rosaplugin.info","prefs":[],"schema":1482945809444,"blockID":"i84","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=743484","who":"All Firefox users who have this add-on installed","why":"Add-on acts like malware and performs user actions on Facebook without their consent.","name":"Facebook Rosa (malware)","created":"2012-04-09T10:13:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"66ad8de9-311d-076c-7356-87fde6d30d8f","last_modified":1482945810971},{"guid":"videoplugin@player.com","prefs":[],"schema":1482945809444,"blockID":"i90","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=752483","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as a Flash Player update. It can hijack Google searches and Facebook accounts.","name":"FlashPlayer 11 (malware)","created":"2012-05-07T08:58:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d25943f1-39ef-b9ec-ab77-baeef3498365","last_modified":1482945810949},{"guid":"youtb3@youtb3.com","prefs":[],"schema":1482945809444,"blockID":"i60","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=723753","who":"All Firefox users who have this extension installed.","why":"Malicious extension installed under false pretenses.","name":"Video extension (malware)","created":"2012-02-02T16:38:41Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cae3093f-a7b3-5352-a264-01dbfbf347ce","last_modified":1482945810927},{"guid":"{8f42fb8b-b6f6-45de-81c0-d6d39f54f971}","prefs":[],"schema":1482945809444,"blockID":"i82","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=743012","who":"All Firefox users who have installed this add-on.","why":"This add-on maliciously manipulates Facebook and is installed under false pretenses.","name":"Face Plus (malware)","created":"2012-04-09T10:04:28Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"09319ab3-55e7-fec1-44e0-84067d014b9b","last_modified":1482945810904},{"guid":"cloudmask@cloudmask.com","prefs":[],"schema":1482945809444,"blockID":"i1233","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1280431","who":"Any user who has version 2.0.788, or earlier, installed.","why":"These versions of the add-on (before 2.0.788) execute code from a website in a privileged local browser context, potentially allowing dangerous, unreviewed, actions to affect the user's computer. This is fixed in later versions.","name":"CloudMask","created":"2016-06-17T14:31:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0.788","minVersion":"0","targetApplication":[]}],"id":"2a8b40c7-a1d2-29f4-b7d7-ccfc5066bae1","last_modified":1482945810881},{"guid":"{95ff02bc-ffc6-45f0-a5c8-619b8226a9de}","prefs":[],"schema":1482945809444,"blockID":"i105","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=763065","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that inserts scripts into Facebook and hijacks the user's session.\r\n","name":"Eklenti D\u00fcnyas\u0131 (malware)","created":"2012-06-08T14:34:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"afbbc08d-2414-f51e-fdb8-74c0a2d90323","last_modified":1482945810858},{"guid":"{fa277cfc-1d75-4949-a1f9-4ac8e41b2dfd}","prefs":[],"schema":1482945809444,"blockID":"i77","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=738419","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware that is installed under false pretenses as an Adobe plugin.","name":"Adobe Flash (malware)","created":"2012-03-22T14:39:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"81753a93-382d-5f9d-a4ca-8a21b679ebb1","last_modified":1482945810835},{"guid":"youtube@youtube3.com","prefs":[],"schema":1482945809444,"blockID":"i57","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=722823","who":"All Firefox users that have installed this add-on.","why":"Malware installed on false pretenses.","name":"Divx 2012 Plugin (malware)","created":"2012-01-31T13:54:20Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4a93a0eb-a513-7272-6199-bc4d6228ff50","last_modified":1482945810811},{"guid":"{392e123b-b691-4a5e-b52f-c4c1027e749c}","prefs":[],"schema":1482945809444,"blockID":"i109","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=769781","who":"All Firefox users who have this add-on installed.","why":"This add-on pretends to be developed by Facebook and injects scripts that manipulate users' Facebook accounts.","name":"Zaman Tuneline Hay\u0131r! (malware)","created":"2012-06-29T13:20:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b9a805aa-cae7-58d6-5a53-2af4442e4cf6","last_modified":1482945810788},{"guid":"msntoolbar@msn.com","prefs":[],"schema":1482945809444,"blockID":"i18","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=599971","who":"Users of Bing Bar 6.0 and older for all versions of Firefox.","why":"This add-on has security issues and was blocked at Microsoft's request. For more information, please see this article.","name":"Bing Bar","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"6.*","minVersion":" 0","targetApplication":[]}],"id":"9b2f2039-b997-8993-d6dc-d881bc1ca7a1","last_modified":1482945810764},{"guid":"yasd@youasdr3.com","prefs":[],"schema":1482945809444,"blockID":"i104","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=763065","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that inserts scripts into Facebook and hijacks the user's session.\r\n","name":"Play Now (malware)","created":"2012-06-08T14:33:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8a352dff-d09d-1e78-7feb-45dec7ace5a5","last_modified":1482945810740},{"guid":"fdm_ffext@freedownloadmanager.org","prefs":[],"schema":1482945809444,"blockID":"i2","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=408445","who":"Users of Firefox 3 and later with versions 1.0 through 1.3.1 of Free Download Manager","why":"This add-on causes a high volume of crashes.","name":"Free Download Manager","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.3.1","minVersion":"1.0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.0a1"}]}],"id":"fc46f8e7-0489-b90f-a373-d93109479ca5","last_modified":1482945810393},{"guid":"flash@adobe.com","prefs":[],"schema":1482945809444,"blockID":"i56","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=722526","who":"All Firefox users who have this add-on installed.","why":"This add-on poses as an Adobe Flash update and injects malicious scripts into web pages. It hides itself in the Add-ons Manager.","name":"Adobe Flash Update (malware)","created":"2012-01-30T15:41:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"696db959-fb0b-8aa4-928e-65f157cdd77a","last_modified":1482945810371},{"guid":"youtubeer@youtuber.com","prefs":[],"schema":1482945809444,"blockID":"i66","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=726787","who":"All Firefox users who have installed this add-on.","why":"Add-on behaves maliciously, and is installed under false pretenses.","name":"Plug VDS (malware)","created":"2012-02-13T15:44:20Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0878ce4e-b476-ffa3-0e06-21a65b7917a1","last_modified":1482945810348},{"guid":"{B13721C7-F507-4982-B2E5-502A71474FED}","prefs":[],"schema":1482945809444,"blockID":"i8","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=627278","who":"Users of all versions of the original Skype Toolbar in all versions of Firefox.","why":"This add-on causes a high volume of Firefox crashes and introduces severe performance issues. Please update to the latest version. For more information, please read our announcement.","name":"Original Skype Toolbar","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5a320611-59a3-0eee-bb30-9052be870e00","last_modified":1482945810326},{"guid":"yslow@yahoo-inc.com","prefs":[],"schema":1482945809444,"blockID":"i11","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=542686","who":"Users of YSlow version 2.0.5 for Firefox 3.5.7 and later.","why":"This add-on causes a high volume of Firefox crashes and other stability issues. Users should update to the latest version.","name":"YSlow","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0.5","minVersion":"2.0.5","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.5.7"}]}],"id":"a9b34e8f-45ce-9217-b791-98e094c26352","last_modified":1482945810303},{"guid":"youtube@youtuber.com","prefs":[],"schema":1482945809444,"blockID":"i63","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=724691","who":"All Firefox users who have installed this add-on.","why":"Installs under false pretenses and delivers malware.","name":"Mozilla Essentials (malware)","created":"2012-02-06T15:39:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"18216e6f-9d70-816f-4d4c-63861f43ff3c","last_modified":1482945810281},{"guid":"flash@adobee.com","prefs":[],"schema":1482945809444,"blockID":"i83","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=743497","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware installed under false pretenses.","name":"FlashPlayer 11 (malware)","created":"2012-04-09T10:08:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"09bb4661-331c-f7ba-865b-9e085dc437af","last_modified":1482945810259},{"guid":"youtube@2youtube.com","prefs":[],"schema":1482945809444,"blockID":"i71","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=730399","who":"All Firefox users who have installed this add-on.","why":"Extension is malware, installed under false pretenses.","name":"YouTube extension (malware)","created":"2012-02-27T10:23:23Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5d389c1f-b3a0-b06f-6ffb-d1e8aa055e3c","last_modified":1482945810236},{"guid":"webmaster@buzzzzvideos.info","prefs":[],"schema":1482945809444,"blockID":"i58","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=722844","who":"All Firefox users who have installed this add-on.","why":"Malware add-on that is installed under false pretenses.","name":"Buzz Video (malware)","created":"2012-01-31T14:51:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f7aab105-e2c2-42f5-d9be-280eb9c0c8f7","last_modified":1482945810213},{"guid":"play5@vide04flash.com","prefs":[],"schema":1482945809444,"blockID":"i92","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=755443","who":"All Firefox users who have this add-on installed.","why":"This add-on impersonates a Flash Player update (poorly), and inserts malicious scripts into Facebook.","name":"Lastest Flash PLayer (malware)","created":"2012-05-15T13:27:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7190860e-fc1f-cd9f-5d25-778e1e9043b2","last_modified":1482945810191},{"guid":"support3_en@adobe122.com","prefs":[],"schema":1482945809444,"blockID":"i97","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=759164","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as the Flash Player plugin.","name":"FlashPlayer 11 (malware)","created":"2012-05-28T13:42:54Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"decf93a1-2bb0-148c-a1a6-10b3757b554b","last_modified":1482945810168},{"guid":"a1g0a9g219d@a1.com","prefs":[],"schema":1482945809444,"blockID":"i73","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=736275","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as Flash Player. It steals user cookies and sends them to a remote location.","name":"Flash Player (malware)","created":"2012-03-15T15:03:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6dd66b43-897d-874a-2227-54e240b8520f","last_modified":1482945810146},{"guid":"ghostviewer@youtube2.com","prefs":[],"schema":1482945809444,"blockID":"i59","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=723683","who":"All Firefox users who have installed this add-on.","why":"Malicious add-on that automatically posts to Facebook.","name":"Ghost Viewer (malware)","created":"2012-02-02T16:32:15Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"06dfe833-8c3d-90ee-3aa8-37c3c28f7c56","last_modified":1482945810123},{"guid":"{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}","prefs":[],"schema":1482945809444,"blockID":"i19","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=621660","who":"Users of Stylish version 1.1b1 for Firefox.","why":"Version 1.1b1 of this add-on causes compatibility issues with Firefox. Users should update to the latest version.","name":"Stylish","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.1b1","minVersion":"1.1b1","targetApplication":[]}],"id":"aaea37e1-ff86-4565-8bd5-55a6bf942791","last_modified":1482945810101},{"guid":"kdrgun@gmail.com","prefs":[],"schema":1482945809444,"blockID":"i103","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=763065","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that inserts scripts into Facebook and hijacks the user's session.","name":"Timeline Kapat (malware)","created":"2012-06-08T14:32:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a9a46ab2-2f56-1046-201c-5faa3435e248","last_modified":1482945810078},{"guid":"youtube2@youtube2.com","prefs":[],"schema":1482945809444,"blockID":"i67","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=728476","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware, installed under false pretenses.","name":"Youtube Online (malware)","created":"2012-02-18T09:10:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"14650ece-295b-a667-f9bc-a3d973e2228c","last_modified":1482945810055},{"guid":"masterfiler@gmail.com","prefs":[],"schema":1482945809444,"blockID":"i12","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=542081","who":"All users of this add-on for all Mozilla applications.","why":"This add-on is malware and attempts to install a Trojan on the user's computer.","name":"Master File (malware)","created":"2010-02-05T15:01:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a256d79d-5af8-92e9-a29d-350adf822efe","last_modified":1482945810032},{"guid":"{847b3a00-7ab1-11d4-8f02-006008948af5}","prefs":[],"schema":1482945809444,"blockID":"i9","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=531047","who":"Users of Enigmail versions older than 0.97a for Thunderbird 3 and later.","why":"This add-on causes a high volume of crashes and other stability issues. Users should update Enigmail.","name":"Enigmail","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.97a","minVersion":"0","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"3.0pre"}]}],"id":"115f46b6-059d-202a-4373-2ca79b096347","last_modified":1482945810003},{"guid":"mozilla_cc@internetdownloadmanager.com","prefs":[],"schema":1482945809444,"blockID":"i14","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=578443","who":"Users of Firefox 4 and later with Internet Download Manager version 6.9.8 and older.","why":"This add-on causes a high volume of crashes and has other stability issues.","name":"Internet Download Manager","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"6.9.8","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.7a1pre"}]}],"id":"773ffcfb-75d1-081d-7431-ebe3fa5dbb44","last_modified":1482945809979},{"guid":"admin@youtubeplayer.com","prefs":[],"schema":1482945809444,"blockID":"i51","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=717165","who":"All Firefox users with this extension installed.","why":"This add-on is malware, doing nothing more than inserting advertisements into websites through iframes.","name":"Youtube player (malware)","created":"2012-01-18T14:34:55Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"16b2ce94-88db-0d79-33fc-a93070ceb509","last_modified":1482945809957},{"guid":"personas@christopher.beard","prefs":[],"schema":1482945809444,"blockID":"i15","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=590978","who":"All users of Personas Plus 1.6 in all versions of Firefox.","why":"This version of Personas Plus is incompatible with certain Firefox functionality and other add-ons. Users should upgrade to the latest version.","name":"Personas Plus","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.6","minVersion":"1.6","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"3.6.*","minVersion":"3.6"}]}],"id":"e36479c6-ca00-48d4-4fd9-ec677fd032da","last_modified":1482945809934},{"guid":"youtubeee@youtuber3.com","prefs":[],"schema":1482945809444,"blockID":"i96","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=758503","who":"All Firefox users who have installed this add-on.","why":"This is a malicious add-on that is disguised as a DivX plugin.","name":"Divx 2012 Plugins (malware)","created":"2012-05-25T09:26:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f01be9cb-5cf2-774a-a4d7-e210a24db5b9","last_modified":1482945809912},{"guid":"{3252b9ae-c69a-4eaf-9502-dc9c1f6c009e}","prefs":[],"schema":1482945809444,"blockID":"i17","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=599971","who":"Users of version 2.2 of this add-on in all versions of Firefox.","why":"This add-on has security issues and was blocked at Microsoft's request. For more information, please see this article.","name":"Default Manager (Microsoft)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.2","minVersion":"2.2","targetApplication":[]}],"id":"38be28ac-2e30-37fa-4332-852a55fafb43","last_modified":1482945809886},{"guid":"{68b8676b-99a5-46d1-b390-22411d8bcd61}","prefs":[],"schema":1482945809444,"blockID":"i93","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=755635","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that post content on Facebook accounts and steals user data.","name":"Zaman T\u00fcnelini Kald\u0131r! (malware)","created":"2012-05-16T10:44:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"733aff15-9b1f-ec04-288f-b78a55165a1c","last_modified":1482945809863},{"guid":"applebeegifts@mozilla.doslash.org","prefs":[],"schema":1482945809444,"blockID":"i54","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=721562","who":"All Firefox users that install this add-on.","why":"Add-on is malware installed under false pretenses.","name":"Applebees Gift Card (malware)","created":"2012-01-26T16:17:49Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1372c8ab-5452-745a-461a-aa78e3e12c4b","last_modified":1482945809840},{"guid":"activity@facebook.com","prefs":[],"schema":1482945112982,"blockID":"i65","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=726803","who":"All Firefox users who have installed this add-on.","why":"Add-on behaves maliciously and poses as an official Facebook add-on.","name":"Facebook extension (malware)","created":"2012-02-13T15:41:02Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"79ad1c9b-0828-7823-4574-dd1cdd46c3d6","last_modified":1482945809437},{"guid":"jid0-EcdqvFOgWLKHNJPuqAnawlykCGZ@jetpack","prefs":[],"schema":1482945112982,"blockID":"i62","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=724650","who":"All Firefox users who have installed this add-on.","why":"Add-on is installed under false pretenses and delivers malware.","name":"YouTube extension (malware)","created":"2012-02-06T14:46:33Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5ae1e642-b53c-54c0-19e7-5562cfdac3a3","last_modified":1482945809415},{"guid":"{B7082FAA-CB62-4872-9106-E42DD88EDE45}","prefs":[],"schema":1482945112982,"blockID":"i25","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=637542","who":"Users of McAfee SiteAdvisor below version 3.3.1 for Firefox 4.\r\n\r\nUsers of McAfee SiteAdvisor 3.3.1 and below for Firefox 5 and higher.","why":"This add-on causes a high volume of crashes and is incompatible with certain versions of Firefox.","name":"McAfee SiteAdvisor","created":"2011-03-14T15:53:07Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.3.0.*","minVersion":"0.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.7a1"}]}],"id":"c950501b-1f08-2ab2-d817-7c664c0d16fe","last_modified":1482945809393},{"guid":"{B7082FAA-CB62-4872-9106-E42DD88EDE45}","prefs":[],"schema":1482945112982,"blockID":"i38","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=660111","who":"Users of McAfee SiteAdvisor below version 3.3.1 for Firefox 4.\r\n\r\nUsers of McAfee SiteAdvisor 3.3.1 and below for Firefox 5 and higher.","why":"This add-on causes a high volume of crashes and is incompatible with certain versions of Firefox.","name":"McAfee SiteAdvisor","created":"2011-05-27T13:55:02Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"3.3.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"5.0a1"}]}],"id":"f11de388-4511-8d06-1414-95d3b2b122c5","last_modified":1482945809371},{"guid":"{3f963a5b-e555-4543-90e2-c3908898db71}","prefs":[],"schema":1482945112982,"blockID":"i6","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=527135","who":"Users of AVG SafeSearch version 8.5 and older for all Mozilla applications.","why":"This add-on causes a high volume of crashes and causes other stability issues.","name":"AVG SafeSearch","created":"2009-06-17T13:12:12Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"8.5","minVersion":"0","targetApplication":[]}],"id":"0d6f7d4c-bf5d-538f-1ded-ea4c6b775617","last_modified":1482945809348},{"guid":"langpack-vi-VN@firefox.mozilla.org","prefs":[],"schema":1482945112982,"blockID":"i3","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=432406","who":"Users of Vietnamese Language Pack version 2.0 for all Mozilla applications.","why":"Corrupted files. For more information, please see this blog post.","name":"Vietnamese Language Pack","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0","minVersion":"2.0","targetApplication":[]}],"id":"51d4b581-d21c-20a1-6147-b17c3adc7867","last_modified":1482945809326},{"guid":"youtube@youtube7.com","prefs":[],"schema":1482945112982,"blockID":"i55","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=721646","who":"All Firefox users with this add-on installed.","why":"This is malware posing as video software.","name":"Plugin Video (malware)","created":"2012-01-27T09:39:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"08ceedf5-c7c1-f54f-db0c-02f01f0e319a","last_modified":1482945809304},{"guid":"crossriderapp3924@crossrider.com","prefs":[],"schema":1482945112982,"blockID":"i76","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=738282","who":"All Firefox users who have installed this add-on.","why":"This add-on compromises Facebook privacy and security and spams friends lists without user intervention.","name":"Fblixx (malware)","created":"2012-03-22T10:38:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"39d0a019-62fb-837b-1f1f-6831e56442b5","last_modified":1482945809279},{"guid":"{45147e67-4020-47e2-8f7a-55464fb535aa}","prefs":[],"schema":1482945112982,"blockID":"i86","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=748993","who":"All Firefox users who have this add-on installed.","why":"This add-on injects scripts into Facebook and performs malicious activity.","name":"Mukemmel Face+","created":"2012-04-25T16:33:21Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"960443f9-cf48-0b71-1ff2-b8c34a3411ea","last_modified":1482945809255},{"guid":"{4B3803EA-5230-4DC3-A7FC-33638F3D3542}","prefs":[],"schema":1482945112982,"blockID":"i4","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=441649","who":"Users of Firefox 3 and later with version 1.2 of Crawler Toolbar","why":"This add-on causes a high volume of crashes.","name":"Crawler Toolbar","created":"2008-07-08T10:23:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.2","minVersion":"1.2","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.0a1"}]}],"id":"a9818d53-3a6a-8673-04dd-2a16f5644215","last_modified":1482945809232},{"guid":"flashupdate@adobe.com","prefs":[],"schema":1482945112982,"blockID":"i68","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=722526","who":"All Firefox users who have this add-on installed.","why":"Add-on is malware, installed under false pretenses.","name":"Flash Update (malware)","created":"2012-02-21T13:55:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1ba5b46e-790d-5af2-9580-a5f1e6e65522","last_modified":1482945809208},{"guid":"plugin@youtubeplayer.com","prefs":[],"schema":1482945112982,"blockID":"i127","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=783356","who":"All users who have this add-on installed.","why":"This add-on tries to pass as a YouTube player and runs malicious scripts on webpages.","name":"Youtube Facebook Player (malware)","created":"2012-08-16T13:03:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"17a8bece-e2df-a55d-8a72-95faff028b83","last_modified":1482945809185},{"guid":"GifBlock@facebook.com","prefs":[],"schema":1482945112982,"blockID":"i79","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=739482","who":"All Firefox users who have installed this extension.","why":"This extension is malicious and is installed under false pretenses.","name":"Facebook Essentials (malware)","created":"2012-03-27T10:53:33Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"728451e8-1273-d887-37e9-5712b1cc3bff","last_modified":1482945809162},{"guid":"ff-ext@youtube","prefs":[],"schema":1482945112982,"blockID":"i52","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=719296","who":"All Firefox users that have this add-on installed.","why":"This add-on poses as a YouTube player while posting spam into Facebook account.","name":"Youtube player (malware)","created":"2012-01-19T08:26:35Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cd2dd72a-dd52-6752-a0cd-a4b312fd0b65","last_modified":1482945809138},{"guid":"ShopperReports@ShopperReports.com","prefs":[],"schema":1482945112982,"blockID":"i22","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=630191","who":"Users of Shopper Reports version 3.1.22.0 in Firefox 4 and later.","why":"This add-on causes a high volume of Firefox crashes.","name":"Shopper Reports","created":"2011-02-09T17:03:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.1.22.0","minVersion":"3.1.22.0","targetApplication":[]}],"id":"f26b049c-d856-750f-f050-996e6bec7cbb","last_modified":1482945809115},{"guid":"{27182e60-b5f3-411c-b545-b44205977502}","prefs":[],"schema":1482945112982,"blockID":"i16","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=599971","who":"Users of version 1.0 of this add-on in all versions of Firefox.","why":"This add-on has security issues and was blocked at Microsoft's request. For more information, please see this article.","name":"Search Helper Extension (Microsoft)","created":"2011-03-31T16:28:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0","minVersion":"1.0","targetApplication":[]}],"id":"2655f230-11f3-fe4c-7c3d-757d37d5f9a5","last_modified":1482945809092},{"guid":"{841468a1-d7f4-4bd3-84e6-bb0f13a06c64}","prefs":[],"schema":1482945112982,"blockID":"i46","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=712369","who":"Users of all versions of Nectar Search Toolbar in Firefox 9.","why":"This add-on causes crashes and other stability issues in Firefox.","name":"Nectar Search Toolbar","created":"2011-12-20T11:38:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"9.0","minVersion":"9.0a1"}]}],"id":"b660dabd-0dc0-a55c-4b86-416080b345d9","last_modified":1482945809069},{"guid":"support@daemon-tools.cc","prefs":[],"schema":1482945112982,"blockID":"i5","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=459850","who":"Users of Daemon Tools Toolbar version 1.0.0.5 and older for all Mozilla applications.","why":"This add-on causes a high volume of crashes.","name":"Daemon Tools Toolbar","created":"2009-02-13T18:39:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.0.5","minVersion":"0","targetApplication":[]}],"id":"8cabafd3-576a-b487-31c8-ab59e0349a0e","last_modified":1482945809045},{"guid":"{a3a5c777-f583-4fef-9380-ab4add1bc2a8}","prefs":[],"schema":1482945112982,"blockID":"i53","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=719605","who":"All users of Firefox with this add-on installed.","why":"This add-on is being offered as an online movie viewer, when it reality it only inserts scripts and ads into known sites.","name":"Peliculas-FLV (malware)","created":"2012-01-19T15:58:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"2.0.3","minVersion":"2.0.3","targetApplication":[]}],"id":"07bc0962-60da-087b-c3ab-f2a6ab84d81c","last_modified":1482945809021},{"guid":"royal@facebook.com","prefs":[],"schema":1482945112982,"blockID":"i64","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=725777","who":"All Firefox users who have installed this add-on.","why":"Malicious add-on posing as a Facebook tool.","name":"Facebook ! (malware)","created":"2012-02-09T13:24:23Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dd1d2623-0d15-c93e-8fbd-ba07b0299a44","last_modified":1482945808997},{"guid":"{28bfb930-7620-11e1-b0c4-0800200c9a66}","prefs":[],"schema":1482945112982,"blockID":"i108","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=766852","who":"All Firefox user who have this add-on installed.","why":"This is malware disguised as an Adobe product. It spams Facebook pages.","name":"Aplicativo (malware)","created":"2012-06-21T09:24:11Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"908dc4fb-ebc9-cea1-438f-55e4507ba834","last_modified":1482945808973},{"guid":"socialnetworktools@mozilla.doslash.org","prefs":[],"schema":1482945112982,"blockID":"i78","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=739441","who":"All Firefox users who have installed this add-on.","why":"This add-on hijacks the Facebook UI and adds scripts to track users.","name":"Social Network Tools (malware)","created":"2012-03-26T16:46:55Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1064cd25-3b87-64bb-b0a6-2518ad281574","last_modified":1482945808950},{"guid":"youtubeeing@youtuberie.com","prefs":[],"schema":1482945112982,"blockID":"i98","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=759663","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as a Youtube add-on.","name":"Youtube Video Player (malware)","created":"2012-05-30T09:30:14Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3484f860-56e1-28e8-5a70-cdcd5ab9d6ee","last_modified":1482945808927},{"guid":"{3a12052a-66ef-49db-8c39-e5b0bd5c83fa}","prefs":[],"schema":1482945112982,"blockID":"i101","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=761874","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware disguised as a Facebook timeline remover.","name":"Timeline Remove (malware)","created":"2012-06-05T18:37:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b01b321b-6628-7166-bd15-52f21a04d8bd","last_modified":1482945808904},{"guid":"pfzPXmnzQRXX6@2iABkVe.com","prefs":[],"schema":1482945112982,"blockID":"i99","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=759950","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware disguised as a Flash Player update.","name":"Flash Player (malware)","created":"2012-05-30T17:10:18Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"29cc4abc-4f52-01f1-eb0b-cad84ba4db13","last_modified":1482945808881},{"guid":"/^(@pluginscribens_firefox|extension@vidscrab.com|firefox@jjj.ee|firefox@shop-reward.de|FxExtPasteNGoHtk@github.lostdj|himanshudotrai@gmail.com|jid0-bigoD0uivzAMmt07zrf3OHqa418@jetpack|jid0-iXbAR01tjT2BsbApyS6XWnjDhy8@jetpack)$/","prefs":[],"schema":1482341309012,"blockID":"i1423","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1325060","who":"All users who have any of the affected versions installed.","why":"A security vulnerability was discovered in old versions of the Add-ons SDK, which is exposed by certain old versions of add-ons. In the case of some add-ons that haven't been updated for a long time, all versions are being blocked.","name":"Various vulnerable add-on versions","created":"2016-12-21T17:21:10Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a58a2836-e4e7-74b5-c109-fa3d41e9ed56","last_modified":1482343886390},{"guid":"/^(pdftoword@addingapps.com|jid0-EYTXLS0GyfQME5irGbnD4HksnbQ@jetpack|jid1-ZjJ7t75BAcbGCX@jetpack)$/","prefs":[],"schema":1482341309012,"blockID":"i1425","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1325060","who":"All users who have any of the affected versions installed.","why":"A security vulnerability was discovered in old versions of the Add-ons SDK, which is exposed by certain old versions of add-ons. In the case of some add-ons that haven't been updated for a long time, all versions are being blocked.","name":"Various vulnerable add-on versions","created":"2016-12-21T17:23:14Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"150e639f-c832-63d0-a775-59313b2e1bf9","last_modified":1482343886365},{"guid":"{cc8f597b-0765-404e-a575-82aefbd81daf}","prefs":[],"schema":1480349193877,"blockID":"i380","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=866332","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts and performs unwanted actions on behalf of the user.","name":"Update My Browser (malware)","created":"2013-06-19T13:03:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4950d7aa-c602-15f5-a7a2-d844182d5cbd","last_modified":1480349217152},{"guid":"extension@FastFreeConverter.com","prefs":[],"schema":1480349193877,"blockID":"i470","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"649dd933-debf-69b7-020f-496c2c9f99c8","last_modified":1480349217071},{"guid":"59D317DB041748fdB89B47E6F96058F3@jetpack","prefs":[],"schema":1480349193877,"blockID":"i694","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1053540","who":"All Firefox users who have this add-ons installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This is a suspicious add-on that appears to be installed without user consent, in violation of the Add-on Guidelines.","name":"JsInjectExtension","created":"2014-08-21T13:46:30Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"75692bd4-18e5-a9be-7ec3-9327e159ef68","last_modified":1480349217005},{"guid":"/^({bfec236d-e122-4102-864f-f5f19d897f5e}|{3f842035-47f4-4f10-846b-6199b07f09b8}|{92ed4bbd-83f2-4c70-bb4e-f8d3716143fe})$/","prefs":[],"schema":1480349193877,"blockID":"i527","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949566","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted and uses multiple IDs.","name":"KeyBar add-on","created":"2013-12-20T14:13:38Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6d68dd97-7965-0a84-8ca7-435aac3c8040","last_modified":1480349216927},{"guid":"support@vide1flash2.com","prefs":[],"schema":1480349193877,"blockID":"i246","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=830159","who":"All Firefox users who have this add-on installed.","why":"This is an add-on that poses as the Adobe Flash Player and runs malicious code in the user's system.","name":"Lastest Adobe Flash Player (malware)","created":"2013-01-14T09:17:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2004fba1-74bf-a072-2a59-6e0ba827b541","last_modified":1480349216871},{"guid":"extension21804@extension21804.com","prefs":[],"schema":1480349193877,"blockID":"i312","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835665","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"Coupon Companion","created":"2013-03-06T14:14:05Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b2cf1256-dadd-6501-1f4e-25902d408692","last_modified":1480349216827},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i602","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:18:05Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.8.*","minVersion":"3.15.8","targetApplication":[]}],"id":"b2b4236d-5d4d-82b2-99cd-00ff688badf1","last_modified":1480349216765},{"guid":"nosquint@urandom.ca","prefs":[],"schema":1480349193877,"blockID":"i1232","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1279561","who":"Users on Firefox 47, and higher, using version 2.1.9.1, and earlier, of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"The add-on is breaking the in-built zoom functionality on Firefox 47.","name":"NoSquint","created":"2016-06-10T17:12:55Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.1.9.1-signed.1-signed","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"47"}]}],"id":"30e0a35c-056a-054b-04f3-ade68b83985a","last_modified":1480349216711},{"guid":"{FE1DEEEA-DB6D-44b8-83F0-34FC0F9D1052}","prefs":[],"schema":1480349193877,"blockID":"i364","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=867670","who":"All Firefox users who have this add-on installed. Users who want to enable the add-on again can do so in the Add-ons Manager.","why":"This add-on is side-installed with other software, and blocks setting reversions attempted by users who want to recover their settings after they are hijacked by other add-ons.","name":"IB Updater","created":"2013-06-10T16:14:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a59b967c-66ca-7ad9-2dc6-d0ad37ded5fd","last_modified":1480349216652},{"guid":"vpyekkifgv@vpyekkifgv.org","prefs":[],"schema":1480349193877,"blockID":"i352","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=872211","who":"All Firefox users who have this add-on installed.","why":"Uses a deceptive name and injects ads into pages without user consent.","name":"SQLlite Addon (malware)","created":"2013-05-14T13:42:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8fd981ab-7ee0-e367-d804-0efe29d63178","last_modified":1480349216614},{"guid":"/^firefox@(albrechto|swiftbrowse|springsmart|storimbo|squirrelweb|betterbrowse|lizardlink|rolimno|browsebeyond|clingclang|weblayers|kasimos|higher-aurum|xaven|bomlabio)\\.(com?|net|org|info|biz)$/","prefs":[],"schema":1480349193877,"blockID":"i549","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=937405","who":"All Firefox users who have one or more of these add-ons installed. If you wish to continue using any of these add-ons, they can be enabled in the Add-ons Manager.","why":"A large amount of add-ons developed by Yontoo are known to be silently installed and otherwise violate the Add-on Guidelines.","name":"Yontoo add-ons","created":"2014-01-30T15:08:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3a124164-b177-805b-06f7-70a358b37e08","last_modified":1480349216570},{"guid":"thefoxonlybetter@quicksaver","prefs":[],"schema":1480349193877,"blockID":"i702","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1053469","who":"All Firefox users who have any of these versions of the add-on installed.","why":"Certain versions of The Fox, Only Better weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"The Fox, Only Better (malicious versions)","created":"2014-08-27T10:05:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"1.10","targetApplication":[]}],"id":"60e54f6a-1b10-f889-837f-60a76a98fccc","last_modified":1480349216512},{"guid":"/@(ft|putlocker|clickmovie|m2k|sharerepo|smarter-?)downloader\\.com$/","prefs":[],"schema":1480349193877,"blockID":"i396","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881454","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our Add-on Guidelines.","name":"PutLockerDownloader and related","created":"2013-06-25T12:48:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e98ba6e3-f2dd-fdee-b106-3e0d2a03cda4","last_modified":1480349216487},{"guid":"my7thfakeid@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i1262","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1295616","who":"Anyone who has this add-on installed.","why":"This add-on is a keylogger that sends the data to a remote server, and goes under the name Real_player.addon.","name":"Remote Keylogger test 0 addon","created":"2016-08-17T10:54:59Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"81b380c0-8092-ea5e-11cd-54c7f563ff5a","last_modified":1480349216460},{"guid":"{f0e59437-6148-4a98-b0a6-60d557ef57f4}","prefs":[],"schema":1480349193877,"blockID":"i304","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=845975","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our installation guidelines and is dropped silently into user's profiles.","name":"WhiteSmoke B","created":"2013-02-27T13:10:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0469e643-1a90-f9be-4aad-b347469adcbe","last_modified":1480349216402},{"os":"Darwin,Linux","guid":"firebug@software.joehewitt.com","prefs":[],"schema":1480349193877,"blockID":"i75","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=718831","who":"All Firefox 9 users on Mac OS X or Linux who have Firebug 1.9.0 installed.","why":"Firebug 1.9.0 creates stability problems on Firefox 9, on Mac OS X and Linux. Upgrading to Firefox 10 or later, or upgrading to Firebug 1.9.1 or later fixes this problem.","name":"Firebug","created":"2012-03-21T16:00:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.9.0","minVersion":"1.9.0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"9.*","minVersion":"9.0a1"}]}],"id":"a1f9f055-ef34-1412-c39f-35605a70d031","last_modified":1480349216375},{"guid":"xz123@ya456.com","prefs":[],"schema":1480349193877,"blockID":"i486","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=939254","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware and is installed silently in violation of the Add-on Guidelines.","name":"BetterSurf (malware)","created":"2013-11-15T13:34:53Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b9825a25-a96c-407e-e656-46a7948e5745","last_modified":1480349215808},{"guid":"{C7AE725D-FA5C-4027-BB4C-787EF9F8248A}","prefs":[],"schema":1480349193877,"blockID":"i424","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=860641","who":"Users of Firefox 23 or later who have RelevantKnowledge 1.0.0.2 or lower.","why":"Old versions of this add-on are causing startup crashes in Firefox 23, currently on the Beta channel. RelevantKnowledge users on Firefox 23 and above should update to version 1.0.0.3 of the add-on.","name":"RelevantKnowledge 1.0.0.2 and lower","created":"2013-07-01T10:45:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.0.2","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"23.0a1"}]}],"id":"c888d167-7970-4b3f-240f-2d8e6f14ded4","last_modified":1480349215779},{"guid":"{5C655500-E712-41e7-9349-CE462F844B19}","prefs":[],"schema":1480349193877,"blockID":"i966","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1175425","who":"All users who have this add-on installed.","why":"This add-on is vulnerable to a cross-site scripting attack, putting users at risk when using it in arbitrary websites.","name":"Quick Translator","created":"2015-07-17T13:42:28Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.1-signed","minVersion":"0","targetApplication":[]}],"id":"f34b00a6-c783-7851-a441-0d80fb1d1031","last_modified":1480349215743},{"guid":"superlrcs@svenyor.net","prefs":[],"schema":1480349193877,"blockID":"i545","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949596","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enable it in the Add-ons Manager.","why":"This add-on is in violation of the Add-on Guidelines, using multiple add-on IDs and potentially doing other unwanted activities.","name":"SuperLyrics","created":"2014-01-30T11:52:42Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"002cd4fa-4c2b-e28b-9220-4a520f4d9ec6","last_modified":1480349215672},{"guid":"mbrsepone@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i479","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=937331","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Mozilla Lightweight Pack (malware)","created":"2013-11-11T15:42:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0549645e-5f50-5089-1f24-6e7d3bfab8e0","last_modified":1480349215645},{"guid":"/^brasilescape.*\\@facebook\\.com$/","prefs":[],"schema":1480349193877,"blockID":"i453","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=918566","who":"All Firefox users who have these add-ons installed.","why":"This is a group of malicious add-ons that use deceitful names like \"Facebook Video Pack\" or \"Mozilla Service Pack\" and hijack Facebook accounts.","name":"Brasil Escape (malware)","created":"2013-09-20T09:54:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8e6b1176-1794-2117-414e-f0821443f27b","last_modified":1480349215591},{"guid":"foxyproxy-basic@eric.h.jung","prefs":[],"schema":1480349193877,"blockID":"i952","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1183890","who":"All users who have this add-on installed on Thunderbird 38 and above.","why":"This add-on is causing consistent startup crashes on Thunderbird 38 and above.","name":"FoxyProxy Basic for Thunderbird","created":"2015-07-15T09:35:50Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.5.5","minVersion":"0","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"38.0a2"},{"guid":"{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}","maxVersion":"*","minVersion":"2.35"}]}],"id":"81658491-feda-2ed3-3c6c-8e60c2b73aee","last_modified":1480349215536},{"guid":"mbroctone@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i476","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=936590","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks the users' Facebook account.","name":"Mozilla Storage Service (malware)","created":"2013-11-08T15:32:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"92198396-8756-8d09-7f18-a68d29894f71","last_modified":1480349215504},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i616","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:24:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.28.*","minVersion":"3.15.28","targetApplication":[]}],"id":"f11b485f-320e-233c-958b-a63377024fad","last_modified":1480349215479},{"guid":"/^({e9df9360-97f8-4690-afe6-996c80790da4}|{687578b9-7132-4a7a-80e4-30ee31099e03}|{46a3135d-3683-48cf-b94c-82655cbc0e8a}|{49c795c2-604a-4d18-aeb1-b3eba27e5ea2}|{7473b6bd-4691-4744-a82b-7854eb3d70b6}|{96f454ea-9d38-474f-b504-56193e00c1a5})$/","prefs":[],"schema":1480349193877,"blockID":"i494","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=776404","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on changes search settings without user interaction, and fails to reset them after it is removed. It also uses multiple add-on IDs for no apparent reason. This violates our Add-on Guidelines.","name":"uTorrent and related","created":"2013-12-02T14:52:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"485210d0-8e69-3436-536f-5d1deeea4167","last_modified":1480349215454},{"guid":"{EB7508CA-C7B2-46E0-8C04-3E94A035BD49}","prefs":[],"schema":1480349193877,"blockID":"i162","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=799266","who":"All Firefox users who have installed any of these add-ons.","why":"This block covers a number of malicious add-ons that deceive users, using names like \"Mozilla Safe Browsing\" and \"Translate This!\", and claiming they are developed by \"Mozilla Corp.\". They hijack searches and redirects users to pages they didn't intend to go to.\r\n\r\nNote: this block won't be active until bug 799266 is fixed.","name":"Mozilla Safe Browsing and others (Medfos malware)","created":"2012-10-11T12:25:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"07566aa3-4ff9-ac4f-9de9-71c77454b4da","last_modified":1480349215428},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i614","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:23:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.26.*","minVersion":"3.15.26","targetApplication":[]}],"id":"ede541f3-1748-7b33-9bd6-80e2f948e14f","last_modified":1480349215399},{"guid":"/^({976cd962-e0ca-4337-aea7-d93fae63a79c}|{525ba996-1ce4-4677-91c5-9fc4ead2d245}|{91659dab-9117-42d1-a09f-13ec28037717}|{c1211069-1163-4ba8-b8b3-32fc724766be})$/","prefs":[],"schema":1480349193877,"blockID":"i522","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947485","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by being silently installed and using multiple add-on IDs.","name":"appbario7","created":"2013-12-20T13:15:33Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"580aed26-dc3b-eef8-fa66-a0a402447b7b","last_modified":1480349215360},{"guid":"jid0-O6MIff3eO5dIGf5Tcv8RsJDKxrs@jetpack","prefs":[],"schema":1480349193877,"blockID":"i552","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=974041","who":"All Firefox users who have this extension installed.","why":"This extension is malware that attempts to make it impossible for a second extension and itself to be disabled, and also forces the new tab page to have a specific URL.","name":"Extension_Protected (malware)","created":"2014-02-19T15:26:37Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e53063b4-5702-5b66-c860-d368cba4ccb6","last_modified":1480349215327},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i604","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:18:58Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.11.*","minVersion":"3.15.10","targetApplication":[]}],"id":"b910f779-f36e-70e1-b17a-8afb75988c03","last_modified":1480349215302},{"guid":"brasilescapefive@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i483","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=938473","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Facebook Video Pack (malware)","created":"2013-11-14T09:37:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"85ee7840-f262-ad30-eb91-74b3248fd13d","last_modified":1480349215276},{"guid":"brasilescapeeight@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i482","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=938476","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Mozilla Security Pack (malware)","created":"2013-11-14T09:36:55Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"457a5722-be90-5a9f-5fa0-4c753e9f324c","last_modified":1480349215249},{"guid":"happylyrics@hpyproductions.net","prefs":[],"schema":1480349193877,"blockID":"i370","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881815","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into Firefox without the users' consent, violating our Add-on Guidelines.","name":"Happy Lyrics","created":"2013-06-11T15:42:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"730e616d-94a7-df0c-d31a-98b7875d60c2","last_modified":1480349215225},{"guid":"search-snacks@search-snacks.com","prefs":[],"schema":1480349193877,"blockID":"i872","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1082733","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our Add-on Guidelines.","name":"Search Snacks","created":"2015-03-04T14:37:33Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7567b06f-98fb-9400-8007-5d0357c345d9","last_modified":1480349215198},{"os":"WINNT","guid":"{ABDE892B-13A8-4d1b-88E6-365A6E755758}","prefs":[],"schema":1480349193877,"blockID":"i107","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=764210","who":"All Firefox users on Windows who have the RealPlayer Browser Record extension installed.","why":"The RealPlayer Browser Record extension is causing significant problems on Flash video sites like YouTube. This block automatically disables the add-on, but users can re-enable it from the Add-ons Manager if necessary.\r\n\r\nThis block shouldn't disable any other RealPlayer plugins, so watching RealPlayer content on the web should be unaffected.\r\n\r\nIf you still have problems playing videos on YouTube or elsewhere, please visit our support site for help.","name":"RealPlayer Browser Record Plugin","created":"2012-06-14T13:54:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"15.0.5","minVersion":"0","targetApplication":[]}],"id":"e3b89e55-b35f-8694-6f0e-f856e57a191d","last_modified":1480349215173},{"guid":"/(\\{7aeae561-714b-45f6-ace3-4a8aed6e227b\\})|(\\{01e86e69-a2f8-48a0-b068-83869bdba3d0\\})|(\\{77f5fe49-12e3-4cf5-abb4-d993a0164d9e\\})/","prefs":[],"schema":1480349193877,"blockID":"i436","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=891606","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow the Add-on Guidelines, changing Firefox default settings and not reverting them on uninstall. If you want to continue using this add-on, it can be enabled in the Add-ons Manager.","name":"Visual Bee","created":"2013-08-09T15:04:44Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ad6dc811-ab95-46fa-4bff-42186c149980","last_modified":1480349215147},{"guid":"amo-validator-bypass@example.com","prefs":[],"schema":1480349193877,"blockID":"i1058","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1227605","who":"All users who install this add-on.","why":"This add-on is a proof of concept of a malicious add-on that bypasses the code validator.","name":" AMO Validator Bypass","created":"2015-11-24T09:03:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"86e38e3e-a729-b5a2-20a8-4738b376eea6","last_modified":1480349214743},{"guid":"6lIy@T.edu","prefs":[],"schema":1480349193877,"blockID":"i852","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128269","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the Add-on Guidelines.","name":"unIsaless","created":"2015-02-09T15:30:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"39798bc2-9c75-f172-148b-13f3ca1dde9b","last_modified":1480349214613},{"guid":"{394DCBA4-1F92-4f8e-8EC9-8D2CB90CB69B}","prefs":[],"schema":1480349193877,"blockID":"i100","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=761339","who":"All Firefox users who have Lightshot 2.5.0 installed.","why":"The Lightshot add-on, version 2.5.0, is causing widespread and frequent crashes in Firefox. Lightshot users are strongly recommended to update to version 2.6.0 as soon as possible.","name":"Lightshot","created":"2012-06-05T09:24:51Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.5.0","minVersion":"2.5.0","targetApplication":[]}],"id":"57829ea2-5a95-1b6e-953c-7c4a7b3b21ac","last_modified":1480349214568},{"guid":"{a7f2cb14-0472-42a1-915a-8adca2280a2c}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i686","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033809","who":"All users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-on Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"HomeTab","created":"2014-08-06T16:35:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"33a8f403-b2c8-cadf-e1ba-40b39edeaf18","last_modified":1480349214537},{"guid":"{CA8C84C6-3918-41b1-BE77-049B2BDD887C}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i862","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131230","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our Add-on Guidelines.","name":"Ebay Shopping Assistant by Spigot","created":"2015-02-26T12:51:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9a9d6da2-90a1-5b71-8b24-96492d57dfd1","last_modified":1480349214479},{"guid":"update@firefox.com","prefs":[],"schema":1480349193877,"blockID":"i374","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=781088","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks Facebook accounts.","name":"Premium Update (malware)","created":"2013-06-18T13:58:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bb388413-60ea-c9d6-9a3b-c90df950c319","last_modified":1480349214427},{"guid":"sqlmoz@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i350","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=871610","who":"All Firefox users who have this extension installed.","why":"This extension is malware posing as Mozilla software. It hijacks Facebook accounts and spams other Facebook users.","name":"Mozilla Service Pack (malware)","created":"2013-05-13T09:43:07Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"715082e8-7a30-b27b-51aa-186c38e078f6","last_modified":1480349214360},{"guid":"iobitapps@mybrowserbar.com","prefs":[],"schema":1480349193877,"blockID":"i562","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=948695","who":"All Firefox users who have this add-on installed. If you wish to continue using it, it can be enabled in the Add-ons Manager.","why":"This add-on is installed silently and changes users settings without reverting them, in violation of the Add-on Guidelines.","name":"IObit Apps Toolbar","created":"2014-02-27T10:00:54Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"be9a54f6-20c1-7dee-3aea-300b336b2ae5","last_modified":1480349214299},{"guid":"{9e09ac65-43c0-4b9d-970f-11e2e9616c55}","prefs":[],"schema":1480349193877,"blockID":"i376","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=857847","who":"All Firefox users who have installed this add-on.","why":"This add-on is malware that hijacks Facebook accounts and posts content on it.","name":"The Social Networks (malware)","created":"2013-06-18T14:16:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"753638b4-65ca-6d71-f1f5-ce32ba2edf3b","last_modified":1480349214246},{"guid":"mozillahmpg@mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i140","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=791867","who":"All Firefox users who have installed this add-on.","why":"This is a malicious add-on that tries to monetize on its users by embedding unauthorized affiliate codes on shopping websites, and sometimes redirecting users to alternate sites that could be malicious in nature.","name":"Google YouTube HD Player (malware)","created":"2012-09-17T16:04:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"98150e2e-cb45-1fee-8458-28d3602ec2ec","last_modified":1480349214216},{"guid":"astrovia@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i489","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=942699","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Facebook Security Service (malware)","created":"2013-11-25T12:40:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6f365ff4-e48f-8a06-d19d-55e19fba81f4","last_modified":1480349214157},{"guid":"{bbea93c6-64a3-4a5a-854a-9cc61c8d309e}","prefs":[],"schema":1480349193877,"blockID":"i1126","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251940","who":"All users who have this add-on installed.","why":"This is a malicious add-on that disables various security checks in Firefox.","name":"Tab Extension (malware)","created":"2016-02-29T21:58:10Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5acb9dcc-59d4-46d1-2a11-1194c4948239","last_modified":1480349214066},{"guid":"ffxtlbr@iminent.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i628","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=866943","who":"All Firefox users who have any of these add-ons installed. Users who wish to continue using them can enable them in the Add-ons Manager.","why":"These add-ons have been silently installed repeatedly, and change settings without user consent, in violation of the Add-on Guidelines.","name":"Iminent Minibar","created":"2014-06-26T15:47:15Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4387ad94-8500-d74d-68e3-20564a9aac9e","last_modified":1480349214036},{"guid":"{28387537-e3f9-4ed7-860c-11e69af4a8a0}","prefs":[],"schema":1480349193877,"blockID":"i40","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=665775","who":"Users of MediaBar versions 4.3.1.00 and below in all versions of Firefox.","why":"This add-on causes a high volume of crashes and is incompatible with certain versions of Firefox.","name":"MediaBar (2)","created":"2011-07-19T10:19:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.3.1.00","minVersion":"0.1","targetApplication":[]}],"id":"ff95664b-93e4-aa73-ac20-5ffb7c87d8b7","last_modified":1480349214002},{"guid":"{41e5ef7a-171d-4ab5-8351-951c65a29908}","prefs":[],"schema":1480349193877,"blockID":"i784","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"HelpSiteExpert","created":"2014-11-14T14:37:56Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0c05a0bb-30b4-979e-33a7-9f3955eba17d","last_modified":1480349213962},{"guid":"/^({2d7886a0-85bb-4bf2-b684-ba92b4b21d23}|{2fab2e94-d6f9-42de-8839-3510cef6424b}|{c02397f7-75b0-446e-a8fa-6ef70cfbf12b}|{8b337819-d1e8-48d3-8178-168ae8c99c36}|firefox@neurowise.info|firefox@allgenius.info)$/","prefs":[],"schema":1480349193877,"blockID":"i762","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1082599","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"These add-ons are silently installed into users' systems, in violation of the Add-on Guidelines.","name":"SaveSense, neurowise, allgenius","created":"2014-10-17T16:58:10Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c5439f55-ace5-ad73-1270-017c0ba7b2ce","last_modified":1480349213913},{"guid":"{462be121-2b54-4218-bf00-b9bf8135b23f}","prefs":[],"schema":1480349193877,"blockID":"i226","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=812303","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently side-installed by other software, and doesn't do much more than changing the users' settings, without reverting them on removal.","name":"WhiteSmoke","created":"2012-11-29T16:27:36Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"994c6084-e864-0e4e-ac91-455083ee46c7","last_modified":1480349213879},{"guid":"firefox@browsefox.com","prefs":[],"schema":1480349193877,"blockID":"i546","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=936244","who":"All Firefox users who have this add-on installed. If you want to continue using it, it can be enabled in the Add-ons Manager.","why":"This add-on is silently installed, in violation of the Add-on Guidelines.","name":"BrowseFox","created":"2014-01-30T12:26:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"407d8c84-8939-cd28-b284-9b680e529bf6","last_modified":1480349213853},{"guid":"{6926c7f7-6006-42d1-b046-eba1b3010315}","prefs":[],"schema":1480349193877,"blockID":"i382","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844956","who":"All Firefox users who have this add-on installed. Those who wish to continue using it can enable it again in the Add-ons Manager.","why":"This add-on is silently installed, bypassing the Firefox opt-in screen and violating our Add-on Guidelines.","name":"appbario7","created":"2013-06-25T12:05:34Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2367bd94-2bdd-c615-de89-023ba071a443","last_modified":1480349213825},{"guid":"faststartff@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i866","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131217","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our Add-on Guidelines.","name":"Fast Start","created":"2015-02-26T13:12:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9e730bca-c7d1-da82-64f6-c74de216cb7d","last_modified":1480349213799},{"guid":"05dd836e-2cbd-4204-9ff3-2f8a8665967d@a8876730-fb0c-4057-a2fc-f9c09d438e81.com","prefs":[],"schema":1480349193877,"blockID":"i468","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935135","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be part of a Trojan software package.","name":"Trojan.DownLoader9.50268 (malware)","created":"2013-11-07T14:43:39Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2fd53d9b-7096-f1fb-fbcb-2b40a6193894","last_modified":1480349213774},{"guid":"jid1-0xtMKhXFEs4jIg@jetpack","prefs":[],"schema":1480349193877,"blockID":"i586","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011286","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware installed without user consent.","name":"ep (malware)","created":"2014-06-03T15:50:19Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"50ca2179-83ab-1817-163d-39ed2a9fbd28","last_modified":1480349213717},{"guid":"/^({16e193c8-1706-40bf-b6f3-91403a9a22be}|{284fed43-2e13-4afe-8aeb-50827d510e20}|{5e3cc5d8-ed11-4bed-bc47-35b4c4bc1033}|{7429e64a-1fd4-4112-a186-2b5630816b91}|{8c9980d7-0f09-4459-9197-99b3e559660c}|{8f1d9545-0bb9-4583-bb3c-5e1ac1e2920c})$/","prefs":[],"schema":1480349193877,"blockID":"i517","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947509","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by silently installing the add-on, and using multiple add-on IDs.","name":"Re-markit","created":"2013-12-20T12:54:33Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e88a28ab-5569-f06d-b0e2-15c51bb2a4b7","last_modified":1480349213344},{"guid":"safebrowse@safebrowse.co","prefs":[],"schema":1480349193877,"blockID":"i782","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1097696","who":"All Firefox users who have this add-on installed.","why":"This add-on loads scripts with malicious code that appears intended to steal usernames, passwords, and other private information.","name":"SafeBrowse","created":"2014-11-12T14:20:44Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"edd81c91-383b-f041-d8f6-d0b9a90230bd","last_modified":1480349213319},{"guid":"{af95cc15-3b9b-45ae-8d9b-98d08eda3111}","prefs":[],"schema":1480349193877,"blockID":"i492","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=945126","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Facebook (malware)","created":"2013-12-02T12:45:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7064e9e2-fba4-7b57-86d7-6f4afbf6f560","last_modified":1480349213294},{"guid":"{84a93d51-b7a9-431e-8ff8-d60e5d7f5df1}","prefs":[],"schema":1480349193877,"blockID":"i744","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080817","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on appears to be silently installed into users' systems, and changes settings without consent, in violation of the Add-on Guidelines.","name":"Spigot Shopping Assistant","created":"2014-10-17T15:47:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dbc7ef8b-2c48-5dae-73a0-f87288c669f0","last_modified":1480349213264},{"guid":"{C3949AC2-4B17-43ee-B4F1-D26B9D42404D}","prefs":[],"schema":1480349193877,"blockID":"i918","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1170633","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-02T09:58:16Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"7f2a68f3-aa8a-ae41-1e48-d1f8f63d53c7","last_modified":1480349213231},{"guid":"831778-poidjao88DASfsAnindsd@jetpack","prefs":[],"schema":1480349193877,"blockID":"i972","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1190962","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Video patch (malware)","created":"2015-08-04T15:18:03Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"39471221-6926-e11b-175a-b28424d49bf6","last_modified":1480349213194},{"guid":"lbmsrvfvxcblvpane@lpaezhjez.org","prefs":[],"schema":1480349193877,"blockID":"i342","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=863385","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines. It also appears to install itself both locally and globally, producing a confusing uninstall experience.","name":"RapidFinda","created":"2013-05-06T16:18:14Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"98fb4536-07a4-d03a-f7c5-945acecc8203","last_modified":1480349213128},{"guid":"{babb9931-ad56-444c-b935-38bffe18ad26}","prefs":[],"schema":1480349193877,"blockID":"i499","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=946086","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Facebook Credits (malware)","created":"2013-12-04T15:22:02Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"be1d19fa-1662-322a-13e6-5fa5474f33a7","last_modified":1480349213100},{"guid":"{18d5a8fe-5428-485b-968f-b97b05a92b54}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i802","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080839","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and is considered malware, in violation of the Add-on Guidelines.","name":"Astromenda Search Addon","created":"2014-12-15T10:52:49Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bc846147-cdc1-141f-5846-b705c48bd6ed","last_modified":1480349213074},{"guid":"{b6ef1336-69bb-45b6-8cba-e578fc0e4433}","prefs":[],"schema":1480349193877,"blockID":"i780","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Power-SW","created":"2014-11-12T14:00:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3b080157-2900-d071-60fe-52b0aa376cf0","last_modified":1480349213024},{"guid":"info@wxdownloadmanager.com","prefs":[],"schema":1480349193877,"blockID":"i196","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806451","who":"All Firefox users who have these add-ons installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Codec (malware)","created":"2012-11-05T09:24:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b62597d0-d2cb-d597-7358-5143a1d13658","last_modified":1480349212999},{"os":"WINNT","guid":"{C3949AC2-4B17-43ee-B4F1-D26B9D42404D}","prefs":[],"schema":1480349193877,"blockID":"i111","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=771802","who":"All Firefox users on Windows who have the RealPlayer Browser Record extension installed.","why":"The RealPlayer Browser Record extension is causing significant problems on Flash video sites like YouTube. This block automatically disables the add-on, but users can re-enable it from the Add-ons Manager if necessary.\r\n\r\nThis block shouldn't disable any other RealPlayer plugins, so watching RealPlayer content on the web should be unaffected.\r\n\r\nIf you still have problems playing videos on YouTube or elsewhere, please visit our support site for help.","name":"RealPlayer Browser Record Plugin","created":"2012-07-10T15:28:16Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"15.0.5","minVersion":"0","targetApplication":[]}],"id":"d3f96257-7635-555f-ef48-34d426322992","last_modified":1480349212971},{"guid":"l@AdLJ7uz.net","prefs":["browser.startup.homepage"],"schema":1480349193877,"blockID":"i728","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes user settings without consent, in violation of the Add-on Guidelines","name":"GGoSavee","created":"2014-10-16T16:34:54Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e6bfa340-7d8a-1627-5cdf-40c0c4982e9d","last_modified":1480349212911},{"guid":"{6b2a75c8-6e2e-4267-b955-43e25b54e575}","prefs":[],"schema":1480349193877,"blockID":"i698","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1052611","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"BrowserShield","created":"2014-08-21T15:46:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"492e4e43-f89f-da58-9c09-d99528ee9ca9","last_modified":1480349212871},{"guid":"/^({65f9f6b7-2dae-46fc-bfaf-f88e4af1beca}|{9ed31f84-c8b3-4926-b950-dff74047ff79}|{0134af61-7a0c-4649-aeca-90d776060cb3}|{02edb56b-9b33-435b-b7df-b2843273a694}|{da51d4f6-3e7e-4ef8-b400-9198e0874606}|{b24577db-155e-4077-bb37-3fdd3c302bb5})$/","prefs":[],"schema":1480349193877,"blockID":"i525","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949566","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted and using multiple IDs.","name":"KeyBar add-on","created":"2013-12-20T14:11:14Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"78562d79-9a64-c259-fb63-ce24e29bb141","last_modified":1480349212839},{"guid":"adsremoval@adsremoval.net","prefs":[],"schema":1480349193877,"blockID":"i560","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=962793","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes various user settings, in violation of the Add-on Guidelines.","name":"Ad Removal","created":"2014-02-27T09:57:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4d150ad4-dc22-9790-07a9-36e0a23f857f","last_modified":1480349212798},{"guid":"firefoxaddon@youtubeenhancer.com","prefs":[],"schema":1480349193877,"blockID":"i445","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=911966","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that imitates a popular video downloader extension, and attempts to hijack Facebook accounts. The add-on available in the add-ons site is safe to use.","name":"YouTube Enhancer Plus (malware)","created":"2013-09-04T16:53:37Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"208.7.0","minVersion":"208.7.0","targetApplication":[]}],"id":"41d75d3f-a57e-d5ad-b95b-22f5fa010b4e","last_modified":1480349212747},{"guid":"suchpony@suchpony.de","prefs":[],"schema":1480349193877,"blockID":"i1264","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have version 1.6.7 or less of this add-on installed.","why":"Old versions of this add-on contained code from YouTube Unblocker, which was originally blocked due to malicious activity. Version 1.6.8 is now okay.","name":"Suchpony (pre 1.6.8)","created":"2016-08-24T10:48:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"1.6.7","minVersion":"0","targetApplication":[]}],"id":"1bbf00f3-53b5-3777-43c7-0a0b11f9c433","last_modified":1480349212719},{"guid":"{336D0C35-8A85-403a-B9D2-65C292C39087}","prefs":[],"schema":1480349193877,"blockID":"i224","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=812292","who":"All Firefox users who have this add-on installed.","why":"This add-on is side-installed with other software, and blocks setting reversions attempted by users who want to recover their settings after they are hijacked by other add-ons.","name":"IB Updater","created":"2012-11-29T16:22:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c87666e6-ec9a-2f1e-ad03-a722d2fa2a25","last_modified":1480349212655},{"guid":"G4Ce4@w.net","prefs":["browser.startup.homepage"],"schema":1480349193877,"blockID":"i718","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems and changes settings without consent, in violation of the Add-on Guidelines.","name":"YoutUbeAdBlaocke","created":"2014-10-02T12:21:22Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3e1e9322-93e9-4ce1-41f5-46ad4ef1471b","last_modified":1480349212277},{"guid":"extension@Fast_Free_Converter.com","prefs":[],"schema":1480349193877,"blockID":"i533","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949597","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by silently installing it.","name":"FastFreeConverter","created":"2013-12-20T15:04:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"726f5645-c0bf-66dc-a97a-d072b46e63e7","last_modified":1480349212247},{"guid":"@stopad","prefs":[],"schema":1480349193877,"blockID":"i1266","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1298780","who":"Users who have version 0.0.4 and earlier of the add-on installed.","why":"Stop Ads sends each visited url to a third party server which is not necessary for the add-on to work or disclosed in a privacy policy or user opt-in. Versions 0.0.4 and earlier are affected.","name":"Stop Ads Addon","created":"2016-08-30T12:24:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.0.4","minVersion":"0","targetApplication":[]}],"id":"3d1893dd-2092-d1f7-03f3-9629b7d7139e","last_modified":1480349212214},{"guid":"703db0db-5fe9-44b6-9f53-c6a91a0ad5bd@7314bc82-969e-4d2a-921b-e5edd0b02cf1.com","prefs":[],"schema":1480349193877,"blockID":"i519","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947509","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by silently installing the add-on, and using multiple add-on IDs.","name":"Re-markit","created":"2013-12-20T12:57:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a27d0f9f-7708-3d5f-82e1-e3f29e6098a0","last_modified":1480349212183},{"guid":"imbaty@taringamp3.com","prefs":[],"schema":1480349193877,"blockID":"i662","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that attempts to hide itself by impersonating the Adobe Flash plugin.","name":"Taringa MP3 / Adobe Flash","created":"2014-07-10T15:39:44Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f43859d4-46b7-c028-4738-d40a73ddad7b","last_modified":1480349212157},{"guid":"{13c9f1f9-2322-4d5c-81df-6d4bf8476ba4}","prefs":[],"schema":1480349193877,"blockID":"i348","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=867359","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines. It also fails to revert settings changes on removal.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"mywebsearch","created":"2013-05-08T15:55:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"372cf3df-0810-85d8-b5d7-faffff309a11","last_modified":1480349212102},{"guid":"{a6e67e6f-8615-4fe0-a599-34a73fc3fba5}","prefs":[],"schema":1480349193877,"blockID":"i346","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=867333","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines. Also, it doesn't reset its settings changes on uninstall.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Startnow","created":"2013-05-06T17:06:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1caf911c-ff2f-b0f6-0d32-29ef74be81bb","last_modified":1480349212077},{"guid":"garg_sms@yahoo.in","prefs":[],"schema":1480349193877,"blockID":"i652","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the Save My YouTube Day! extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"Save My YouTube Day!, version 67.9","created":"2014-07-10T15:17:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"67.9","minVersion":"67.9","targetApplication":[]}],"id":"e50c0189-a7cd-774d-702b-62eade1bf18e","last_modified":1480349212044},{"guid":"9518042e-7ad6-4dac-b377-056e28d00c8f@f1cc0a13-4df1-4d66-938f-088db8838882.com","prefs":[],"schema":1480349193877,"blockID":"i308","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=846455","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed, bypassing our third-party opt-in screen, in violation of our Add-on Guidelines.","name":"Solid Savings","created":"2013-02-28T13:48:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"df25ee07-74d4-ccd9-dbbe-7eb053015144","last_modified":1480349212020},{"guid":"jufa098j-LKooapd9jasJ9jliJsd@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1000","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1201163","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Secure Video (malware)","created":"2015-09-07T14:00:20Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c3a98025-0f4e-3bb4-b475-97329e7b1426","last_modified":1480349211979},{"guid":"{46eddf51-a4f6-4476-8d6c-31c5187b2a2f}","prefs":[],"schema":1480349193877,"blockID":"i750","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963788","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Slick Savings","created":"2014-10-17T16:17:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9b4ef650-e1ad-d55f-c420-4f26dbb4139c","last_modified":1480349211953},{"guid":"{DAC3F861-B30D-40dd-9166-F4E75327FAC7}","prefs":[],"schema":1480349193877,"blockID":"i924","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1173154","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-09T15:28:17Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"be57998b-9e4d-1040-e6bb-ed9de056338d","last_modified":1480349211896},{"guid":"JMLv@njMaHh.org","prefs":[],"schema":1480349193877,"blockID":"i790","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1103516","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"YouttubeAdBlocke","created":"2014-11-24T14:14:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"070d5747-137d-8500-8713-cfc6437558a3","last_modified":1480349211841},{"guid":"istart_ffnt@gmail.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i888","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1152553","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-on Manager.","why":"This add-on appears to be malware, being silently installed and hijacking user settings, in violation of the Add-on Guidelines.","name":"Istart","created":"2015-04-10T16:27:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"32fad759-38d9-dad9-2295-e44cc6887040","last_modified":1480349211785},{"guid":"gystqfr@ylgga.com","prefs":[],"schema":1480349193877,"blockID":"i449","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=912742","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines. It is installed bypassing the Firefox opt-in screen, and manipulates settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Define Ext","created":"2013-09-13T16:19:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8fe8f509-c530-777b-dccf-d10d58ae78cf","last_modified":1480349211748},{"guid":"e9d197d59f2f45f382b1aa5c14d82@8706aaed9b904554b5cb7984e9.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i844","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128324","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and attempts to change user settings like the home page and default search, in violation of the Add-on Guidelines.","name":"Sense","created":"2015-02-06T15:01:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f8f8695c-a356-a1d6-9291-502b377c63c2","last_modified":1480349211713},{"guid":"{184AA5E6-741D-464a-820E-94B3ABC2F3B4}","prefs":[],"schema":1480349193877,"blockID":"i968","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1164243","who":"All users who have this add-on installed.","why":"This is a malicious add-on that poses as a Java extension.","name":"Java String Helper (malware)","created":"2015-08-04T09:41:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fac1d2cb-eed7-fcef-5d5a-43c556371bd7","last_modified":1480349211687},{"guid":"7d51fb17-b199-4d8f-894e-decaff4fc36a@a298838b-7f50-4c7c-9277-df6abbd42a0c.com","prefs":[],"schema":1480349193877,"blockID":"i455","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=919792","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks Facebook accounts and posts spam to the users' friends.","name":"Video Console (malware)","created":"2013-09-25T10:28:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dd4d2e17-4ce6-36b0-3035-93e9cc5846d4","last_modified":1480349211660},{"guid":"prositez@prz.com","prefs":[],"schema":1480349193877,"blockID":"i764","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"ProfSitez","created":"2014-10-29T16:43:15Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"684ad4fd-2cbd-ce2a-34cd-bc66b20ac8af","last_modified":1480349211628},{"guid":"/^toolbar[0-9]*@findwide\\.com$/","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i874","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1082758","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our Add-on Guidelines.\r\n","name":"FindWide Toolbars","created":"2015-03-04T14:54:10Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a317ad9f-af4d-e086-4afd-cd5eead1ed62","last_modified":1480349211601},{"guid":"{25D77636-38B1-1260-887C-2D4AFA92D6A4}","prefs":[],"schema":1480349193877,"blockID":"i536","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=959279","who":"All Firefox users who have this extension installed.","why":"This is a malicious extension that is installed alongside a trojan. It hijacks searches on selected sites.","name":"Microsoft DirectInput Object (malware)","created":"2014-01-13T10:36:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cd174588-940e-f5b3-12ea-896c957bd4b3","last_modified":1480349211555},{"guid":"fdm_ffext@freedownloadmanager.org","prefs":[],"schema":1480349193877,"blockID":"i216","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=789700","who":"All Firefox users who have installed version 1.5.7.5 of the Free Download Manager extension.","why":"Version 1.5.7.5 of the Free Download Manager extension is causing frequent crashes in recent versions of Firefox. Version 1.5.7.6 corrects this problem, but it is currently not available on addons.mozilla.org. We recommend all users to update to the new version once it becomes available.","name":"Free Download Manager","created":"2012-11-27T12:47:51Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.5.7.5","minVersion":"1.5.7.5","targetApplication":[]}],"id":"736417a2-6161-9973-991a-aff566314733","last_modified":1480349211163},{"guid":"{badea1ae-72ed-4f6a-8c37-4db9a4ac7bc9}","prefs":[],"schema":1480349193877,"blockID":"i543","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963809","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enable it in the Add-ons Manager.","why":"This add-on is apparently malware that is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Address Bar Search","created":"2014-01-28T14:28:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8c1dd68e-7df6-0c37-2f41-107745a7be54","last_modified":1480349211119},{"guid":"addon@gemaoff","prefs":[],"schema":1480349193877,"blockID":"i1230","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"These add-ons are copies of YouTube Unblocker, which was originally blocked due to malicious activity.","name":"YouTube Unblocker (addon@gemaoff)","created":"2016-06-08T16:15:11Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6bc49e9f-322f-9952-15a6-0a723a61c2d9","last_modified":1480349211044},{"guid":"{d87d56b2-1379-49f4-b081-af2850c79d8e}","prefs":[],"schema":1480349193877,"blockID":"i726","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080835","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Website Xplorer Lite","created":"2014-10-13T16:01:03Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7b0895b4-dd4f-1c91-f4e3-31afdbdf3178","last_modified":1480349211007},{"guid":"OKitSpace@OKitSpace.es","prefs":[],"schema":1480349193877,"blockID":"i469","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:35:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6a11aa68-0dae-5524-cc96-a5053a31c466","last_modified":1480349210982},{"guid":"{c96d1ae6-c4cf-4984-b110-f5f561b33b5a}","prefs":[],"schema":1480349193877,"blockID":"i808","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Better Web","created":"2014-12-19T09:36:52Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0413d46b-8205-d9e0-65df-4caa3e6355c4","last_modified":1480349210956},{"guid":"lightningnewtab@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i554","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=974041","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, it can be enabled in the Add-ons Manager.","why":"This add-on is silently installed in Firefox and includes a companion extension that also performs malicious actions.","name":"Lightning SpeedDial","created":"2014-02-19T15:28:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"875513e1-e6b1-a383-2ec5-eb4deb87eafc","last_modified":1480349210931},{"guid":"/^ext@bettersurfplus/","prefs":[],"schema":1480349193877,"blockID":"i506","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=939254","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware and is installed silently in violation of the Add-on Guidelines.","name":"BetterSurf (malware)","created":"2013-12-10T15:10:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b4da06d2-a0fd-09b6-aadb-7e3b29c3be3a","last_modified":1480349210905},{"guid":"thefoxonlybetter@quicksaver","prefs":[],"schema":1480349193877,"blockID":"i706","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1053469","who":"All Firefox users who have any of these versions of the add-on installed.","why":"Certain versions of The Fox, Only Better weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"The Fox, Only Better (malicious versions)","created":"2014-08-27T14:50:32Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"1.6.160","minVersion":"1.6.160","targetApplication":[]}],"id":"bb2b2114-f8e7-511d-04dc-abc8366712cc","last_modified":1480349210859},{"guid":"CortonExt@ext.com","prefs":[],"schema":1480349193877,"blockID":"i336","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=864551","who":"All Firefox users who have this add-on installed.","why":"This add-on is reported to be installed without user consent, with a non-descriptive name, and ties a number of browser features to Amazon URLs, probably monetizing on affiliate codes.","name":"CortonExt","created":"2013-04-22T16:10:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a5bdd05d-eb4c-ce34-9909-a677b4322384","last_modified":1480349210805},{"guid":"1chtw@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i430","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=901770","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that uses a deceptive name and hijacks social networks.","name":" Mozilla Service Pack (malware)","created":"2013-08-05T16:42:24Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bf1e31c7-ba50-1075-29ae-47368ac1d6de","last_modified":1480349210773},{"guid":"lrcsTube@hansanddeta.com","prefs":[],"schema":1480349193877,"blockID":"i344","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=866944","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"LyricsTube","created":"2013-05-06T16:44:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"424b9f39-d028-b1fb-d011-d8ffbbd20fe9","last_modified":1480349210718},{"guid":"{341f4dac-1966-47ff-aacf-0ce175f1498a}","prefs":[],"schema":1480349193877,"blockID":"i356","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=868129","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"MyFreeGames","created":"2013-05-23T14:45:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"560e08b1-3471-ad34-8ca9-463f5ca5328c","last_modified":1480349210665},{"guid":"/^({d6e79525-4524-4707-9b97-1d70df8e7e59}|{ddb4644d-1a37-4e6d-8b6e-8e35e2a8ea6c}|{e55007f4-80c5-418e-ac33-10c4d60db01e}|{e77d8ca6-3a60-4ae9-8461-53b22fa3125b}|{e89a62b7-248e-492f-9715-43bf8c507a2f}|{5ce3e0cb-aa83-45cb-a7da-a2684f05b8f3})$/","prefs":[],"schema":1480349193877,"blockID":"i518","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947509","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by silently installing the add-on, and using multiple add-on IDs.","name":"Re-markit","created":"2013-12-20T12:56:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"145b0f22-501e-39eb-371e-ec8342a5add9","last_modified":1480349210606},{"guid":"{72b98dbc-939a-4e0e-b5a9-9fdbf75963ef}","prefs":[],"schema":1480349193877,"blockID":"i772","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"SitezExpert","created":"2014-10-31T16:15:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"386cb2c9-e674-ce2e-345f-d30a785f90c5","last_modified":1480349210536},{"guid":"hha8771ui3-Fo9j9h7aH98jsdfa8sda@jetpack","prefs":[],"schema":1480349193877,"blockID":"i970","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1190963","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Video fix (malware)","created":"2015-08-04T15:15:07Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3ca577d8-3685-4ba9-363b-5b2d8d8dd608","last_modified":1480349210477},{"guid":"{7e8a1050-cf67-4575-92df-dcc60e7d952d}","prefs":[],"schema":1480349193877,"blockID":"i478","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935796","who":"All Firefox users who have this add-on installed.","why":"This add-on violates the Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"SweetPacks","created":"2013-11-08T15:42:28Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1519eb45-fcaa-b531-490d-fe366490ed45","last_modified":1480349210416},{"guid":"/^({66b103a7-d772-4fcd-ace4-16f79a9056e0}|{6926c7f7-6006-42d1-b046-eba1b3010315}|{72cabc40-64b2-46ed-8648-26d831761150}|{73ee2cf2-7b76-4c49-b659-c3d8cf30825d}|{ca6446a5-73d5-4c35-8aa1-c71dc1024a18}|{5373a31d-9410-45e2-b299-4f61428f0be4})$/","prefs":[],"schema":1480349193877,"blockID":"i521","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947485","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by being silently installed and using multiple add-on IDs.","name":"appbario7","created":"2013-12-20T13:14:29Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"983cb7fe-e0b4-6a2e-f174-d2670876b2cd","last_modified":1480349210351},{"guid":"{dd6b651f-dfb9-4142-b0bd-09912ad22674}","prefs":[],"schema":1480349193877,"blockID":"i400","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835678","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our Add-on Guidelines.","name":"Searchqu","created":"2013-06-25T15:16:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"975d2126-f727-f5b9-ca01-b83345b80c56","last_modified":1480349210301},{"guid":"25p@9eAkaLq.net","prefs":["browser.startup.homepage"],"schema":1480349193877,"blockID":"i730","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes user settings without consent, in violation of the Add-on Guidelines\r\n","name":"YYOutoubeAdBlocke","created":"2014-10-16T16:35:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5a0c5818-693f-43ae-f85a-c6928d9c2cc4","last_modified":1480349210275},{"os":"Darwin","guid":"thunder@xunlei.com","prefs":[],"schema":1480349193877,"blockID":"i568","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=988490","who":"All Firefox users who have versions 2.0.6 or lower of the Thunder add-on installed on Mac OS.","why":"Versions 2.0.6 and lower of the Thunder add-on are causing startup crashes on Mac OS.","name":"Thunder, 2.0.6 and lower","created":"2014-03-28T15:48:38Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.0.6","minVersion":"0","targetApplication":[]}],"id":"cee484f6-2d5d-f708-88be-cd12d825a79a","last_modified":1480349210242},{"guid":"tmbepff@trendmicro.com","prefs":[],"schema":1480349193877,"blockID":"i1222","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1275245","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"Add-on is causing a high-frequency crash in Firefox","name":"Trend Micro BEP 9.1.0.1035 and lower","created":"2016-05-24T12:10:34Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"9.1.0.1035","minVersion":"0","targetApplication":[]}],"id":"8045c799-486a-927c-b972-b9da1c2dab2f","last_modified":1480349209818},{"guid":"pricepeep@getpricepeep.com","prefs":[],"schema":1480349193877,"blockID":"i220","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=811433","who":"All Firefox users who have Pricepeed below 2.1.0.20 installed.","why":"Versions older than 2.1.0.20 of the PricePeep add-on were silently side-installed with other software, injecting advertisements in Firefox. Versions 2.1.0.20 and above don't have the install problems are not blocked.","name":"PricePeep","created":"2012-11-29T16:18:26Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.1.0.19.99","minVersion":"0","targetApplication":[]}],"id":"227b9a8d-c18d-239c-135e-d79e614fe392","last_modified":1480349209794},{"guid":"ytd@mybrowserbar.com","prefs":[],"schema":1480349193877,"blockID":"i360","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=845969","who":"All Firefox users who have this add-on installed. Users who want to enable the add-on again can do so in the Add-ons Manager tab.","why":"The installer that includes this add-on performs Firefox settings changes separately from the add-on install, making it very difficult to opt-out to these changes.","name":"YouTube Downloader","created":"2013-06-06T12:29:13Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"63669524-93fe-4823-95ba-37cf6cbd4914","last_modified":1480349209770},{"guid":"hoverst@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i498","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=946029","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Adobe Flash Player (malware)","created":"2013-12-04T15:17:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2b25ba3e-45db-0e6c-965a-3acda1a44117","last_modified":1480349209745},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i606","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:20:07Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.13.*","minVersion":"3.15.13","targetApplication":[]}],"id":"c3d88e22-386a-da3b-8aba-3cb526e08053","last_modified":1480349209713},{"guid":"advance@windowsclient.com","prefs":[],"schema":1480349193877,"blockID":"i508","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=950773","who":"All Firefox users who have this add-on installed.","why":"This is not the Microsoft .NET Framework Assistant created and distributed by Microsoft. It is a malicious extension that is distributed under the same name to trick users into installing it, and turns users into a botnet that conducts SQL injection attacks on visited websites.","name":"Microsoft .NET Framework Assistant (malware)","created":"2013-12-16T10:15:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e5d30a74-732e-c3fa-f13b-097ee28d4b27","last_modified":1480349209674},{"guid":"{5eeb83d0-96ea-4249-942c-beead6847053}","prefs":[],"schema":1480349193877,"blockID":"i756","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080846","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"SmarterPower","created":"2014-10-17T16:30:30Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e101dbc0-190c-f6d8-e168-0c1380581cc9","last_modified":1480349209625},{"guid":"/^({7e8a1050-cf67-4575-92df-dcc60e7d952d}|{b3420a9c-a397-4409-b90d-bcf22da1a08a}|{eca6641f-2176-42ba-bdbe-f3e327f8e0af}|{707dca12-3f99-4d94-afea-06dcc0ae0108}|{aea20431-87fc-40be-bc5b-18066fe2819c}|{30ee6676-1ba6-455a-a7e8-298fa863a546})$/","prefs":[],"schema":1480349193877,"blockID":"i523","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947481","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted.","name":"SweetPacks","created":"2013-12-20T13:42:15Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a3a6bc8e-46a1-b3d5-1b20-58b90ba099c3","last_modified":1480349209559},{"guid":"{e0352044-1439-48ba-99b6-b05ed1a4d2de}","prefs":[],"schema":1480349193877,"blockID":"i710","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Site Counselor","created":"2014-09-30T15:28:14Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b8fedf07-dcaf-f0e3-b42b-32db75c4c304","last_modified":1480349209491},{"guid":"{bee6eb20-01e0-ebd1-da83-080329fb9a3a}","prefs":[],"schema":1480349193877,"blockID":"i642","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the Flash and Video Download extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"Flash and Video Download, between 40.10.1 and 44.10.1","created":"2014-07-10T15:02:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"44.10.1","minVersion":"40.10.1","targetApplication":[]}],"id":"16db0c85-02ec-4f7c-24a3-a504fbce902d","last_modified":1480349209443},{"guid":"addlyrics@addlyrics.net","prefs":[],"schema":1480349193877,"blockID":"i426","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=891605","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Add Lyrics","created":"2013-07-09T15:25:30Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"81678e9e-ebf0-47d6-e409-085c25e67c7e","last_modified":1480349209383},{"guid":"{7b1bf0b6-a1b9-42b0-b75d-252036438bdc}","prefs":[],"schema":1480349193877,"blockID":"i638","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036137","who":"All Firefox users who have this version of the add-on installed.","why":"Versions 27.8 and 27.9 of the YouTube High Definition extension weren't developed by the original developer, and are likely malicious in nature. It violates the Add-on Guidelines for reusing an already existent ID.","name":"YouTube High Definition 27.8 and 27.9","created":"2014-07-08T16:07:56Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"27.9","minVersion":"27.8","targetApplication":[]}],"id":"ffdc8ba0-d548-dc5b-d2fd-79a20837124b","last_modified":1480349209260},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i610","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:21:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.22.*","minVersion":"3.15.22","targetApplication":[]}],"id":"935dfec3-d017-5660-db5b-94ae7cea6e5f","last_modified":1480349209128},{"guid":"info@allpremiumplay.info","prefs":[],"schema":1480349193877,"blockID":"i163","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806451","who":"All Firefox users who have these add-ons installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Codec-C (malware)","created":"2012-10-29T16:40:07Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6afbf9b8-ae3a-6a48-0f6c-7a3e065ec043","last_modified":1480349209076},{"guid":"now.msn.com@services.mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i490","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=926378","who":"All Firefox users who have this add-on installed.","why":"As part of their ongoing work to fine-tune their editorial mix, msnNOW has decided that msnNOW will stop publishing on Dec. 3, 2013. Rather than having a single home for trending content, they will continue integrating that material throughout all MSN channels. A big thank you to everyone who followed msnNOW stories using the Firefox sidebar","name":"MSNNow (discontinued social provider)","created":"2013-11-27T08:06:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"de7d699d-016d-d973-5e39-52568de6ffde","last_modified":1480349209021},{"guid":"fftoolbar2014@etech.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i858","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131078","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and changes users' settings, in violation of the Add-on Guidelines.","name":"FF Toolbar","created":"2015-02-11T15:32:36Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6877bf40-9e45-7017-4dac-14d09e7f0ef6","last_modified":1480349208988},{"guid":"mbrnovone@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i477","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=936249","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Mozilla Security Service (malware)","created":"2013-11-08T15:35:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"758c2503-766d-a2f5-4c58-7cea93acfe05","last_modified":1480349208962},{"guid":"{739df940-c5ee-4bab-9d7e-270894ae687a}","prefs":[],"schema":1480349193877,"blockID":"i530","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949558","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted.","name":"WhiteSmoke New","created":"2013-12-20T14:49:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f8097aa6-3009-6dfc-59df-353ba6b1142b","last_modified":1480349208933},{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","prefs":[],"schema":1480349193877,"blockID":"i115","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=779014","who":"All Firefox users who have this add-on installed.","why":"This extension is malware that is installed under false pretenses, and it conducts attacks against certain video websites.","name":"Adobe Flash Player (malware)","created":"2012-08-01T13:53:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"aef9312d-5f2e-a44d-464d-6113394148e3","last_modified":1480349208904},{"guid":"g99hiaoekjoasiijdkoleabsy278djasi@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1022","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1208708","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"WatchIt (malware)","created":"2015-09-28T15:23:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"25e057ea-f500-67df-d078-ec3f37f99036","last_modified":1480349208877},{"guid":"firefoxaddon@youtubeenhancer.com","prefs":[],"schema":1480349193877,"blockID":"i636","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033120","who":"All Firefox users who have this version of the add-on installed.","why":"Version 199.7.0 of the YoutubeEnhancer extension isn't developed by the original developer, and is likely malicious in nature. It violates the Add-on Guidelines for reusing an already existent ID.","name":"YoutubeEnhancer - Firefox","created":"2014-07-08T15:58:12Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"199.7.0","minVersion":"199.7.0","targetApplication":[]}],"id":"204a074b-da87-2784-f15b-43a9ea9a6b36","last_modified":1480349208851},{"guid":"extacylife@a.com","prefs":[],"schema":1480349193877,"blockID":"i505","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947741","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks users' Facebook accounts.","name":"Facebook Haber (malware)","created":"2013-12-09T15:08:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5acadb8d-d3be-e0e0-4656-9107f9de0ea9","last_modified":1480349208823},{"guid":"{746505DC-0E21-4667-97F8-72EA6BCF5EEF}","prefs":[],"schema":1480349193877,"blockID":"i842","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128325","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Shopper-Pro","created":"2015-02-06T14:45:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5f19c5fb-1c78-cbd6-8a03-1678efb54cbc","last_modified":1480349208766},{"guid":"{51c77233-c0ad-4220-8388-47c11c18b355}","prefs":[],"schema":1480349193877,"blockID":"i580","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1004132","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, it can be enabled in the Add-ons Manager.","why":"This add-on is silently installed into Firefox, in violation of the Add-on Guidelines.","name":"Browser Utility","created":"2014-04-30T13:55:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.1.9999999","minVersion":"0","targetApplication":[]}],"id":"daa2c60a-5009-2c65-a432-161d50bef481","last_modified":1480349208691},{"guid":"{a2bfe612-4cf5-48ea-907c-f3fb25bc9d6b}","prefs":[],"schema":1480349193877,"blockID":"i712","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Website Xplorer","created":"2014-09-30T15:28:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"13450534-93d7-f2a2-7f0a-e4e3948c4dc1","last_modified":1480349208027},{"guid":"ScorpionSaver@jetpack","prefs":[],"schema":1480349193877,"blockID":"i539","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963826","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enable it in the Add-ons Manager.","why":"This add-on is being silently installed, in violation of the Add-on Guidelines","name":"ScorpionSaver","created":"2014-01-28T14:00:30Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3499c968-6e8b-37f1-5f6e-2384807c2a6d","last_modified":1480349207972},{"guid":"unblocker20@unblocker.yt","prefs":[],"schema":1480349193877,"blockID":"i1212","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"This add-on is a copy of YouTube Unblocker, which was originally blocked due to malicious activity.","name":"YouTube Unblocker 2.0","created":"2016-05-05T18:13:29Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"2.0.0","minVersion":"0","targetApplication":[]}],"id":"57785030-909f-e985-2a82-8bd057781227","last_modified":1480349207912},{"guid":"{D19CA586-DD6C-4a0a-96F8-14644F340D60}","prefs":[],"schema":1480349193877,"blockID":"i42","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=690184","who":"Users of McAfee ScriptScan versions 14.4.0 and below for all versions of Firefox and SeaMonkey.","why":"This add-on causes a high volume of crashes.","name":"McAfee ScriptScan","created":"2011-10-03T09:38:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"14.4.0","minVersion":"0.1","targetApplication":[]}],"id":"1d35ac9d-49df-23cf-51f5-f3c228ad0dc9","last_modified":1480349207877},{"guid":"gjhrjenrengoe@jfdnkwelfwkm.com","prefs":[],"schema":1480349193877,"blockID":"i1042","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1212174","who":"All users who have this add-on installed.","why":"This is a malicious add-on that takes over Facebook accounts.","name":"Avant Player (malware)","created":"2015-10-07T13:12:54Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d6453893-becc-7617-2050-0db284e0e0db","last_modified":1480349207840},{"guid":"/^(@9338379C-DD5C-4A45-9A36-9733DC806FAE|9338379C-DD5C-4A45-9A36-9733DC806FAE|@EBC7B466-8A28-4061-81B5-10ACC05FFE53|@bd6a97c0-4b18-40ed-bce7-3b7d3309e3c4222|@bd6a97c0-4b18-40ed-bce7-3b7d3309e3c4|@b2d6a97c0-4b18-40ed-bce7-3b7d3309e3c4222)$/","prefs":[],"schema":1480349193877,"blockID":"i1079","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1240597","who":"All Firefox users who have these add-ons installed.","why":"These add-ons are malicious, manipulating registry and search settings for users.","name":"Default SearchProtected (malware)","created":"2016-01-18T12:32:32Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ddc5237e-42e4-1bf1-54d3-a5e5799dd828","last_modified":1480349207815},{"guid":"{33e0daa6-3af3-d8b5-6752-10e949c61516}","prefs":[],"schema":1480349193877,"blockID":"i282","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835683","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on violates our add-on guidelines, bypassing the third party opt-in screen.","name":"Complitly","created":"2013-02-15T12:19:26Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.1.999","minVersion":"0","targetApplication":[]}],"id":"1f94bc8d-9d5f-c8f5-45c0-ad1f6e147c71","last_modified":1480349207789},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i608","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:20:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.20.*","minVersion":"3.15.18","targetApplication":[]}],"id":"e7d50ff2-5948-d571-6711-37908ccb863f","last_modified":1480349207761},{"guid":"chiang@programmer.net","prefs":[],"schema":1480349193877,"blockID":"i340","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=867156","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that logs keyboard input and sends it to a remote server.","name":"Cache Manager (malware)","created":"2013-04-30T07:44:09Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d50d0434-78e4-faa7-ce2a-9b0a8bb5120e","last_modified":1480349207736},{"guid":"{63eb5ed4-e1b3-47ec-a253-f8462f205350}","prefs":[],"schema":1480349193877,"blockID":"i786","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"FF-Plugin","created":"2014-11-18T12:33:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ca4558a2-8ce4-3ca0-3d29-63019f680c8c","last_modified":1480349207705},{"guid":"jid1-4vUehhSALFNqCw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i634","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033002","who":"All Firefox users who have this version of the add-on installed.","why":"Version 99.7 of the YouTube Plus Plus extension isn't developed by the original developer, and is likely malicious in nature. It violates the Add-on Guidelines for reusing an already existent ID.","name":"YouTube Plus Plus 99.7","created":"2014-07-04T14:13:57Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"99.7","minVersion":"99.7","targetApplication":[]}],"id":"a6d017cb-e33f-2239-4e42-ab4e7cfb19fe","last_modified":1480349207680},{"guid":"{aab02ab1-33cf-4dfa-8a9f-f4e60e976d27}","prefs":[],"schema":1480349193877,"blockID":"i820","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems without their consent, in violation of the Add-on Guidelines.","name":"Incredible Web","created":"2015-01-13T09:27:49Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"847ecc6e-1bc1-f7ff-e1d5-a76e6b8447d2","last_modified":1480349207654},{"guid":"torntv@torntv.com","prefs":[],"schema":1480349193877,"blockID":"i320","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=845610","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"TornTV","created":"2013-03-20T16:35:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cdd492b8-8101-74a9-5760-52ff709fd445","last_modified":1480349207608},{"guid":"crossriderapp12555@crossrider.com","prefs":[],"schema":1480349193877,"blockID":"i674","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=877836","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"The add-on is silently installed, in violation of our Add-on Guidelines.","name":"JollyWallet","created":"2014-07-22T16:26:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d4467e20-0f71-f0e0-8cd6-40c82b6c7379","last_modified":1480349207561},{"guid":"pluggets@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i435","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=903544","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks users' Facebook accounts and posts spam on their behalf. ","name":"Facebook Pluggets Plugin (malware)","created":"2013-08-09T13:12:14Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3a63fd92-9290-02fb-a2e8-bc1b4424201a","last_modified":1480349207535},{"guid":"344141-fasf9jas08hasoiesj9ia8ws@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1038","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1211169","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Video Plugin (malware)","created":"2015-10-05T16:42:09Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f7986b7b-9b5a-d372-8147-8b4bd6f5a29b","last_modified":1480349207485},{"guid":"meOYKQEbBBjH5Ml91z0p9Aosgus8P55bjTa4KPfl@jetpack","prefs":[],"schema":1480349193877,"blockID":"i998","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1201164","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Smooth Player (malware)","created":"2015-09-07T13:54:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"30c3e511-9e8d-15ee-0867-d61047e56515","last_modified":1480349207370},{"guid":"{8dc5c42e-9204-2a64-8b97-fa94ff8a241f}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i770","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1088726","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and is considered malware, in violation of the Add-on Guidelines.","name":"Astrmenda Search","created":"2014-10-30T14:52:52Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8a9c7702-0349-70d6-e64e-3a666ab084c6","last_modified":1480349207320},{"guid":"savingsslider@mybrowserbar.com","prefs":[],"schema":1480349193877,"blockID":"i752","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963788","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Slick Savings","created":"2014-10-17T16:18:12Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9b1faf30-5725-7847-d993-b5cdaabc9829","last_modified":1480349207290},{"guid":"youtubeunblocker__web@unblocker.yt","prefs":[],"schema":1480349193877,"blockID":"i1129","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"The add-on has a mechanism that updates certain configuration files from the developer\u2019s website. This mechanism has a vulnerability that is being exploited through this website (unblocker.yt) to change security settings in Firefox and install malicious add-ons.","name":"YouTube Unblocker","created":"2016-03-01T21:20:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"aa246b36-0a80-81e3-2129-4847e872d5fe","last_modified":1480349207262},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i612","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:23:00Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.24.*","minVersion":"3.15.24","targetApplication":[]}],"id":"e0ff9df4-60e4-dbd0-8018-57f395e6610a","last_modified":1480349206818},{"guid":"{1e4ea5fc-09e5-4f45-a43b-c048304899fc}","prefs":[],"schema":1480349193877,"blockID":"i812","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Great Finder","created":"2015-01-06T13:22:39Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1ea40b9f-2423-a2fd-a5e9-4ec1df2715f4","last_modified":1480349206784},{"guid":"psid-vhvxQHMZBOzUZA@jetpack","prefs":[],"schema":1480349193877,"blockID":"i70","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=730059","who":"All Firefox users who have installed this add-on.","why":"Add-on spams Facebook accounts and blocks Facebook warnings.","name":"PublishSync (malware)","created":"2012-02-23T13:44:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f1528b02-7cef-0e80-f747-8bbf1f0f2f06","last_modified":1480349206758},{"guid":"{B18B1E5C-4D81-11E1-9C00-AFEB4824019B}","prefs":[],"schema":1480349193877,"blockID":"i447","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=788838","who":"All Firefox users who have this add-on installed. The add-on can be enabled again in the Add-ons Manager.","why":"This add-on is installed silently, in violation of our Add-on Guidelines.","name":"My Smart Tabs","created":"2013-09-06T16:00:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"40332fae-0444-a141-ade9-8d9e50370f56","last_modified":1480349206733},{"guid":"crossriderapp8812@crossrider.com","prefs":[],"schema":1480349193877,"blockID":"i314","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835665","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"Coupon Companion","created":"2013-03-06T14:14:51Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"06c07e28-0a34-e5ee-e724-491a2f6ce586","last_modified":1480349206708},{"guid":"/^(ffxtlbr@mixidj\\.com|{c0c2693d-2ee8-47b4-9df7-b67a0ee31988}|{67097627-fd8e-4f6b-af4b-ecb65e50112e}|{f6f0f973-a4a3-48cf-9a7a-b7a69c30d71a}|{a3d0e35f-f1da-4ccb-ae77-e9d27777e68d}|{1122b43d-30ee-403f-9bfa-3cc99b0caddd})$/","prefs":[],"schema":1480349193877,"blockID":"i540","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963819","who":"All Firefox users who have this add-on installed.","why":"This add-on has been repeatedly blocked before and keeps showing up with new add-on IDs, in violation of the Add-on Guidelines.","name":"MixiDJ (malware)","created":"2014-01-28T14:07:56Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4c03ddda-bb3f-f097-0a7b-b7b77b050584","last_modified":1480349206678},{"guid":"hansin@topvest.id","prefs":[],"schema":1480349193877,"blockID":"i836","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1130406","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Inside News (malware)","created":"2015-02-06T14:17:39Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0945a657-f28d-a02c-01b2-5115b3f90d7a","last_modified":1480349206628},{"guid":"lfind@nijadsoft.net","prefs":[],"schema":1480349193877,"blockID":"i358","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=874131","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Lyrics Finder","created":"2013-05-24T14:09:47Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2307f11c-6216-0dbf-a464-b2921055ce2b","last_modified":1480349206603},{"guid":"plugin@getwebcake.com","prefs":[],"schema":1480349193877,"blockID":"i484","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=938264","who":"All Firefox users who have this add-on installed.","why":"This add-on violates the Add-on Guidelines and is broadly considered to be malware. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"WebCake","created":"2013-11-14T09:55:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2865addd-da1c-20c4-742f-6a2270da2e78","last_modified":1480349206578},{"guid":"{c0c2693d-2ee8-47b4-9df7-b67a0ee31988}","prefs":[],"schema":1480349193877,"blockID":"i354","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=837838","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines.\r\n\r\nUsers who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Mixi DJ","created":"2013-05-23T14:31:21Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"03a745c3-0ee7-e262-ba31-62d4f78ddb62","last_modified":1480349206525},{"guid":"/^({7316e43a-3ebd-4bb4-95c1-9caf6756c97f}|{0cc09160-108c-4759-bab1-5c12c216e005}|{ef03e721-f564-4333-a331-d4062cee6f2b}|{465fcfbb-47a4-4866-a5d5-d12f9a77da00}|{7557724b-30a9-42a4-98eb-77fcb0fd1be3}|{b7c7d4b0-7a84-4b73-a7ef-48ef59a52c3b})$/","prefs":[],"schema":1480349193877,"blockID":"i520","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947485","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by being silently installed and using multiple add-on IDs.","name":"appbario7","created":"2013-12-20T13:11:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e3901c48-9c06-fecb-87d3-efffd9940c22","last_modified":1480349206491},{"guid":"{354dbb0a-71d5-4e9f-9c02-6c88b9d387ba}","prefs":[],"schema":1480349193877,"blockID":"i538","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=964081","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Show Mask ON (malware)","created":"2014-01-27T10:13:17Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"aad90253-8921-b5df-3658-45a70d75f3d7","last_modified":1480349206465},{"guid":"{8E9E3331-D360-4f87-8803-52DE43566502}","prefs":[],"schema":1480349193877,"blockID":"i461","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=906071","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This is a companion add-on for the SweetPacks Toolbar which is blocked due to guideline violations.","name":"Updater By SweetPacks","created":"2013-10-17T16:10:51Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ae8cca6e-4258-545f-9a69-3d908264a701","last_modified":1480349206437},{"guid":"info@bflix.info","prefs":[],"schema":1480349193877,"blockID":"i172","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806802","who":"All Firefox users who have this add-on installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Bflix (malware)","created":"2012-10-30T13:39:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7a9062f4-218d-51d2-9b8c-b282e6eada4f","last_modified":1480349206384},{"guid":"{dff137ae-1ffd-11e3-8277-b8ac6f996f26}","prefs":[],"schema":1480349193877,"blockID":"i450","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=917861","who":"All Firefox users who have this add-on installed.","why":"This is add-on is malware that silently redirects popular search queries to a third party.","name":"Addons Engine (malware)","created":"2013-09-18T16:19:34Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8e583fe4-1c09-9bea-2473-faecf3260685","last_modified":1480349206312},{"guid":"12x3q@3244516.com","prefs":[],"schema":1480349193877,"blockID":"i493","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=939254","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware and is installed silently in violation of the Add-on Guidelines.","name":"BetterSurf (malware)","created":"2013-12-02T12:49:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"af2a9e74-3753-9ff1-d899-5d1e79ed3dce","last_modified":1480349206286},{"guid":"{20AD702C-661E-4534-8CE9-BA4EC9AD6ECC}","prefs":[],"schema":1480349193877,"blockID":"i626","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1027886","who":"All Firefox users who have this add-on installed.","why":"This add-on is probably silently installed, and is causing significant stability issues for users, in violation of the Add-on Guidelines.","name":"V-Bates","created":"2014-06-19T15:16:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9b9ccabe-8f9a-e3d1-a689-1aefba1f33b6","last_modified":1480349206261},{"guid":"{c5e48979-bd7f-4cf7-9b73-2482a67a4f37}","prefs":[],"schema":1480349193877,"blockID":"i736","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080842","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"ClearThink","created":"2014-10-17T15:22:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6e8b3e4f-2f59-cde3-e6d2-5bc6e216c506","last_modified":1480349206231},{"guid":"{41339ee8-61ed-489d-b049-01e41fd5d7e0}","prefs":[],"schema":1480349193877,"blockID":"i810","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"FireWeb","created":"2014-12-23T10:32:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a35f2ca6-aec4-c01d-170e-650258ebcd2c","last_modified":1480349206165},{"guid":"jid0-l9BxpNUhx1UUgRfKigWzSfrZqAc@jetpack","prefs":[],"schema":1480349193877,"blockID":"i640","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036640","who":"All Firefox users who have this add-on installed.","why":"This add-on attempts to gather private user data and send it to a remote location. It doesn't appear to be very effective at it, but its malicious nature is undeniable.","name":"Bitcoin Mining Software","created":"2014-07-09T14:35:40Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8fe3c35e-1a6f-a89a-fa96-81bda3b71db1","last_modified":1480349206133},{"guid":"{845cab51-d8d2-472f-8bd9-2b44642d97c2}","prefs":[],"schema":1480349193877,"blockID":"i460","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=927456","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and handles users' settings, violating some of the Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Vafmusic9","created":"2013-10-17T15:50:38Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8538ccb4-3b71-9858-3f6d-c0fff7af58b0","last_modified":1480349205746},{"guid":"SpecialSavings@SpecialSavings.com","prefs":[],"schema":1480349193877,"blockID":"i676","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881511","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This is add-on is generally considered to be unwanted and is probably silently installed, in violation of the Add-on Guidelines.","name":"SpecialSavings","created":"2014-07-22T16:31:56Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5e921810-fc3a-0729-6749-47e38ad10a22","last_modified":1480349205688},{"guid":"afurladvisor@anchorfree.com","prefs":[],"schema":1480349193877,"blockID":"i434","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844945","who":"All Firefox users who have this add-on installed.","why":"This add-on bypasses the external install opt in screen in Firefox, violating the Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Hotspot Shield Helper","created":"2013-08-09T11:26:11Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"083585eb-d7e7-e228-5fbf-bf35c52044e4","last_modified":1480349205645},{"guid":"addonhack@mozilla.kewis.ch","prefs":[],"schema":1480349193877,"blockID":"i994","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1200848","who":"All users who have this add-on installed.","why":"This add-on is a proof of concept of malicious behavior in an add-on. In itself it doesn't cause any harm, but it still needs to be blocked for security reasons.","name":"Addon Hack","created":"2015-09-01T15:32:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"81f75571-ca2a-0e50-a925-daf2037ce63c","last_modified":1480349205584},{"guid":"info@thebflix.com","prefs":[],"schema":1480349193877,"blockID":"i174","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806802","who":"All Firefox users who have these add-ons installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Bflix (malware)","created":"2012-10-30T13:40:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"811a61d4-9435-133e-6262-fb72486c36b0","last_modified":1480349205526},{"guid":"{EEE6C361-6118-11DC-9C72-001320C79847}","prefs":[],"schema":1480349193877,"blockID":"i392","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881447","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on changes search settings without user interaction, and fails to reset them after it is removed. This violates our Add-on Guidelines.","name":"SweetPacks Toolbar","created":"2013-06-25T12:38:45Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c1dc6607-4c0a-4031-9f14-70ef1ae1edcb","last_modified":1480349205455},{"guid":"/^(4cb61367-efbf-4aa1-8e3a-7f776c9d5763@cdece6e9-b2ef-40a9-b178-291da9870c59\\.com|0efc9c38-1ec7-49ed-8915-53a48b6b7600@e7f17679-2a42-4659-83c5-7ba961fdf75a\\.com|6be3335b-ef79-4b0b-a0ba-b87afbc6f4ad@6bbb4d2e-e33e-4fa5-9b37-934f4fb50182\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i531","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949672","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted and using multiple IDs.","name":"Feven","created":"2013-12-20T15:01:22Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"46aa79a9-d329-f713-d4f2-07d31fe7071e","last_modified":1480349205287},{"guid":"afext@anchorfree.com","prefs":[],"schema":1480349193877,"blockID":"i466","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=933988","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't respect user choice, violating the Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Hotspot Shield Extension","created":"2013-11-07T13:32:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8176f879-bd73-5468-e908-2d7cfc115ac2","last_modified":1480349205108},{"guid":"{FCE04E1F-9378-4f39-96F6-5689A9159E45}","prefs":[],"schema":1480349193877,"blockID":"i920","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1173154","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-09T15:26:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"eb191ff0-20f4-6e04-4344-d880af4faf51","last_modified":1480349204978},{"guid":"{9CE11043-9A15-4207-A565-0C94C42D590D}","prefs":[],"schema":1480349193877,"blockID":"i503","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947384","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that uses a deceptive name to stay in users' systems.","name":"XUL Cache (malware)","created":"2013-12-06T11:58:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dcdae267-8d3a-5671-dff2-f960febbbb20","last_modified":1480349204951},{"guid":"/^[a-z0-9]+@foxysecure[a-z0-9]*\\.com$/","prefs":[],"schema":1480349193877,"blockID":"i766","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1088615","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Fox Sec 7","created":"2014-10-30T14:22:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"503fbd7c-04cd-65f3-9d0e-3ecf427b4a8f","last_modified":1480349204925},{"guid":"/^(jid1-W4CLFIRExukJIFW@jetpack|jid1-W4CLFIRExukJIFW@jetpack_1|jid1-W3CLwrP[a-z]+@jetpack)$/","prefs":[],"schema":1480349193877,"blockID":"i1078","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1240561","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that tries to pass itself for the Adobe Flash Player and hides itself in the Add-ons Manager.","name":"Adobe Flash Player (malware)","created":"2016-01-18T10:31:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b026fe67-ec77-a240-2fa1-e78f581a6fe4","last_modified":1480349204899},{"guid":"{0153E448-190B-4987-BDE1-F256CADA672F}","prefs":[],"schema":1480349193877,"blockID":"i914","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1170633","who":"All Firefox users who have this add-on installed in Firefox 39 and above.","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.","name":"RealPlayer Browser Record Plugin","created":"2015-06-02T09:56:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"2bfe0d89-e458-9d0e-f944-ddeaf8c4db6c","last_modified":1480349204871},{"guid":"{77beece6-3997-403a-92fa-0055bfcf88e5}","prefs":[],"schema":1480349193877,"blockID":"i452","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=916966","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines, manipulating settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Entrusted11","created":"2013-09-18T16:34:58Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d348f91f-caeb-a803-dfd9-fd5d285aa0fa","last_modified":1480349204844},{"guid":"dealcabby@jetpack","prefs":[],"schema":1480349193877,"blockID":"i222","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=811435","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently side-installed with other software, injecting advertisements in Firefox.","name":"DealCabby","created":"2012-11-29T16:20:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6585f0bd-4f66-71e8-c565-d9762c5c084a","last_modified":1480349204818},{"guid":"{3c9a72a0-b849-40f3-8c84-219109c27554}","prefs":[],"schema":1480349193877,"blockID":"i510","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=951301","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks users' Facebook accounts.","name":"Facebook Haber (malware)","created":"2013-12-17T14:27:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7cfa3d0b-0ab2-5e3a-8143-1031c180e32f","last_modified":1480349204778},{"guid":"{4ED1F68A-5463-4931-9384-8FFF5ED91D92}","prefs":[],"schema":1480349193877,"blockID":"i1245","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1286368","who":"All users who have McAfee SiteAdvisor lower than 4.0. \r\n\r\nTo resolve this issue, users will need to uninstall McAfee SiteAdvisor/WebAdvisor, reboot the computer, and then reinstall McAfee SiteAdvisor/WebAdvisor. \r\n\r\nFor detailed instructions, please refer to the McAfee support knowledge base.","why":"Old versions of McAfee SiteAdvisor cause startup crashes starting with Firefox 48.0 beta.","name":"McAfee SiteAdvisor lower than 4.0","created":"2016-07-14T21:24:02Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.9.9","minVersion":"0","targetApplication":[]}],"id":"d727d8c5-3329-c98a-7c7e-38b0813ca516","last_modified":1480349204748},{"guid":"{2aab351c-ad56-444c-b935-38bffe18ad26}","prefs":[],"schema":1480349193877,"blockID":"i500","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=946087","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Adobe Photo (malware)","created":"2013-12-04T15:29:44Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f7a76d34-ddcd-155e-9fae-5967bd796041","last_modified":1480349204716},{"guid":"jid1-4P0kohSJxU1qGg@jetpack","prefs":[],"schema":1480349193877,"blockID":"i488","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=942935","who":"All Firefox users who have version 1.2.50 of the Hola extension. Updating to the latest version should remove the block.","why":"Version 1.2.50 of the Hola extension is causing frequent crashes in Firefox. All users are strongly recommended to update to the latest version, which shouldn't have this problem.","name":"Hola, version 1.2.50","created":"2013-11-25T12:14:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.2.50","minVersion":"1.2.50","targetApplication":[]}],"id":"5c7f1635-b39d-4278-5f95-9042399c776e","last_modified":1480349204668},{"guid":"{0A92F062-6AC6-8180-5881-B6E0C0DC2CC5}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i864","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131220","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems and makes unwanted settings changes, in violation of our Add-on Guidelines.","name":"BlockAndSurf","created":"2015-02-26T12:56:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"acb16d1c-6274-93a3-7c1c-7ed36ede64a9","last_modified":1480349204612},{"guid":"jid0-Y6TVIzs0r7r4xkOogmJPNAGFGBw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i322","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=847018","who":"All users who have this add-on installed.","why":"This extension is malware, installed pretending to be the Flash Player plugin.","name":"Flash Player (malware)","created":"2013-03-22T14:39:40Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"54df22cd-19ce-a7f0-63cc-ffe3113748b9","last_modified":1480349204532},{"guid":"trackerbird@bustany.org","prefs":[],"schema":1480349193877,"blockID":"i986","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1189264","who":"All Thunderbird users who have this version of the add-on installed on Thunderbird 38.0a2 and above.","why":"This add-on is causing consistent crashes on Thunderbird 38.0a2 and above.","name":"trackerbird 1.2.6","created":"2015-08-17T15:56:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.2.6","minVersion":"1.2.6","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"38.0a2"}]}],"id":"bb1c699e-8790-4528-0b6d-4f83b7a3152d","last_modified":1480349204041},{"guid":"{0134af61-7a0c-4649-aeca-90d776060cb3}","prefs":[],"schema":1480349193877,"blockID":"i448","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=912746","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines. It manipulates settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"KeyBar add-on","created":"2013-09-13T16:15:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cf428416-4974-8bb4-7928-c0cb2cfe7957","last_modified":1480349203968},{"guid":"/^(firefox@vebergreat\\.net|EFGLQA@78ETGYN-0W7FN789T87\\.COM)$/","prefs":[],"schema":1480349193877,"blockID":"i564","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=974104","who":"All Firefox users who have these add-ons installed. If you wish to continue using these add-ons, you can enable them in the Add-ons Manager.","why":"These add-ons are silently installed by the Free Driver Scout installer, in violation of our Add-on Guidelines.","name":"veberGreat and vis (Free Driver Scout bundle)","created":"2014-03-05T13:02:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"487538f1-698e-147e-6395-986759ceed7e","last_modified":1480349203902},{"guid":"69ffxtbr@PackageTracer_69.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i882","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1153001","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on appears to be malware, hijacking user's settings, in violation of the Add-on Guidelines.","name":"PackageTracer","created":"2015-04-10T16:18:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0d37b4e0-3c60-fdad-dd8c-59baff6eae87","last_modified":1480349203836},{"guid":"{ACAA314B-EEBA-48e4-AD47-84E31C44796C}","prefs":[],"schema":1480349193877,"blockID":"i496","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=945530","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making settings changes that can't be easily reverted.","name":"DVDVideoSoft Menu","created":"2013-12-03T16:07:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"70d2c912-8d04-8065-56d6-d793b13d5f67","last_modified":1480349203779},{"guid":"jid1-4vUehhSALFNqCw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i632","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033002","who":"All Firefox users who have this version of the add-on installed.","why":"Version 100.7 of the YouTube Plus Plus extension isn't developed by the original developer, and is likely malicious in nature. It violates the Add-on Guidelines for reusing an already existent ID.","name":"YouTube Plus Plus 100.7","created":"2014-07-01T13:16:55Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"100.7","minVersion":"100.7","targetApplication":[]}],"id":"8bef6026-6697-99cd-7c1f-812877c4211d","last_modified":1480349203658},{"guid":"{a9bb9fa0-4122-4c75-bd9a-bc27db3f9155}","prefs":[],"schema":1480349193877,"blockID":"i404","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835678","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our Add-on Guidelines.","name":"Searchqu","created":"2013-06-25T15:16:43Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fb7a1dc7-16a0-4f70-8289-4df494e0d0fa","last_modified":1480349203633},{"guid":"P2@D.edu","prefs":[],"schema":1480349193877,"blockID":"i850","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128269","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the Add-on Guidelines.","name":"unIsaless","created":"2015-02-09T15:29:21Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"49536a29-fc7e-9fd0-f415-e15ac090fa56","last_modified":1480349203605},{"guid":"linksicle@linksicle.com","prefs":[],"schema":1480349193877,"blockID":"i472","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9b5b15b3-6da7-cb7c-3c44-30b4fe079d52","last_modified":1480349203581},{"guid":"{377e5d4d-77e5-476a-8716-7e70a9272da0}","prefs":[],"schema":1480349193877,"blockID":"i398","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835678","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our Add-on Guidelines.","name":"Searchqu","created":"2013-06-25T15:15:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ea94df32-2a85-23da-43f7-3fc5714530ec","last_modified":1480349203519},{"guid":"{4933189D-C7F7-4C6E-834B-A29F087BFD23}","prefs":[],"schema":1480349193877,"blockID":"i437","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=900695","who":"All Firefox users.","why":"This add-on is widely reported to be malware.","name":"Win32.SMSWebalta (malware)","created":"2013-08-09T15:14:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cbef1357-d6bc-c8d3-7a82-44af6b1c390f","last_modified":1480349203486},{"guid":"{ADFA33FD-16F5-4355-8504-DF4D664CFE10}","prefs":[],"schema":1480349193877,"blockID":"i306","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844972","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed, bypassing our third-party opt-in screen, in violation of our Add-on Guidelines. It's also possible that it changes user settings without their consent.","name":"Nation Toolbar","created":"2013-02-28T12:56:48Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"017fd151-37ca-4646-4763-1d303fb918fa","last_modified":1480349203460},{"guid":"detgdp@gmail.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i884","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1152614","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware, hijacking user settings, in violation of the Add-on Guidelines.","name":"Security Protection (malware)","created":"2015-04-10T16:21:34Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1b5cc88e-499d-2a47-d793-982d4c05e6ee","last_modified":1480349203433},{"guid":"/^(67314b39-24e6-4f05-99f3-3f88c7cddd17@6c5fa560-13a3-4d42-8e90-53d9930111f9\\.com|ffxtlbr@visualbee\\.com|{7aeae561-714b-45f6-ace3-4a8aed6e227b}|{7093ee04-f2e4-4637-a667-0f730797b3a0}|{53c4024f-5a2e-4f2a-b33e-e8784d730938})$/","prefs":[],"schema":1480349193877,"blockID":"i514","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947473","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by using multiple add-on IDs and making unwanted settings changes.","name":"VisualBee Toolbar","created":"2013-12-20T12:25:50Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5f91eee1-7303-3f97-dfe6-1e897a156c7f","last_modified":1480349203408},{"guid":"FXqG@xeeR.net","prefs":["browser.startup.homepage"],"schema":1480349193877,"blockID":"i720","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems and changes settings without consent, in violation of the Add-on Guidelines.","name":"GoSSave","created":"2014-10-02T12:23:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8ebbc061-a4ff-b75b-ec42-eb17c42a2956","last_modified":1480349203341},{"guid":"{87934c42-161d-45bc-8cef-ef18abe2a30c}","prefs":[],"schema":1480349193877,"blockID":"i547","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=798621","who":"All Firefox users who have this add-on installed. If you wish to continue using it, it can be enabled in the Add-ons Manager.","why":"This add-on is silently installed and makes various unwanted changes, in violation of the Add-on Guidelines.","name":"Ad-Aware Security Toolbar","created":"2014-01-30T12:42:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.7.9999999999","minVersion":"0","targetApplication":[]}],"id":"bcfbc502-24c2-4699-7435-e4837118f05a","last_modified":1480349203310},{"guid":"kallow@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i495","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=945426","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Facebook Security Service (malware)","created":"2013-12-02T15:09:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1a2c37a9-e7cc-2d03-2043-098d36b8aca2","last_modified":1480349203247},{"guid":"support@lastpass.com","prefs":[],"schema":1480349193877,"blockID":"i1261","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1289907","who":"All users who install affected versions of this add-on - beta versions 4.0 to 4.1.20a from addons.mozilla.org or lastpass.com.","why":"LastPass have announced there are security issues that would allow a malicious website to perform some actions (e.g. deleting passwords) without the user's knowledge. Beta versions 4.0 to 4.1.20a of their add-on that were available from addons.mozilla.org are affected and Lastpass also distributed these versions direct from their website.","name":"LastPass addon","created":"2016-07-29T14:17:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.1.20a","minVersion":"4.0.0a","targetApplication":[]}],"id":"ffe94023-b4aa-87ac-962c-5beabe34b1a0","last_modified":1480349203208},{"guid":"008abed2-b43a-46c9-9a5b-a771c87b82da@1ad61d53-2bdc-4484-a26b-b888ecae1906.com","prefs":[],"schema":1480349193877,"blockID":"i528","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949565","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by being silently installed.","name":"weDownload Manager Pro","created":"2013-12-20T14:40:58Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"da46065f-1c68-78f7-80fc-8ae07b5df68d","last_modified":1480349203131},{"guid":"{25dd52dc-89a8-469d-9e8f-8d483095d1e8}","prefs":[],"schema":1480349193877,"blockID":"i714","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Web Counselor","created":"2014-10-01T15:36:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e46c31ad-0ab3-e48a-47aa-9fa91b675fda","last_modified":1480349203066},{"guid":"{B1FC07E1-E05B-4567-8891-E63FBE545BA8}","prefs":[],"schema":1480349193877,"blockID":"i926","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1173154","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-09T15:28:46Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"09868783-261a-ac24-059d-fc772218c1ba","last_modified":1480349202708},{"guid":"/^(torntv@torntv\\.com|trtv3@trtv\\.com|torntv2@torntv\\.com|e2fd07a6-e282-4f2e-8965-85565fcb6384@b69158e6-3c3b-476c-9d98-ae5838c5b707\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i529","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949559","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by being silently installed.","name":"TornTV","created":"2013-12-20T14:46:03Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"040e5ec2-ea34-816a-f99f-93296ce845e8","last_modified":1480349202677},{"guid":"249911bc-d1bd-4d66-8c17-df533609e6d8@c76f3de9-939e-4922-b73c-5d7a3139375d.com","prefs":[],"schema":1480349193877,"blockID":"i532","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949672","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted and using multiple IDs.","name":"Feven","created":"2013-12-20T15:02:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d32b850d-82d5-b63d-087c-fb2041b2c232","last_modified":1480349202631},{"guid":"thefoxonlybetter@quicksaver","prefs":[],"schema":1480349193877,"blockID":"i704","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1053469","who":"All Firefox users who have any of these versions of the add-on installed.","why":"Certain versions of The Fox, Only Better weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"The Fox, Only Better (malicious versions)","created":"2014-08-27T14:49:02Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"0.*","minVersion":"0","targetApplication":[]}],"id":"79ea6621-b414-17a4-4872-bfc4af7fd428","last_modified":1480349202588},{"guid":"{B40794A0-7477-4335-95C5-8CB9BBC5C4A5}","prefs":[],"schema":1480349193877,"blockID":"i429","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=899178","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that spreads spam through Facebook.","name":"Video Player 1.3 (malware)","created":"2013-07-30T14:31:17Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d98b2b76-4082-3387-ae33-971d973fa278","last_modified":1480349202541},{"guid":"firefoxaddon@youtubeenhancer.com","prefs":[],"schema":1480349193877,"blockID":"i648","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the YouTube Enhancer Plus extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"YouTube Enhancer Plus, versions between 199.7.0 and 208.7.0","created":"2014-07-10T15:12:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"208.7.0","minVersion":"199.7.0","targetApplication":[]}],"id":"7e64d7fc-ff16-8687-dbd1-bc4c7dfc5097","last_modified":1480349202462},{"guid":"addon@defaulttab.com","prefs":[],"schema":1480349193877,"blockID":"i362","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=863387","who":"All users who have this add-on installed. Users who wish to enable it again can do so in the Add-ons Manager tab.","why":"Old versions of this add-on had been silently installed into users' systems, without showing the opt-in install page that is built into Firefox.","name":"Default Tab","created":"2013-06-06T12:57:29Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.4.4","minVersion":"0","targetApplication":[]}],"id":"df3fe753-5bae-bfb4-022b-6b6bfc534937","last_modified":1480349202429},{"guid":"{7D4F1959-3F72-49d5-8E59-F02F8AA6815D}","prefs":[],"schema":1480349193877,"blockID":"i394","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=881447","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This is a companion add-on for the SweetPacks Toolbar which is blocked due to guideline violations.","name":"Updater By SweetPacks","created":"2013-06-25T12:40:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"851c2b8e-ea19-3a63-eac5-f931a8da5d6e","last_modified":1480349202341},{"guid":"g@uzcERQ6ko.net","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i776","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes user settings without consent, in violation of the Add-on Guidelines","name":"GoSave","created":"2014-10-31T16:23:36Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ee1e1a44-b51b-9f12-819d-64c3e515a147","last_modified":1480349202307},{"guid":"ffxtlbr@incredibar.com","prefs":[],"schema":1480349193877,"blockID":"i318","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=812264","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"IncrediBar","created":"2013-03-20T14:40:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9e84b07c-84d5-c932-85f2-589713d7e380","last_modified":1480349202280},{"guid":"M1uwW0@47z8gRpK8sULXXLivB.com","prefs":[],"schema":1480349193877,"blockID":"i870","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1131159","who":"All users who have this add-on installed.","why":"This is a malicious add-on that goes by the the name \"Flash Player 11\".","name":"Flash Player 11 (malware)","created":"2015-03-04T14:34:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"71d961b2-37d1-d393-76f5-3afeef57e749","last_modified":1480349202252},{"guid":"jid1-qj0w91o64N7Eeg@jetpack","prefs":[],"schema":1480349193877,"blockID":"i650","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the YouTube ALL HTML5 extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"YouTube ALL HTML5, versions between 39.5.1 and 47.0.4","created":"2014-07-10T15:14:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"47.0.4","minVersion":"39.5.1","targetApplication":[]}],"id":"b30b1f7a-2a30-a6cd-fc20-6c9cb23c7198","last_modified":1480349202186},{"guid":"4zffxtbr-bs@VideoDownloadConverter_4z.com","prefs":[],"schema":1480349193877,"blockID":"i507","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949266","who":"All Firefox users who have this add-on installed.","why":"Certain versions of this add-on contains an executable that is flagged by multiple tools as malware. Newer versions no longer use it.","name":"VideoDownloadConverter","created":"2013-12-12T15:37:23Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"5.75.3.25126","minVersion":"0","targetApplication":[]}],"id":"0a0f106a-ecc6-c537-1818-b36934943e91","last_modified":1480349202156},{"guid":"hdv@vovcacik.addons.mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i656","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the High Definition Video extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"High Definition Video, version 102.0","created":"2014-07-10T15:22:59Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"102.0","minVersion":"102.0","targetApplication":[]}],"id":"972249b2-bba8-b508-2ead-c336631135ac","last_modified":1480349202125},{"guid":"@video_downloader_pro","prefs":[],"schema":1480349193877,"blockID":"i1265","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1298335","who":"Users of versions of 1.2.1 to 1.2.5 inclusive.","why":"Versions 1.2.1 to 1.2.5 of Video Downloader Pro included code that violated our polices - affected versions send every visited url to a remote server without the user's consent. Versions older than 1.2.1 and more recent than 1.2.5 are okay.","name":"Video Downloader Pro","created":"2016-08-26T18:26:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.2.5","minVersion":"1.2.1","targetApplication":[]}],"id":"ff9c8def-7d50-66b4-d42a-f9a4b04bd224","last_modified":1480349202099},{"guid":"contato@facefollow.net","prefs":[],"schema":1480349193877,"blockID":"i509","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=950846","who":"All Firefox users who have this add-on installed.","why":"This add-on spams users' Facebook accounts.","name":"Face follow","created":"2013-12-16T16:15:15Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"56f15747-af8c-342c-6877-a41eeacded84","last_modified":1480349202067},{"guid":"wecarereminder@bryan","prefs":[],"schema":1480349193877,"blockID":"i666","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=818614","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is being silently installed by various software packages, in violation of the Add-on Guidelines.","name":"We-Care Reminder","created":"2014-07-10T16:18:36Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"51e0ead7-144c-c1f4-32f2-25fc5fcde870","last_modified":1480349202039},{"guid":"/^({83a8ce1b-683c-4784-b86d-9eb601b59f38}|{ef1feedd-d8da-4930-96f1-0a1a598375c6}|{79ff1aae-701f-4ca5-aea3-74b3eac6f01b}|{8a184644-a171-4b05-bc9a-28d75ffc9505}|{bc09c55d-0375-4dcc-836e-0e3c8addfbda}|{cef81415-2059-4dd5-9829-1aef3cf27f4f})$/","prefs":[],"schema":1480349193877,"blockID":"i526","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949566","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted and uses multiple IDs.","name":"KeyBar add-on","created":"2013-12-20T14:12:31Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9dfa4e92-bbf2-66d1-59a9-51402d1d226c","last_modified":1480349202010},{"guid":"{d9284e50-81fc-11da-a72b-0800200c9a66}","prefs":[],"schema":1480349193877,"blockID":"i806","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1106948","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable the add-on in the Add-on Manager.","why":"Starting with Firefox 34, current versions of the Yoono add-on cause all tabs to appear blank.","name":"Yoono","created":"2014-12-16T08:35:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"7.7.34","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"34.0a1"}]}],"id":"ccdceb04-3083-012f-9d9f-aac85f10b494","last_modified":1480349201976},{"guid":"{f2548724-373f-45fe-be6a-3a85e87b7711}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i768","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1088726","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and is considered malware, in violation of the Add-on Guidelines.","name":"Astro New Tab","created":"2014-10-30T14:52:09Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8510e9e2-c7d8-90d0-a2ff-eb09293acc6e","last_modified":1480349201854},{"guid":"KSqOiTeSJEDZtTGuvc18PdPmYodROmYzfpoyiCr2@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1032","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1211172","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Video Player (malware)","created":"2015-10-05T16:22:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3d9188ac-235f-773a-52a2-261b3ea9c03c","last_modified":1480349201504},{"guid":"{849ded12-59e9-4dae-8f86-918b70d213dc}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i708","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1047102","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes homepage and search settings without the user's consent, in violation of the Add-on Guidelines.","name":"Astromenda New Tab","created":"2014-09-02T16:29:08Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a319bfee-464f-1c33-61ad-738c52842fbd","last_modified":1480349201453},{"guid":"grjkntbhr@hgergerherg.com","prefs":[],"schema":1480349193877,"blockID":"i1018","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1208196","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"GreenPlayer (malware)","created":"2015-09-24T16:04:53Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"9c47d940-bdd9-729f-e32e-1774d87f24b5","last_modified":1480349201425},{"guid":"quick_start@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i588","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011316","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware that is installed without user consent.","name":"Quick Start (malware)","created":"2014-06-03T15:53:15Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2affbebe-8776-3edb-28b9-237cb8b85f97","last_modified":1480349201398},{"guid":"/^(matchersite(pro(srcs?)?)?\\@matchersite(pro(srcs?)?)?\\.com)|((pro)?sitematcher(_srcs?|pro|site|sitesrc|-generic)?\\@(pro)?sitematcher(_srcs?|pro|site|sitesrc|-generic)?\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i668","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1039892","who":"All Firefox users who have any of these add-ons installed. User who wish to continue using these add-ons can enable them in the Add-ons Manager.","why":"This is a group of add-ons that are being distributed under multiple different IDs and likely being silently installed, in violation of the Add-on Guidelines.","name":"Site Matcher","created":"2014-07-17T14:35:14Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"52e1a2de-ab35-be27-4810-334f681ccc4a","last_modified":1480349201372},{"guid":"{EEF73632-A085-4fd3-A778-ECD82C8CB297}","prefs":[],"schema":1480349193877,"blockID":"i165","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806451","who":"All Firefox users who have these add-ons installed.","why":"These are malicious add-ons that are distributed with a trojan and negatively affect web browsing.","name":"Codec-M (malware)","created":"2012-10-29T16:41:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e5ecd02a-20ee-749b-d5cf-3d74d1173a1f","last_modified":1480349201262},{"guid":"firefox-extension@mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i688","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1049533","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hides itself under the name Java_plugin, among others.","name":"FinFisher (malware)","created":"2014-08-06T17:13:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"98aca74a-69c7-9960-cccc-096a4a4adc6c","last_modified":1480349201235},{"guid":"jid1-vW9nopuIAJiRHw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i570","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=990291","who":"All Firefox users who have this add-on installed. Those who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed, reverts settings changes to enforce its own, and is also causing stability problems in Firefox, all in violation of the Add-on Guidelines.","name":"SmileysWeLove","created":"2014-03-31T16:17:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bf2abd66-f910-650e-89aa-cd1d5c2f8a89","last_modified":1480349201204},{"guid":"87aukfkausiopoawjsuifhasefgased278djasi@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1050","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1220461","who":"All users who have this add-on installed.","why":"This is a malicious add-on that poses as a video update and hijacks Facebook accounts.","name":"Trace Video (malware)","created":"2015-11-02T14:53:21Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cb4cfac0-79c2-0fbf-206a-324aa3abbea5","last_modified":1480349201157},{"guid":"{e44a1809-4d10-4ab8-b343-3326b64c7cdd}","prefs":[],"schema":1480349193877,"blockID":"i451","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=916966","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines, manipulating settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Entrusted","created":"2013-09-18T16:33:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ad5f53ed-7a43-cb1f-cbd7-41808fac1791","last_modified":1480349201128},{"guid":"{21EAF666-26B3-4A3C-ABD0-CA2F5A326744}","prefs":[],"schema":1480349193877,"blockID":"i620","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024752","who":"All Firefox users who have this add-on installed.","why":"This add-on is probably silently installed, and is causing significant stability issues for users, in violation of the Add-on Guidelines.","name":"V-Bates","created":"2014-06-12T15:27:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2d8833db-01a7-a758-080f-19e47abc54cb","last_modified":1480349201096},{"guid":"{1FD91A9C-410C-4090-BBCC-55D3450EF433}","prefs":[],"schema":1480349193877,"blockID":"i338","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844979","who":"All Firefox users who have this add-on installed.","why":"This extension overrides search settings, and monitors any further changes done to them so that they can be reverted. This violates our add-on guidelines.","name":"DataMngr (malware)","created":"2013-04-24T11:30:28Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2e35995f-bec6-aa2b-3372-346d3325f72e","last_modified":1480349201059},{"guid":"9598582LLKmjasieijkaslesae@jetpack","prefs":[],"schema":1480349193877,"blockID":"i996","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1201165","who":"All users who have this add-on installed.","why":"This is a malicious add-on that takes over Facebook accounts.","name":"Secure Player (malware)","created":"2015-09-07T13:50:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"52f9c6e7-f7d5-f52e-cc35-eb99ef8b4b6a","last_modified":1480349201029},{"guid":"{bf7380fa-e3b4-4db2-af3e-9d8783a45bfc}","prefs":[],"schema":1480349193877,"blockID":"i406","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=776404","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on changes search settings without user interaction, and fails to reset them after it is removed. This violates our Add-on Guidelines.","name":"uTorrentBar","created":"2013-06-27T10:46:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3bcefc4b-110c-f3b8-17ad-f9fc97c1120a","last_modified":1480349201000},{"guid":"{ce7e73df-6a44-4028-8079-5927a588c948}","prefs":[],"schema":1480349193877,"blockID":"i117","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=781269","who":"All Firefox users who have this add-on installed.","why":"The Search By Image (by Google) extension causes very high CPU utilization during regular browsing, often damaging user experience significantly, in a way that is very difficult to associate with the extension.\r\n\r\nUsers who want to continue using the add-on regardless of its performance impact can enable it in the Add-ons Manager.","name":"Search By Image (by Google)","created":"2012-08-10T08:50:52Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0.8","minVersion":"0","targetApplication":[]}],"id":"fb1f9aed-2f1f-3e2c-705d-3b34ca9168b6","last_modified":1480349200972},{"guid":"{424b0d11-e7fe-4a04-b7df-8f2c77f58aaf}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i800","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080839","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and is considered malware, in violation of the Add-on Guidelines.","name":"Astromenda NT","created":"2014-12-15T10:51:56Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"07bdf6aa-cfc8-ed21-6b36-6f90af02b169","last_modified":1480349200939},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i618","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.\r\n","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.\r\n","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:25:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.31.*","minVersion":"3.15.31","targetApplication":[]}],"id":"825feb43-d6c2-7911-4189-6f589f612c34","last_modified":1480349200911},{"guid":"{167d9323-f7cc-48f5-948a-6f012831a69f}","prefs":[],"schema":1480349193877,"blockID":"i262","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=812303","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently side-installed by other software, and doesn't do much more than changing the users' settings, without reverting them on removal.","name":"WhiteSmoke (malware)","created":"2013-01-29T13:33:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a8f249fe-3db8-64b8-da89-7b584337a7af","last_modified":1480349200885},{"guid":"/^({988919ff-0cd8-4d0c-bc7e-60d55a49eb64}|{494b9726-9084-415c-a499-68c07e187244}|{55b95864-3251-45e9-bb30-1a82589aaff1}|{eef3855c-fc2d-41e6-8d91-d368f51b3055}|{90a1b331-c2b4-4933-9f63-ba7b84d60d58}|{d2cf9842-af95-48cd-b873-bfbb48cd7f5e})$/","prefs":[],"schema":1480349193877,"blockID":"i541","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963819","who":"All Firefox users who have this add-on installed","why":"This add-on has been repeatedly blocked before and keeps showing up with new add-on IDs, in violation of the Add-on Guidelines.","name":"MixiDJ (malware)","created":"2014-01-28T14:09:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"36196aed-9d0d-ebee-adf1-d1f7fadbc48f","last_modified":1480349200819},{"guid":"{29b136c9-938d-4d3d-8df8-d649d9b74d02}","prefs":[],"schema":1480349193877,"blockID":"i598","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011322","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed, in violation with our Add-on Guidelines.","name":"Mega Browse","created":"2014-06-12T13:21:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"63b1c965-27c3-cd06-1b76-8721add39edf","last_modified":1480349200775},{"guid":"{6e7f6f9f-8ce6-4611-add2-05f0f7049ee6}","prefs":[],"schema":1480349193877,"blockID":"i868","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1086574","who":"All users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of our Add-on Guidelines.","name":"Word Proser","created":"2015-02-26T14:58:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f54797da-cdcd-351a-c95e-874b64b0d226","last_modified":1480349200690},{"guid":"{02edb56b-9b33-435b-b7df-b2843273a694}","prefs":[],"schema":1480349193877,"blockID":"i438","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=896581","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines. It is installed bypassing the Firefox opt-in screen, and manipulates settings without reverting them on removal. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"KeyBar Toolbar","created":"2013-08-09T15:27:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"896710d2-5a65-e9b0-845b-05aa72c2bd51","last_modified":1480349200338},{"guid":"{e1aaa9f8-4500-47f1-9a0a-b02bd60e4076}","prefs":[],"schema":1480349193877,"blockID":"i646","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the Youtube Video Replay extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"Youtube Video Replay, version 178.7.0","created":"2014-07-10T15:10:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"178.7.0","minVersion":"178.7.0","targetApplication":[]}],"id":"ac5d1083-6753-bbc1-a83d-c63c35371b22","last_modified":1480349200312},{"guid":"{1cdbda58-45f8-4d91-b566-8edce18f8d0a}","prefs":[],"schema":1480349193877,"blockID":"i724","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080835","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Website Counselor Pro","created":"2014-10-13T16:00:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"7b70bd36-d2f7-26fa-9038-8b8dd132cd81","last_modified":1480349200288},{"guid":"{b12785f5-d8d0-4530-a3ea-5c4263b85bef}","prefs":[],"schema":1480349193877,"blockID":"i988","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1161573","who":"All users who have this add-on installed. Those who wish continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on overrides user's preferences without consent, in violation of the Add-on Guidelines.","name":"Hero Fighter Community Toolbar","created":"2015-08-17T16:04:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3e6d73f2-e8e3-af69-866e-30d3977b09e4","last_modified":1480349200171},{"guid":"{c2d64ff7-0ab8-4263-89c9-ea3b0f8f050c}","prefs":[],"schema":1480349193877,"blockID":"i39","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=665775","who":"Users of MediaBar versions 4.3.1.00 and below in all versions of Firefox.","why":"This add-on causes a high volume of crashes and is incompatible with certain versions of Firefox.","name":"MediaBar","created":"2011-07-19T10:18:12Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.3.1.00","minVersion":"0.1","targetApplication":[]}],"id":"e928a115-9d8e-86a4-e2c7-de39627bd9bf","last_modified":1480349200047},{"guid":"{9edd0ea8-2819-47c2-8320-b007d5996f8a}","prefs":["browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i684","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1033857","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is believed to be silently installed in Firefox, in violation of the Add-on Guidelines.","name":"webget","created":"2014-08-06T13:33:33Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d38561f5-370f-14be-1443-a74dad29b1f3","last_modified":1480349199962},{"guid":"/^({ad9a41d2-9a49-4fa6-a79e-71a0785364c8})|(ffxtlbr@mysearchdial\\.com)$/","prefs":["browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i670","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036740","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on has been repeatedly been silently installed into users' systems, and is known for changing the default search without user consent, in violation of the Add-on Guidelines.","name":"MySearchDial","created":"2014-07-18T15:47:35Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a04075e6-5df2-2e1f-85a6-3a0171247349","last_modified":1480349199927},{"guid":"odtffplugin@ibm.com","prefs":[],"schema":1480349193877,"blockID":"i982","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1190630","who":"All users who have these versions installed. The latest versions of this add-on aren't blocked, so updating to them should be sufficient to fix this problem.","why":"Certain versions of the IBM Remote Control add-on could leave a machine vulnerable to run untrusted code.","name":"IBM Endpoint Manager for Remote Control 9.0.1.1 to 9.0.1.100","created":"2015-08-11T11:25:43Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"9.0.1.100","minVersion":"9.0.1.1","targetApplication":[]}],"id":"f6e3e5d2-9331-1097-ba4b-cf2e484b7187","last_modified":1480349199886},{"guid":"support@todoist.com","prefs":[],"schema":1480349193877,"blockID":"i1030","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1205479","who":"All users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is sending all sites visited by the user to a remote server, additionally doing so in an unsafe way.","name":"Todoist","created":"2015-10-01T16:53:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.9","minVersion":"0","targetApplication":[]}],"id":"d0a84aab-0661-b3c5-c184-a2fd3f9dfb9c","last_modified":1480349199850},{"guid":"/^({1f43c8af-e9e4-4e5a-b77a-f51c7a916324}|{3a3bd700-322e-440a-8a6a-37243d5c7f92}|{6a5b9fc2-733a-4964-a96a-958dd3f3878e}|{7b5d6334-8bc7-4bca-a13e-ff218d5a3f17}|{b87bca5b-2b5d-4ae8-ad53-997aa2e238d4}|{bf8e032b-150f-4656-8f2d-6b5c4a646e0d})$/","prefs":[],"schema":1480349193877,"blockID":"i1136","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251940","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hides itself from view and disables various security features in Firefox.","name":"Watcher (malware)","created":"2016-03-04T17:56:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a2d0378f-ebe4-678c-62d8-2e4c6a613c17","last_modified":1480349199818},{"guid":"liiros@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i814","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1119657","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems without their consent and performs unwanted operations.","name":"One Tab (malware)","created":"2015-01-09T12:49:05Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"387c054d-cc9f-7ebd-c814-b4c1fbcb2880","last_modified":1480349199791},{"guid":"youtubeunblocker@unblocker.yt","prefs":[],"schema":1480349193877,"blockID":"i1128","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"The add-on has a mechanism that updates certain configuration files from the developer\u2019s website. This mechanism has a vulnerability that is being exploited through this website (unblocker.yt) to change security settings in Firefox and install malicious add-ons.","name":"YouTube Unblocker","created":"2016-03-01T21:18:33Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3395fce1-42dd-e31a-1466-2da3f32456a0","last_modified":1480349199768},{"guid":"{97E22097-9A2F-45b1-8DAF-36AD648C7EF4}","prefs":[],"schema":1480349193877,"blockID":"i916","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1170633","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-02T09:57:38Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"94fba774-c4e6-046a-bc7d-ede787a9d0fe","last_modified":1480349199738},{"guid":"{b64982b1-d112-42b5-b1e4-d3867c4533f8}","prefs":[],"schema":1480349193877,"blockID":"i167","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=805973","who":"All Firefox users who have this add-on installed.","why":"This add-on is a frequent cause for browser crashes and other problems.","name":"Browser Manager","created":"2012-10-29T17:17:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"00bbe501-2d27-7a1c-c344-6eea1c707473","last_modified":1480349199673},{"guid":"{58bd07eb-0ee0-4df0-8121-dc9b693373df}","prefs":[],"schema":1480349193877,"blockID":"i286","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=842206","who":"All Firefox users who have this extension installed.","why":"This extension is malicious and is installed under false pretenses, causing problems for many Firefox users. Note that this is not the same BrowserProtect extension that is listed on our add-ons site. That one is safe to use.","name":"Browser Protect / bProtector (malware)","created":"2013-02-18T10:54:28Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b40a60d3-b9eb-09eb-bb02-d50b27aaac9f","last_modified":1480349199619},{"guid":"trtv3@trtv.com","prefs":[],"schema":1480349193877,"blockID":"i465","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=845610","who":"All Firefox users who have this add-on installed.","why":"This add-on doesn't follow our Add-on Guidelines, bypassing our third party install opt-in screen. Users who wish to continue using this extension can enable it in the Add-ons Manager.","name":"TornTV","created":"2013-11-01T15:21:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3d4d8a33-2eff-2556-c699-9be0841a8cd4","last_modified":1480349199560},{"guid":"youtube@downloader.yt","prefs":[],"schema":1480349193877,"blockID":"i1231","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1278932","who":"All users who have this add-on installed.","why":"The add-on has a mechanism that updates certain configuration files from the developer\u2019s website. This mechanism has a vulnerability that can being exploited through this website (downloader.yt) to change security settings in Firefox and/or install malicious add-ons. \r\n","name":"YouTube downloader","created":"2016-06-09T14:50:27Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8514eaee-850c-e27a-a058-8badeeafc26e","last_modified":1480349199528},{"guid":"low_quality_flash@pie2k.com","prefs":[],"schema":1480349193877,"blockID":"i658","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the Low Quality Flash extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"Low Quality Flash, versions between 46.2 and 47.1","created":"2014-07-10T15:27:51Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"47.1","minVersion":"46.2","targetApplication":[]}],"id":"b869fae6-c18c-0d39-59a2-603814656404","last_modified":1480349199504},{"guid":"{d2cf9842-af95-48cd-b873-bfbb48cd7f5e}","prefs":[],"schema":1480349193877,"blockID":"i439","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=902569","who":"All Firefox users who have this add-on installed.","why":"This is another instance of the previously blocked Mixi DJ add-on, which doesn't follow our Add-on Guidelines. If you wish to continue using it, it can be enabled in the Add-ons Manager.","name":"Mixi DJ V45","created":"2013-08-09T16:08:18Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e81c31fc-265e-61b9-d4c1-0e2f31f1652e","last_modified":1480349199478},{"guid":"/^({b95faac1-a3d7-4d69-8943-ddd5a487d966}|{ecce0073-a837-45a2-95b9-600420505f7e}|{2713b394-286f-4d7c-89ea-4174eeab9f5a}|{da7a20cf-bef4-4342-ad78-0240fdf87055})$/","prefs":[],"schema":1480349193877,"blockID":"i624","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947482","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is known to change user settings without their consent, is distributed under multiple add-on IDs, and is also correlated with reports of tab functions being broken in Firefox, in violation of the Add-on Guidelines.\r\n","name":"WiseConvert","created":"2014-06-18T13:50:38Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ed57d7a6-5996-c7da-8e07-1ad125183e84","last_modified":1480349199446},{"guid":"{f894a29a-f065-40c3-bb19-da6057778493}","prefs":[],"schema":1480349193877,"blockID":"i742","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080817","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on appears to be silently installed into users' systems, and changes settings without consent, in violation of the Add-on Guidelines.","name":"Spigot Shopping Assistant","created":"2014-10-17T15:46:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"39d8334e-4b7c-4336-2d90-e6aa2d783967","last_modified":1480349199083},{"guid":"plugin@analytic-s.com","prefs":[],"schema":1480349193877,"blockID":"i467","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935797","who":"All Firefox users who have this add-on installed.","why":"This add-on bypasses the external install opt in screen in Firefox, violating the Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Analytics","created":"2013-11-07T14:08:48Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ffbed3f3-e5c9-bc6c-7530-f68f47b7efd6","last_modified":1480349199026},{"guid":"{C4A4F5A0-4B89-4392-AFAC-D58010E349AF}","prefs":[],"schema":1480349193877,"blockID":"i678","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=895668","who":"All Firefox users who have this add-on installed. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"This add-on is generally silently installed, in violation of the Add-on Guidelines.","name":"DataMngr","created":"2014-07-23T14:12:23Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"151021fc-ce4e-a734-e075-4ece19610f64","last_modified":1480349198947},{"guid":"HxLVJK1ioigz9WEWo8QgCs3evE7uW6LEExAniBGG@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1036","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1211170","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Mega Player (malware)","created":"2015-10-05T16:37:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"32e34b41-a73c-72d4-c96c-136917ad1d4d","last_modified":1480349198894},{"guid":"{6af08a71-380e-42dd-9312-0111d2bc0630}","prefs":[],"schema":1480349193877,"blockID":"i822","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1126353","who":"All Firefox users who have this add-on installed.","why":"This add-on appears to be malware, hiding itself in the Add-ons Manager, and keeping track of certain user actions.","name":"{6af08a71-380e-42dd-9312-0111d2bc0630} (malware)","created":"2015-01-27T09:50:40Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"96d0c12b-a6cf-4539-c1cf-a1c75c14ff24","last_modified":1480349198826},{"guid":"colmer@yopmail.com","prefs":[],"schema":1480349193877,"blockID":"i550","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=968445","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook accounts.","name":"Video Plugin Facebook (malware)","created":"2014-02-06T15:49:25Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c394d10b-384e-cbd0-f357-9c521715c373","last_modified":1480349198744},{"guid":"fplayer@adobe.flash","prefs":[],"schema":1480349193877,"blockID":"i444","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=909433","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware disguised as the Flash Player plugin.","name":"Flash Player (malware)","created":"2013-08-26T14:49:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c6557989-1b59-72a9-da25-b816c4a4c723","last_modified":1480349198667},{"guid":"ascsurfingprotection@iobit.com","prefs":[],"schema":1480349193877,"blockID":"i740","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963776","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Advanced SystemCare Surfing Protection","created":"2014-10-17T15:39:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4405f99d-c9b7-c496-1b45-268163ce29b7","last_modified":1480349198637},{"guid":"{6E19037A-12E3-4295-8915-ED48BC341614}","prefs":[],"schema":1480349193877,"blockID":"i24","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=615518","who":"Users of RelevantKnowledge version 1.3.328.4 and older in Firefox 4 and later.","why":"This add-on causes a high volume of Firefox crashes.","name":"comScore RelevantKnowledge","created":"2011-03-02T17:42:56Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.3.328.4","minVersion":"0.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.7a1pre"}]}],"id":"7c189c5e-f95b-0aef-e9e3-8e879336503b","last_modified":1480349198606},{"guid":"crossriderapp4926@crossrider.com","prefs":[],"schema":1480349193877,"blockID":"i91","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=754648","who":"All Firefox users who have installed this add-on.","why":"Versions of this add-on prior to 0.81.44 automatically post message to users' walls and hide them from their view. Version 0.81.44 corrects this.","name":"Remove My Timeline (malware)","created":"2012-05-14T14:16:43Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.81.43","minVersion":"0","targetApplication":[]}],"id":"5ee3e72e-96fb-c150-fc50-dd581e960963","last_modified":1480349198547},{"guid":"/^(93abedcf-8e3a-4d02-b761-d1441e437c09@243f129d-aee2-42c2-bcd1-48858e1c22fd\\.com|9acfc440-ac2d-417a-a64c-f6f14653b712@09f9a966-9258-4b12-af32-da29bdcc28c5\\.com|58ad0086-1cfb-48bb-8ad2-33a8905572bc@5715d2be-69b9-4930-8f7e-64bdeb961cfd\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i544","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=949596","who":"All Firefox users who have this add-on installed. If you wish to continue using it, it can be enabled in the Add-ons Manager.","why":"This add-on is in violation of the Add-on Guidelines, using multiple add-on IDs and potentially doing other unwanted activities.","name":"SuperLyrics","created":"2014-01-30T11:51:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d8d25967-9814-3b65-0787-a0525c16e11e","last_modified":1480349198510},{"guid":"wHO@W9.net","prefs":[],"schema":1480349193877,"blockID":"i980","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1192468","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"BestSavEFOrYoU (malware)","created":"2015-08-11T11:20:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4beb917f-68f2-1f91-beed-dff6d83006f8","last_modified":1480349198483},{"guid":"frhegnejkgner@grhjgewfewf.com","prefs":[],"schema":1480349193877,"blockID":"i1040","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1212451","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Async Codec (malware)","created":"2015-10-07T13:03:37Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fb6ab4ce-5517-bd68-2cf7-a93a109a528a","last_modified":1480349198458},{"guid":"firefox@luckyleap.net","prefs":[],"schema":1480349193877,"blockID":"i471","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:33Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3a9e04c7-5e64-6297-8442-2816915aad77","last_modified":1480349198433},{"guid":"auto-plugin-checker@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1210","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1270175","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"This add-on reports every visited URL to a third party without disclosing it to the user.","name":"auto-plugin-checker","created":"2016-05-04T16:25:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3e202419-5318-2025-b579-c828af24a06e","last_modified":1480349198401},{"guid":"lugcla21@gmail.com","prefs":[],"schema":1480349193877,"blockID":"i432","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=902072","who":"All Firefox users who have this add-on installed.","why":"This add-on includes malicious code that spams users' Facebook accounts with unwanted messages.","name":"FB Color Changer (malware)","created":"2013-08-06T13:16:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b6943f35-9429-1f8e-bf8e-fe37979fe183","last_modified":1480349198372},{"guid":"{99079a25-328f-4bd4-be04-00955acaa0a7}","prefs":[],"schema":1480349193877,"blockID":"i402","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=835678","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This group of add-ons is silently installed, bypassing our install opt-in screen. This violates our Add-on Guidelines.","name":"Searchqu","created":"2013-06-25T15:16:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"16008331-8b47-57c8-a6f7-989914d1cb8a","last_modified":1480349198341},{"guid":"{81b13b5d-fba1-49fd-9a6b-189483ac548a}","prefs":[],"schema":1480349193877,"blockID":"i473","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:43Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"76debc7b-b875-6da4-4342-1243cbe437f6","last_modified":1480349198317},{"guid":"{e935dd68-f90d-46a6-b89e-c4657534b353}","prefs":[],"schema":1480349193877,"blockID":"i732","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Sites Pro","created":"2014-10-16T16:38:24Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"97fdc235-ac1a-9f20-1b4a-17c2f0d89ad1","last_modified":1480349198260},{"guid":"{32da2f20-827d-40aa-a3b4-2fc4a294352e}","prefs":[],"schema":1480349193877,"blockID":"i748","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963787","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Start Page","created":"2014-10-17T16:02:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6c980c8e-4a3c-7912-4a3a-80add457575a","last_modified":1480349198223},{"guid":"chinaescapeone@facebook.com","prefs":[],"schema":1480349193877,"blockID":"i431","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=901770","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that uses a deceptive name and hijacks social networks.","name":"F-Secure Security Pack (malware)","created":"2013-08-05T16:43:24Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fbd89a9d-9c98-8481-e4cf-93e327ca8be1","last_modified":1480349198192},{"guid":"{cc6cc772-f121-49e0-b1f0-c26583cb0c5e}","prefs":[],"schema":1480349193877,"blockID":"i716","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Website Counselor","created":"2014-10-02T12:12:34Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"debcd28c-884b-ca42-d983-6fabf91034dd","last_modified":1480349198148},{"guid":"{906000a4-88d9-4d52-b209-7a772970d91f}","prefs":[],"schema":1480349193877,"blockID":"i474","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=935779","who":"All Firefox users who have this add-on installed.","why":"This add-on is part of a malicious Firefox installer bundle.","name":"Installer bundle (malware)","created":"2013-11-07T15:38:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"326d05b9-ace7-67c6-b094-aad926c185a5","last_modified":1480349197744},{"guid":"{A34CAF42-A3E3-11E5-945F-18C31D5D46B0}","prefs":["security.csp.enable","security.fileuri.strict_origin_policy","security.mixed_content.block_active_content"],"schema":1480349193877,"blockID":"i1227","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1274995","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"This add-on downgrades the security of all iframes from https to http and changes important Firefox security preferences.","name":"Mococheck WAP browser","created":"2016-05-31T15:45:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2230a5ce-a8f8-a20a-7974-3b960a03aba9","last_modified":1480349197699},{"guid":"{AB2CE124-6272-4b12-94A9-7303C7397BD1}","prefs":[],"schema":1480349193877,"blockID":"i20","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=627278","who":"Users of Skype extension versions below 5.2.0.7165 for all versions of Firefox.","why":"This add-on causes a high volume of Firefox crashes and introduces severe performance issues. Please update to the latest version. For more information, please read our announcement.","name":"Skype extension","created":"2011-01-20T18:39:25Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"5.2.0.7164","minVersion":"0.1","targetApplication":[]}],"id":"60e16015-1803-197a-3241-484aa961d18f","last_modified":1480349197667},{"guid":"f6682b47-e12f-400b-9bc0-43b3ccae69d1@39d6f481-b198-4349-9ebe-9a93a86f9267.com","prefs":[],"schema":1480349193877,"blockID":"i682","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1043017","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is being silently installed, in violation of the Add-on Guidelines.","name":"enformation","created":"2014-08-04T16:07:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a7ae65cd-0869-67e8-02f8-6d22c56a83d4","last_modified":1480349197636},{"guid":"rally_toolbar_ff@bulletmedia.com","prefs":[],"schema":1480349193877,"blockID":"i537","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=950267","who":"All Firefox users who have this extension installed. If you want to continue using it, you can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by silently installing it.","name":"Rally Toolbar","created":"2014-01-23T15:51:48Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4ac6eb63-b51a-3296-5b02-bae77f424032","last_modified":1480349197604},{"guid":"x77IjS@xU.net","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i774","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1076771","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed and changes user settings without consent, in violation of the Add-on Guidelines\r\n","name":"YoutubeAdBlocke","created":"2014-10-31T16:22:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"4771da14-bcf2-19b1-3d71-bc61a1c7d457","last_modified":1480349197578},{"guid":"{49c53dce-afa0-49a1-a08b-2eb8e8444128}","prefs":[],"schema":1480349193877,"blockID":"i441","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844985","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed, violating our Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"ytbyclick","created":"2013-08-09T16:58:50Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5f08d720-58c2-6acb-78ad-7af45c82c90b","last_modified":1480349197550},{"guid":"searchengine@gmail.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i886","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1152555","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-on Manager.","why":"This add-on appears to be malware, being silently installed and hijacking user settings, in violation of the Add-on Guidelines.","name":"Search Enginer","created":"2015-04-10T16:25:21Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"46de4f6e-2b29-7334-ebbb-e0048f114f7b","last_modified":1480349197525},{"guid":"{bb7b7a60-f574-47c2-8a0b-4c56f2da9802}","prefs":[],"schema":1480349193877,"blockID":"i754","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080850","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"AdvanceElite","created":"2014-10-17T16:27:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f222ceb2-9b69-89d1-8dce-042d8131a12e","last_modified":1480349197500},{"guid":"/^(test3@test.org|test2@test.org|test@test.org|support@mozilla.org)$/","prefs":[],"schema":1480349193877,"blockID":"i1119","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1242721","who":"All users who have these add-ons installed.","why":"These add-ons are malicious, or at least attempts at being malicious, using misleading names and including risky code.","name":"test.org add-ons (malware)","created":"2016-01-25T13:31:43Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"afd2a0d7-b050-44c9-4e45-b63696d9b22f","last_modified":1480349197468},{"guid":"/^((34qEOefiyYtRJT@IM5Munavn\\.com)|(Mro5Fm1Qgrmq7B@ByrE69VQfZvZdeg\\.com)|(KtoY3KGxrCe5ie@yITPUzbBtsHWeCdPmGe\\.com)|(9NgIdLK5Dq4ZMwmRo6zk@FNt2GCCLGyUuOD\\.com)|(NNux7bWWW@RBWyXdnl6VGls3WAwi\\.com)|(E3wI2n@PEHTuuNVu\\.com)|(2d3VuWrG6JHBXbQdbr@3BmSnQL\\.com))$/","prefs":[],"schema":1480349193877,"blockID":"i324","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=841791","who":"All users who have this add-on installed.","why":"This extension is malware, installed pretending to be the Flash Player plugin.","name":"Flash Player (malware)","created":"2013-03-22T14:48:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5be3a399-af3e-644e-369d-628273b3fdc2","last_modified":1480349197432},{"guid":"axtara__web@axtara.com","prefs":[],"schema":1480349193877,"blockID":"i1263","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have version 1.1.1 or less of this add-on installed.","why":"Old versions of this add-on contained code from YouTube Unblocker, which was originally blocked due to malicious activity. Version 1.1.2 is now okay.","name":"AXTARA Search (pre 1.1.2)","created":"2016-08-17T16:47:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"1.1.1","minVersion":"0","targetApplication":[]}],"id":"c58be1c9-3d63-a948-219f-e3225e1eec8e","last_modified":1480349197404},{"guid":"{8f894ed3-0bf2-498e-a103-27ef6e88899f}","prefs":[],"schema":1480349193877,"blockID":"i792","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"ExtraW","created":"2014-11-26T13:49:30Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bebc9e15-59a1-581d-0163-329d7414edff","last_modified":1480349197368},{"guid":"profsites@pr.com","prefs":[],"schema":1480349193877,"blockID":"i734","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.\r\n","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"ProfSites","created":"2014-10-16T16:39:26Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0d6d84d7-0b3f-c5ab-57cc-6b66b0775a23","last_modified":1480349197341},{"guid":"{872b5b88-9db5-4310-bdd0-ac189557e5f5}","prefs":[],"schema":1480349193877,"blockID":"i497","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=945530","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making settings changes that can't be easily reverted.","name":"DVDVideoSoft Menu","created":"2013-12-03T16:08:09Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e8da89c4-c585-77e4-9872-591d20723a7e","last_modified":1480349197240},{"guid":"123456789@offeringmedia.com","prefs":[],"schema":1480349193877,"blockID":"i664","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that attempts to hide itself by impersonating the Adobe Flash plugin.","name":"Taringa MP3 / Adobe Flash","created":"2014-07-10T15:41:24Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6d0a7dda-d92a-c8e2-21be-c92b0a88ac8d","last_modified":1480349197208},{"guid":"firefoxdav@icloud.com","prefs":[],"schema":1480349193877,"blockID":"i1214","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1271358","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"This add-on is causing frequent and persistent crashing.","name":"iCloud Bookmarks","created":"2016-05-17T16:55:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.4.22","minVersion":"0","targetApplication":[]}],"id":"2dddd7a7-b081-45e2-3eeb-2a7f76a1465f","last_modified":1480349197172},{"guid":"youplayer@addons.mozilla.org","prefs":[],"schema":1480349193877,"blockID":"i660","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1036757","who":"All Firefox users who have this version of the add-on installed.","why":"Certain versions of the YouPlayer extension weren't developed by the original developer, and are likely malicious in nature. This violates the Add-on Guidelines for reusing an already existent ID.","name":"YouPlayer, versions between 79.9.8 and 208.0.1","created":"2014-07-10T15:31:04Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"208.0.1","minVersion":"79.9.8","targetApplication":[]}],"id":"82dca22b-b889-5d9d-3fc9-b2184851f2d1","last_modified":1480349197136},{"guid":"{df6bb2ec-333b-4267-8c4f-3f27dc8c6e07}","prefs":[],"schema":1480349193877,"blockID":"i487","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=940681","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Facebook 2013 (malware)","created":"2013-11-19T14:59:45Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5867c409-b342-121e-3c3b-426e2f0ba1d4","last_modified":1480349197109},{"guid":"/^({4e988b08-8c51-45c1-8d74-73e0c8724579}|{93ec97bf-fe43-4bca-a735-5c5d6a0a40c4}|{aed63b38-7428-4003-a052-ca6834d8bad3}|{0b5130a9-cc50-4ced-99d5-cda8cc12ae48}|{C4CFC0DE-134F-4466-B2A2-FF7C59A8BFAD})$/","prefs":[],"schema":1480349193877,"blockID":"i524","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947481","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted.","name":"SweetPacks","created":"2013-12-20T13:43:21Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1a3a26a2-cdaa-e5ba-f6ac-47b98ae2cc26","last_modified":1480349197082},{"guid":"foxyproxy@eric.h.jung","prefs":[],"schema":1480349193877,"blockID":"i950","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1183890","who":"All users who have this add-on installed on Thunderbird 38 and above.","why":"This add-on is causing consistent startup crashes on Thunderbird 38 and above.","name":"FoxyProxy Standard for Thunderbird","created":"2015-07-15T09:34:44Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"4.5.5","minVersion":"0","targetApplication":[{"guid":"{3550f703-e582-4d05-9a08-453d09bdfdc6}","maxVersion":"*","minVersion":"38.0a2"},{"guid":"{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}","maxVersion":"*","minVersion":"2.35"}]}],"id":"5ee8203d-bea2-6cd5-9ba0-d1922ffb3d21","last_modified":1480349197056},{"guid":"{82AF8DCA-6DE9-405D-BD5E-43525BDAD38A}","prefs":[],"schema":1480349193877,"blockID":"i1056","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1225639","who":"All users who have this add-on installed in Firefox 43 and above. User who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is associated with frequent shutdown crashes in Firefox.","name":"Skype Click to Call","created":"2015-11-17T14:03:05Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"7.5.0.9082","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"43.0a1"}]}],"id":"484f8386-c415-7499-a8a0-f4e16f5a142f","last_modified":1480349197027},{"guid":"{22119944-ED35-4ab1-910B-E619EA06A115}","prefs":[],"schema":1480349193877,"blockID":"i45","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=699134","who":"Users of version 7.9.20.6 of RoboForm Toolbar and earlier on Firefox 48 and above.","why":"Older versions of the RoboForm Toolbar add-on are causing crashes in Firefox 48 and above. The developer has released a fix, available in versions 7.9.21+.","name":"Roboform","created":"2011-11-19T06:14:56Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"7.9.20.6","minVersion":"0.1","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"8.0a1"}]}],"id":"5f7f9e13-d3e8-ea74-8341-b83e36d67d94","last_modified":1480349196995},{"guid":"{87b5a11e-3b54-42d2-9102-0a7cb1f79ebf}","prefs":[],"schema":1480349193877,"blockID":"i838","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128327","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the Add-on Guidelines.","name":"Cyti Web (malware)","created":"2015-02-06T14:29:12Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1ba0e57c-4c0c-4eb6-26e7-c2016769c343","last_modified":1480349196965},{"guid":"/^({bf67a47c-ea97-4caf-a5e3-feeba5331231}|{24a0cfe1-f479-4b19-b627-a96bf1ea3a56})$/","prefs":[],"schema":1480349193877,"blockID":"i542","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963819","who":"All Firefox users who have this add-on installed.","why":"This add-on has been repeatedly blocked before and keeps showing up with new add-on IDs, in violation of the Add-on Guidelines.","name":"MixiDJ (malware)","created":"2014-01-28T14:10:49Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fc442b64-1b5d-bebb-c486-f431b154f3db","last_modified":1480349196622},{"guid":"/^({ebd898f8-fcf6-4694-bc3b-eabc7271eeb1}|{46008e0d-47ac-4daa-a02a-5eb69044431a}|{213c8ed6-1d78-4d8f-8729-25006aa86a76}|{fa23121f-ee7c-4bd8-8c06-123d087282c5}|{19803860-b306-423c-bbb5-f60a7d82cde5})$/","prefs":[],"schema":1480349193877,"blockID":"i622","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947482","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is known to change user settings without their consent, is distributed under multiple add-on IDs, and is also correlated with reports of tab functions being broken in Firefox, in violation of the Add-on Guidelines.","name":"WiseConvert","created":"2014-06-18T13:48:26Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"ffd184fa-aa8f-8a75-ff00-ce285dec5b22","last_modified":1480349196597},{"guid":"/^({fa95f577-07cb-4470-ac90-e843f5f83c52}|ffxtlbr@speedial\\.com)$/","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i696","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1031115","who":"All Firefox users who have any of these add-ons installed. Users who wish to continue using these add-ons can enable them in the Add-ons Manager.","why":"These add-ons are silently installed and change homepage and search defaults without user consent, in violation of the Add-on Guidelines. They are also distributed under more than one add-on ID.","name":"Speedial","created":"2014-08-21T13:55:41Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"130c7419-f727-a2fb-3891-627bc69a43bb","last_modified":1480349196565},{"guid":"pennerdu@faceobooks.ws","prefs":[],"schema":1480349193877,"blockID":"i442","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=904050","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that hijacks Facebook accounts.","name":"Console Video (malware)","created":"2013-08-13T14:00:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"fb83e48e-a780-9d06-132c-9ecc65b43674","last_modified":1480349196541},{"guid":"anttoolbar@ant.com","prefs":[],"schema":1480349193877,"blockID":"i88","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=748269","who":"All Firefox users who have installed version 2.4.6.4 of the Ant Video Downloader and Player add-on.","why":"Version 2.4.6.4 of the Ant Video Downloader and Player add-on is causing a very high number of crashes in Firefox. There's an updated version 2.4.6.5 that doesn't have this problem. All users are recommended to update as soon as possible.","name":"Ant Video Downloader and Player","created":"2012-05-01T10:32:11Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"2.4.6.4","minVersion":"2.4.6.4","targetApplication":[]}],"id":"9eef435b-39d4-2b73-0810-44b0d3ff52ad","last_modified":1480349196509},{"guid":"{E90FA778-C2B7-41D0-9FA9-3FEC1CA54D66}","prefs":[],"schema":1480349193877,"blockID":"i446","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=788838","who":"All Firefox users who have this add-on installed. The add-on can be enabled again in the Add-ons Manager.","why":"This add-on is installed silently, in violation of our Add-on Guidelines.","name":"YouTube to MP3 Converter","created":"2013-09-06T15:59:29Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"83eb6337-a3b6-84e4-e76c-ee9200b80796","last_modified":1480349196471},{"guid":"{ad7ce998-a77b-4062-9ffb-1d0b7cb23183}","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i804","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1080839","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and is considered malware, in violation of the Add-on Guidelines.","name":"Astromenda Search Addon","created":"2014-12-15T10:53:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"633f9999-c81e-bd7a-e756-de7d34feb39d","last_modified":1480349196438},{"guid":"{52b0f3db-f988-4788-b9dc-861d016f4487}","prefs":[],"schema":1480349193877,"blockID":"i584","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=974104","who":"All Firefox users who have these add-ons installed. If you wish to continue using these add-ons, you can enable them in the Add-ons Manager.","why":"Versions of this add-on are silently installed by the Free Driver Scout installer, in violation of our Add-on Guidelines.","name":"Web Check (Free Driver Scout bundle)","created":"2014-05-22T11:07:00Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"0.1.9999999","minVersion":"0","targetApplication":[]}],"id":"cba0ac44-90f9-eabb-60b0-8da2b645e067","last_modified":1480349196363},{"guid":"dodatek@flash2.pl","prefs":[],"schema":1480349193877,"blockID":"i1279","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1312748","who":"Any user with version 1.3 or newer of this add-on installed.","why":"This add-on claims to be a flash plugin and it does some work on youtube, but it also steals your facebook and adfly credentials and sends them to a remote server.","name":"Aktualizacja Flash WORK addon","created":"2016-10-27T15:52:00Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"1.3","targetApplication":[]}],"id":"2dab5211-f9ec-a1bf-c617-6f94f28b5ee1","last_modified":1480349196331},{"guid":"{2d069a16-fca1-4e81-81ea-5d5086dcbd0c}","prefs":[],"schema":1480349193877,"blockID":"i440","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=903647","who":"All Firefox users who have this add-on installed.","why":"This add-on is installed silently and doesn't follow many other of the Add-on Guidelines. If you want to continue using this add-on, you can enable it in the Add-ons Manager.","name":"GlitterFun","created":"2013-08-09T16:26:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e3f77f3c-b1d6-3b29-730a-846007b9cb16","last_modified":1480349196294},{"guid":"xivars@aol.com","prefs":[],"schema":1480349193877,"blockID":"i501","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=946420","who":"All Firefox users who have this add-on installed.","why":"This is a malicious Firefox extension that uses a deceptive name and hijacks users' Facebook accounts.","name":"Video Plugin Facebook (malware)","created":"2013-12-04T15:34:32Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3303d201-7006-3c0d-5fd5-45503e2e690c","last_modified":1480349196247},{"guid":"2bbadf1f-a5af-499f-9642-9942fcdb7c76@f05a14cc-8842-4eee-be17-744677a917ed.com","prefs":[],"schema":1480349193877,"blockID":"i700","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1052599","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is widely considered malware and is apparently installed silently into users' systems, in violation of the Add-on Guidelines.","name":"PIX Image Viewer","created":"2014-08-21T16:15:16Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1b72889b-90e6-ea58-4fe8-d48257df7d8b","last_modified":1480349196212},{"guid":"/^[0-9a-f]+@[0-9a-f]+\\.info/","prefs":[],"schema":1480349193877,"blockID":"i256","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806451","who":"All Firefox users who have installed any of these add-ons.","why":"The set of extensions labeled as Codec, Codec-M, Codec-C and other names are malware being distributed as genuine add-ons.\r\n\r\nIf you think an add-on you installed was incorrectly blocked and the block dialog pointed you to this page, please comment on this blog post.","name":"Codec extensions (malware)","created":"2013-01-22T12:16:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"0c654540-00f2-0ad4-c9be-7ca2ace5341e","last_modified":1480349196184},{"guid":"toolbar@ask.com","prefs":[],"schema":1480349193877,"blockID":"i600","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1024719","who":"All Firefox users who have these versions of the Ask Toolbar installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"Certain old versions of the Ask Toolbar are causing problems to users when trying to open new tabs. Using more recent versions of the Ask Toolbar should also fix this problem.","name":"Ask Toolbar (old Avira Security Toolbar bundle)","created":"2014-06-12T14:16:08Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"3.15.5.*","minVersion":"3.15.5","targetApplication":[]}],"id":"51c4ab3b-9ad3-c5c3-98c8-a220025fc5a3","last_modified":1480349196158},{"guid":"{729c9605-0626-4792-9584-4cbe65b243e6}","prefs":[],"schema":1480349193877,"blockID":"i788","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Browser Ext Assistance","created":"2014-11-20T10:07:19Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3c588238-2501-6a53-65ea-5c8ff0f3e51d","last_modified":1480349196123},{"guid":"unblocker20__web@unblocker.yt","prefs":[],"schema":1480349193877,"blockID":"i1213","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"This add-on is a copy of YouTube Unblocker, which was originally blocked due to malicious activity.","name":"YouTube Unblocker 2.0","created":"2016-05-09T17:28:18Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"de305335-e9f3-f410-cf5c-f88b7ad4b088","last_modified":1480349196088},{"guid":"webbooster@iminent.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i630","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=866943","who":"All Firefox users who have any of these add-ons installed. Users who wish to continue using them can enable them in the Add-ons Manager.","why":"These add-ons have been silently installed repeatedly, and change settings without user consent, in violation of the Add-on Guidelines.","name":"Iminent Minibar","created":"2014-06-26T15:49:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d894ea79-8215-7a0c-b0e9-be328c3afceb","last_modified":1480349196032},{"guid":"jid1-uabu5A9hduqzCw@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1016","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1208051","who":"All users who have this add-on installed.","why":"This add-on is injecting unwanted and unexpected advertisements into all web pages, and masking this behavior as ad-blocking in its code.","name":"SpeedFox (malware)","created":"2015-09-24T09:49:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"31397419-3dfa-9db3-f1aa-e812d4220669","last_modified":1480349196001},{"guid":"/^firefox@(jumpflip|webconnect|browsesmart|mybuzzsearch|outobox|greygray|lemurleap|divapton|secretsauce|batbrowse|whilokii|linkswift|qualitink|browsefox|kozaka|diamondata|glindorus|saltarsmart|bizzybolt|websparkle)\\.(com?|net|org|info|biz)$/","prefs":[],"schema":1480349193877,"blockID":"i548","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=937405","who":"All Firefox users who have one or more of these add-ons installed. If you wish to continue using any of these add-ons, they can be enabled in the Add-ons Manager.","why":"A large amount of add-ons developed by Yontoo are known to be silently installed and otherwise violate the Add-on Guidelines.","name":"Yontoo add-ons","created":"2014-01-30T15:06:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bfaf3510-397e-48e6-cc4f-74202aaaed54","last_modified":1480349195955},{"guid":"firefox@bandoo.com","prefs":[],"schema":1480349193877,"blockID":"i23","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=629634","who":"Users of Bandoo version 5.0 for Firefox 3.6 and later.","why":"This add-on causes a high volume of Firefox crashes.","name":"Bandoo","created":"2011-03-01T23:30:23Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"5.0","minVersion":"5.0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"3.7a1pre"}]}],"id":"bd487cf4-3f6a-f956-a6e9-842ac8deeac5","last_modified":1480349195915},{"guid":"5nc3QHFgcb@r06Ws9gvNNVRfH.com","prefs":[],"schema":1480349193877,"blockID":"i372","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=875752","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware pretending to be the Flash Player plugin.","name":"Flash Player 11 (malware)","created":"2013-06-18T13:23:40Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"dc71fcf5-fae4-5a5f-6455-ca7bbe4202db","last_modified":1480349195887},{"guid":"/^(7tG@zEb\\.net|ru@gfK0J\\.edu)$/","prefs":[],"schema":1480349193877,"blockID":"i854","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=952255","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the Add-on Guidelines.","name":"youtubeadblocker (malware)","created":"2015-02-09T15:41:36Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"cfe42207-67a9-9b88-f80c-994e6bdd0c55","last_modified":1480349195851},{"guid":"{a7aae4f0-bc2e-a0dd-fb8d-68ce32c9261f}","prefs":[],"schema":1480349193877,"blockID":"i378","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=865090","who":"All Firefox users who have installed this add-on.","why":"This extension is malware that hijacks Facebook accounts for malicious purposes.","name":"Myanmar Extension for Facebook (malware)","created":"2013-06-18T15:58:54Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"30ecd9b9-4023-d9ef-812d-f1a75bb189b0","last_modified":1480349195823},{"guid":"a88a77ahjjfjakckmmabsy278djasi@jetpack","prefs":[],"schema":1480349193877,"blockID":"i1034","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1211171","who":"All users who have this add-on installed.","why":"This is a malicious add-on that takes over Facebook accounts.","name":"Fast Unlock (malware)","created":"2015-10-05T16:28:48Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f801f112-3e8f-770f-10db-384349a36026","last_modified":1480349195798},{"guid":"crossriderapp5060@crossrider.com","prefs":[],"schema":1480349193877,"blockID":"i228","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=810016","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently side-installed by other software, and it overrides user preferences and inserts advertisements in web content.","name":"Savings Sidekick","created":"2012-11-29T16:31:13Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a37f76ac-7b77-b5a3-bac8-addaacf34bae","last_modified":1480349195769},{"guid":"/^(saamazon@mybrowserbar\\.com)|(saebay@mybrowserbar\\.com)$/","prefs":[],"schema":1480349193877,"blockID":"i672","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011337","who":"All Firefox users who have these add-ons installed. Users wishing to continue using these add-ons can enable them in the Add-ons Manager.","why":"These add-ons are being silently installed, in violation of the Add-on Guidelines.","name":"Spigot Shopping Assistant","created":"2014-07-22T15:13:57Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e072a461-ee5a-c83d-8d4e-5686eb585a15","last_modified":1480349195347},{"guid":"{b99c8534-7800-48fa-bd71-519a46cdc7e1}","prefs":[],"schema":1480349193877,"blockID":"i596","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1011325","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed, in violation with our Add-on Guidelines.","name":"BrowseMark","created":"2014-06-12T13:19:59Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f411bb0f-7c82-9061-4a80-cabc8ff45beb","last_modified":1480349195319},{"guid":"/^({94d62e35-4b43-494c-bf52-ba5935df36ef}|firefox@advanceelite\\.com|{bb7b7a60-f574-47c2-8a0b-4c56f2da9802})$/","prefs":[],"schema":1480349193877,"blockID":"i856","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1130323","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the Add-on Guidelines.","name":"AdvanceElite (malware)","created":"2015-02-09T15:51:11Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e3d52650-d3e2-4cef-71f7-e6188f56fe4d","last_modified":1480349195286},{"guid":"{458fb825-2370-4973-bf66-9d7142141847}","prefs":["app.update.auto","app.update.enabled","app.update.interval","app.update.url"],"schema":1480349193877,"blockID":"i1024","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1209588","who":"All users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on hides itself in the Add-ons Manager, interrupts the Firefox update process, and reportedly causes other problems to users, in violation of the Add-on Guidelines.","name":"Web Shield","created":"2015-09-29T09:25:27Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"32c5baa7-d547-eaab-302d-b873c83bfe2d","last_modified":1480349195258},{"guid":"{f2456568-e603-43db-8838-ffa7c4a685c7}","prefs":[],"schema":1480349193877,"blockID":"i778","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Sup-SW","created":"2014-11-07T13:53:13Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"93568fa2-0cb7-4e1d-e893-d7261e81547c","last_modified":1480349195215},{"guid":"{77BEC163-D389-42c1-91A4-C758846296A5}","prefs":[],"schema":1480349193877,"blockID":"i566","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=964594","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-on Manager.","why":"This add-on is silently installed into Firefox, in violation of the Add-on Guidelines.","name":"V-Bates","created":"2014-03-05T13:20:54Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"080edbac-25d6-e608-abdd-feb1ce7a9a77","last_modified":1480349195185},{"guid":"helper@vidscrab.com","prefs":[],"schema":1480349193877,"blockID":"i1077","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1231010","who":"All Firefox users who have this add-on installed. Users who wish to continue using the add-on can enable it in the Add-ons Manager.","why":"This add-on injects remote scripts and injects unwanted content into web pages.","name":"YouTube Video Downloader (from AddonCrop)","created":"2016-01-14T14:32:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"36b2e1e0-5fda-bde3-db55-dfcbe24dfd04","last_modified":1480349195157},{"guid":"/^ext@WebexpEnhancedV1alpha[0-9]+\\.net$/","prefs":[],"schema":1480349193877,"blockID":"i535","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=952717","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, it can be enabled in the Add-ons Manager.","why":"This add-on is generally unwanted by users and uses multiple random IDs in violation of the Add-on Guidelines.","name":"Webexp Enhanced","created":"2014-01-09T11:22:19Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c7d6a30d-f3ee-40fb-5256-138dd4593a61","last_modified":1480349195123},{"guid":"jid1-XLjasWL55iEE1Q@jetpack","prefs":[],"schema":1480349193877,"blockID":"i578","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1002037","who":"All Firefox users who have this add-on installed.","why":"This is a malicious add-on that presents itself as \"Flash Player\" but is really injecting unwanted content into Facebook pages.","name":"Flash Player (malware)","created":"2014-04-28T16:25:03Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"1e75b2f0-02fc-77a4-ad2f-52a4caff1a71","last_modified":1480349195058},{"guid":"{a3a5c777-f583-4fef-9380-ab4add1bc2a8}","prefs":[],"schema":1480349193877,"blockID":"i142","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=792132","who":"Todos los usuarios de Firefox que instalaron la versi\u00f3n 4.2 del complemento Cuevana Stream.\r\n\r\nAll Firefox users who have installed version 4.2 of the Cuevana Stream add-on.","why":"Espa\u00f1ol\r\nUna versi\u00f3n maliciosa del complemento Cuevana Stream (4.2) fue colocada en el sitio Cuevana y distribuida a muchos usuarios del sitio. Esta versi\u00f3n recopila informaci\u00f3n de formularios web y los env\u00eda a una direcci\u00f3n remota con fines maliciosos. Se le recomienda a todos los usuarios que instalaron esta versi\u00f3n que cambien sus contrase\u00f1as inmediatamente, y que se actualicen a la nueva versi\u00f3n segura, que es la 4.3.\r\n\r\nEnglish\r\nA malicious version of the Cuevana Stream add-on (4.2) was uploaded to the Cuevana website and distributed to many of its users. This version takes form data and sends it to a remote location with malicious intent. It is recommended that all users who installed this version to update their passwords immediately, and update to the new safe version, version 4.3.\r\n\r\n","name":"Cuevana Stream (malicious version)","created":"2012-09-18T13:37:47Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"4.2","minVersion":"4.2","targetApplication":[]}],"id":"91e551b9-7e94-60e2-f1bd-52f25844ab16","last_modified":1480349195007},{"guid":"{34712C68-7391-4c47-94F3-8F88D49AD632}","prefs":[],"schema":1480349193877,"blockID":"i922","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1173154","who":"All Firefox users who have this add-on installed in Firefox 39 and above.\r\n","why":"Certain versions of this extension are causing startup crashes in Firefox 39 and above.\r\n","name":"RealPlayer Browser Record Plugin","created":"2015-06-09T15:27:31Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"39.0a1"}]}],"id":"dd350efb-34ac-2bb5-5afd-eed722dbb916","last_modified":1480349194976},{"guid":"PDVDZDW52397720@XDDWJXW57740856.com","prefs":["browser.startup.homepage","browser.search.defaultenginename"],"schema":1480349193877,"blockID":"i846","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128320","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and attempts to change user settings like the home page and default search, in violation of the Add-on Guidelines.","name":"Ge-Force","created":"2015-02-06T15:03:39Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c33e950c-c977-ed89-c86a-3be8c4be1967","last_modified":1480349194949},{"guid":"{977f3b97-5461-4346-92c8-a14c749b77c9}","prefs":[],"schema":1480349193877,"blockID":"i69","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=729356","who":"All Firefox users who have this add-on installed.","why":"This add-on adds apps to users' accounts, with full access permissions, and sends spam posts using these apps, all without any consent from users.","name":"Zuperface+","created":"2012-02-22T16:41:23Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f105bdc7-7ebd-587c-6344-1533249f50b3","last_modified":1480349194919},{"guid":"discoverypro@discoverypro.com","prefs":[],"schema":1480349193877,"blockID":"i582","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1004231","who":"All Firefox users who have this add-on installed. If you wish to continue using this add-on, you can enabled it in the Add-ons Manager.","why":"This add-on is silently installed by the CNET installer for MP3 Rocket and probably other software packages. This is in violation of the Add-on Guidelines.","name":"Website Discovery Pro","created":"2014-04-30T16:10:03Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"34eab242-6fbc-a459-a89e-0dc1a0b8355d","last_modified":1480349194878},{"guid":"jid1-bKSXgRwy1UQeRA@jetpack","prefs":[],"schema":1480349193877,"blockID":"i680","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=979856","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into user's systems, in violation of the Add-on Guidelines.","name":"Trusted Shopper","created":"2014-08-01T16:34:01Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f701b790-b266-c69d-0fba-f2d189cb0f34","last_modified":1480349194851},{"guid":"bcVX5@nQm9l.org","prefs":[],"schema":1480349193877,"blockID":"i848","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128266","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the Add-on Guidelines.","name":"boomdeal","created":"2015-02-09T15:21:17Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"f8d6d4e1-b9e6-07f5-2b49-192106a45d82","last_modified":1480349194799},{"guid":"aytac@abc.com","prefs":[],"schema":1480349193877,"blockID":"i504","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947341","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks users' Facebook accounts.","name":"Facebook Haber (malware)","created":"2013-12-06T12:07:58Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"bfaf8298-dd69-165c-e1ed-ad55584abd18","last_modified":1480349194724},{"guid":"Adobe@flash.com","prefs":[],"schema":1480349193877,"blockID":"i136","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=790100","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware posing as a legitimate Adobe product.","name":"Adobe Flash (malware)","created":"2012-09-10T16:09:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"47ac744e-3176-5cb6-1d02-b460e0c7ada0","last_modified":1480349194647},{"guid":"{515b2424-5911-40bd-8a2c-bdb20286d8f5}","prefs":[],"schema":1480349193877,"blockID":"i491","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=940753","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted.","name":"Connect DLC","created":"2013-11-29T14:52:24Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"6d658443-b34a-67ad-934e-cbf7cd407460","last_modified":1480349194580},{"guid":"/^({3f3cddf8-f74d-430c-bd19-d2c9147aed3d}|{515b2424-5911-40bd-8a2c-bdb20286d8f5}|{17464f93-137e-4646-a0c6-0dc13faf0113}|{d1b5aad5-d1ae-4b20-88b1-feeaeb4c1ebc}|{aad50c91-b136-49d9-8b30-0e8d3ead63d0})$/","prefs":[],"schema":1480349193877,"blockID":"i516","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947478","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by making changes that can't be easily reverted and being distributed under multiple add-on IDs.","name":"Connect DLC","created":"2013-12-20T12:38:20Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"96f8e157-8b8b-8e2e-76cd-6850599b4370","last_modified":1480349194521},{"guid":"wxtui502n2xce9j@no14","prefs":[],"schema":1480349193877,"blockID":"i1012","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1206157","who":"All users who have this add-on installed.","why":"This is a malicious add-on that takes over Facebook accounts.","name":"Video fix (malware)","created":"2015-09-21T13:04:09Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"246798ac-25fa-f4a4-258c-a71f9f6ae091","last_modified":1480349194463},{"guid":"flashX@adobe.com","prefs":[],"schema":1480349193877,"blockID":"i168","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=807052","who":"All Firefox users who have this add-on installed.","why":"This is an exploit proof-of-concept created for a conference presentation, which will probably be copied and modified for malicious purposes. \r\n","name":"Zombie Browser Pack","created":"2012-10-30T12:07:41Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d7c69812-801c-8d8e-12cb-c5171bdc48a1","last_modified":1480349194428},{"guid":"/^(ff\\-)?dodate(kKKK|XkKKK|k|kk|kkx|kR)@(firefox|flash(1)?)\\.pl|dode(ee)?k@firefoxnet\\.pl|(addon|1)@upsolutions\\.pl$/","prefs":[],"schema":1480349193877,"blockID":"i1278","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1312748","who":"Any user with a version of this add-on installed.","why":"This add-on claims to be a flash plugin and it does some work on youtube, but it also steals your facebook and adfly credentials and sends them to a remote server.","name":"Aktualizacja dodatku Flash Add-on","created":"2016-10-27T10:52:53Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"389aec65-a15d-8276-c7a8-691ac283c9f1","last_modified":1480349194386},{"guid":"tmbepff@trendmicro.com","prefs":[],"schema":1480349193877,"blockID":"i1223","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1275245","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"Add-on is causing a high-frequency crash in Firefox.","name":"Trend Micro BEP 9.2 to 9.2.0.1023","created":"2016-05-30T17:07:04Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"9.2.0.1023","minVersion":"9.2","targetApplication":[]}],"id":"46f75b67-2675-bdde-be93-7ea03475d405","last_modified":1480349194331},{"guid":"{4889ddce-7a83-45e6-afc9-1e4f1149fff4}","prefs":[],"schema":1480343836083,"blockID":"i840","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1128327","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed and performs unwanted actions, in violation of the Add-on Guidelines.","name":"Cyti Web (malware)","created":"2015-02-06T14:30:06Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"be600f35-0633-29f3-c571-819e19d85db9","last_modified":1480349193867},{"guid":"{55dce8ba-9dec-4013-937e-adbf9317d990","prefs":[],"schema":1480343836083,"blockID":"i690","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1048647","who":"All Firefox users. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is being silently installed in users' systems, in violation of the Add-on Guidelines.","name":"Deal Keeper","created":"2014-08-12T16:23:46Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"512b0d40-a10a-5ddc-963b-b9c487eb1422","last_modified":1480349193833},{"guid":"/^new@kuot\\.pro|{13ec6687-0b15-4f01-a5a0-7a891c18e4ee}|rebeccahoppkins(ty(tr)?)?@gmail\\.com|{501815af-725e-45be-b0f2-8f36f5617afc}|{9bdb5f1f-b1e1-4a75-be31-bdcaace20a99}|{e9d93e1d-792f-4f95-b738-7adb0e853b7b}|dojadewaskurwa@gmail\\.com$/","prefs":[],"schema":1480343836083,"blockID":"i1414","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1312748","who":"All users who have this add-on installed.","why":"This add-on claims to be a flash plugin and it does some work on youtube, but it also steals your facebook and adfly credentials and sends them to a remote server.","name":"Aktualizacja dodatku Flash (malware)","created":"2016-10-28T18:06:03Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"5cebc983-bc88-d5f8-6807-bd1cbfcd82fd","last_modified":1480349193798},{"guid":"/^pink@.*\\.info$/","prefs":[],"schema":1480343836083,"blockID":"i238","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=806543","who":"All Firefox users (Firefox 19 and above) who have any of these add-ons installed.","why":"This is a set of malicious add-ons that affect many users and are installed without their consent.","name":"Pink add-ons (malware)","created":"2012-12-07T13:46:20Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[{"guid":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","maxVersion":"*","minVersion":"18.0"}]}],"id":"0d964264-8bd6-b78d-3c6c-92046c7dc8d0","last_modified":1480349193764},{"guid":"{58d2a791-6199-482f-a9aa-9b725ec61362}","prefs":[],"schema":1480343836083,"blockID":"i746","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=963787","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' systems, in violation of the Add-on Guidelines.","name":"Start Page","created":"2014-10-17T16:01:53Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"8ebbc7d0-635c-b74a-de9f-16eb5837b36a","last_modified":1480349193730},{"guid":"{94cd2cc3-083f-49ba-a218-4cda4b4829fd}","prefs":[],"schema":1480343836083,"blockID":"i590","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1013678","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is silently installed into users' profiles, in violation of the Add-on Guidelines.","name":"Value Apps","created":"2014-06-03T16:12:50Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"556b8d4d-d6c2-199d-9f33-8eccca07e8e7","last_modified":1480349193649},{"guid":"contentarget@maildrop.cc","prefs":[],"schema":1480343836083,"blockID":"i818","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1119971","who":"All Firefox users who have this add-on installed.","why":"This is a malicious extension that hijacks Facebook accounts.","name":"Astro Play (malware)","created":"2015-01-12T09:29:19Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"440e9923-027a-6089-e036-2f78937dc193","last_modified":1480349193622},{"guid":"unblocker30__web@unblocker.yt","prefs":[],"schema":1480343836083,"blockID":"i1228","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"This add-on is a copy of YouTube Unblocker, which was originally blocked due to malicious activity.","name":"YouTube Unblocker 3.0","created":"2016-06-01T15:17:22Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"2d83e640-ef9d-f260-f5a3-a1a5c8390bfc","last_modified":1480349193595},{"guid":"noOpus@outlook.com","prefs":[],"schema":1480343836083,"blockID":"i816","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1119659","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems without their consent and performs unwanted operations.","name":"Full Screen (malware)","created":"2015-01-09T12:52:32Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b64d7cef-8b6c-2575-16bc-732fca7db377","last_modified":1480349193537},{"guid":"{c95a4e8e-816d-4655-8c79-d736da1adb6d}","prefs":[],"schema":1480343836083,"blockID":"i433","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=844945","who":"All Firefox users who have this add-on installed.","why":"This add-on bypasses the external install opt in screen in Firefox, violating the Add-on Guidelines. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","name":"Hotspot Shield","created":"2013-08-09T11:25:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b3168278-a8ae-4882-7f26-355bc362bed0","last_modified":1480349193510},{"guid":"{9802047e-5a84-4da3-b103-c55995d147d1}","prefs":[],"schema":1480343836083,"blockID":"i722","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1073810","who":"All Firefox users who have this add-on installed.","why":"This add-on is silently installed into users' systems. It uses very unsafe practices to load its code, and leaks information of all web browsing activity. These are all violations of the Add-on Guidelines.","name":"Web Finder Pro","created":"2014-10-07T12:58:14Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"50097c29-26b1-bf45-ffe1-83da217eb127","last_modified":1480349193482},{"guid":"/^({bf9194c2-b86d-4ebc-9b53-1c08b6ff779e}|{61a83e16-7198-49c6-8874-3e4e8faeb4f3}|{f0af464e-5167-45cf-9cf0-66b396d1918c}|{5d9968c3-101c-4944-ba71-72d77393322d}|{01e86e69-a2f8-48a0-b068-83869bdba3d0})$/","prefs":[],"schema":1480343836083,"blockID":"i515","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=947473","who":"All Firefox users who have this add-on installed. Users who wish to continue using it can enable it in the Add-ons Manager.","why":"The installer that includes this add-on violates the Add-on Guidelines by using multiple add-on IDs and making unwanted settings changes.","name":"VisualBee Toolbar","created":"2013-12-20T12:26:49Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"029fa6f9-2351-40b7-5443-9a66e057f199","last_modified":1480349193449},{"guid":"/^({d50bfa5f-291d-48a8-909c-5f1a77b31948}|{d54bc985-6e7b-46cd-ad72-a4a266ad879e}|{d89e5de3-5543-4363-b320-a98cf150f86a}|{f3465017-6f51-4980-84a5-7bee2f961eba}|{fae25f38-ff55-46ea-888f-03b49aaf8812})$/","prefs":[],"schema":1480343836083,"blockID":"i1137","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251940","who":"All users who have this add-on installed.","why":"This is a malicious add-on that hides itself from view and disables various security features in Firefox.","name":"Watcher (malware)","created":"2016-03-04T17:56:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"252e18d0-85bc-7bb3-6197-5f126424c9b3","last_modified":1480349193419},{"guid":"ffxtlbr@claro.com","prefs":[],"schema":1480343836083,"blockID":"i218","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=816762","who":"All Firefox users who have installed this add-on.","why":"The Claro Toolbar is side-installed with other software, unexpectedly changing users' settings and then making it impossible for these settings to be reverted by users.","name":"Claro Toolbar","created":"2012-11-29T16:07:00Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"e017a3b2-9b37-b8a0-21b0-bc412ae8a7f4","last_modified":1480349193385},{"guid":"/^(.*@(unblocker\\.yt|sparpilot\\.com))|(axtara@axtara\\.com)$/","prefs":[],"schema":1480343836083,"blockID":"i1229","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1251911","who":"All users who have this add-on installed.","why":"These add-ons are copies of YouTube Unblocker, which was originally blocked due to malicious activity.","name":"YouTube Unblocker (various)","created":"2016-06-03T15:28:39Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"c677cc5d-5b1e-8aa2-5cea-5a8dddce2ecf","last_modified":1480349193344},{"guid":"/^(j003-lqgrmgpcekslhg|SupraSavings|j003-dkqonnnthqjnkq|j003-kaggrpmirxjpzh)@jetpack$/","prefs":[],"schema":1480343836083,"blockID":"i692","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1048656","who":"All Firefox users who have this add-on installed. Users who wish to continue using this add-on can enable it in the Add-ons Manager.","why":"This add-on is being silently installed in users' systems, in violation of the Add-on Guidelines.","name":"SupraSavings","created":"2014-08-12T16:27:06Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"b0d30256-4581-1489-c241-d2e85b6c38f4","last_modified":1480349193295},{"guid":"helperbar@helperbar.com","prefs":[],"schema":1480343836083,"blockID":"i258","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=817786","who":"All Firefox users who have this add-on installed. This only applies to version 1.0 of Snap.do. Version 1.1 fixed all the issues for which this block was created.","why":"This extension violates a number of our Add-on Guidelines, particularly on installation and settings handling. It also causes some stability problems in Firefox due to the way the toolbar is handled.\r\n\r\nUsers who wish to keep the add-on enabled can enable it again in the Add-ons Manager.","name":"Snap.do","created":"2013-01-28T13:52:26Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"1.0","minVersion":"0","targetApplication":[]}],"id":"f1ede5b8-7757-5ec5-d8ed-1a01889154aa","last_modified":1480349193254},{"guid":"/^((support2_en@adobe14\\.com)|(XN4Xgjw7n4@yUWgc\\.com)|(C7yFVpIP@WeolS3acxgS\\.com)|(Kbeu4h0z@yNb7QAz7jrYKiiTQ3\\.com)|(aWQzX@a6z4gWdPu8FF\\.com)|(CBSoqAJLYpCbjTP90@JoV0VMywCjsm75Y0toAd\\.com)|(zZ2jWZ1H22Jb5NdELHS@o0jQVWZkY1gx1\\.com))$/","prefs":[],"schema":1480343836083,"blockID":"i326","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=841791","who":"All users who have this add-on installed.","why":"This extension is malware, installed pretending to be the Flash Player plugin.","name":"Flash Player (malware)","created":"2013-03-22T14:49:08Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"3142020b-8af9-1bac-60c5-ce5ad0ff3d42","last_modified":1480349193166},{"guid":"newmoz@facebook.com","prefs":[],"schema":1480343836083,"blockID":"i576","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=997986","who":"All Firefox users who have this add-on installed.","why":"This add-on is malware that hijacks Facebook user accounts and sends spam on the user's behalf.","name":"Facebook Service Pack (malware)","created":"2014-04-22T14:34:42Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"d85798d3-9b87-5dd9-ace2-64914b93df77","last_modified":1480349193114},{"guid":"flvto@hotger.com","prefs":[],"schema":1480343836083,"blockID":"i1211","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=1270175","who":"All users of this add-on. If you wish to continue using it, you can enable it in the Add-ons Manager.","why":"This add-on reports every visited URL to a third party without disclosing it to the user.","name":"YouTube to MP3 Button","created":"2016-05-04T16:26:32Z"},"enabled":true,"versionRange":[{"severity":1,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"a14d355f-719f-3b97-506c-083cc97cebaa","last_modified":1480349193088},{"guid":"{0F827075-B026-42F3-885D-98981EE7B1AE}","prefs":[],"schema":1480343836083,"blockID":"i334","details":{"bug":"https://bugzilla.mozilla.org/show_bug.cgi?id=862272","who":"All Firefox users who have this extension installed.","why":"This extension is malicious and is installed under false pretenses, causing problems for many Firefox users. Note that this is not the same BrowserProtect extension that is listed on our add-ons site. That one is safe to use.","name":"Browser Protect / bProtector (malware)","created":"2013-04-16T13:25:01Z"},"enabled":true,"versionRange":[{"severity":3,"maxVersion":"*","minVersion":"0","targetApplication":[]}],"id":"aad4545f-8f9d-dd53-2aa8-e8945cad6185","last_modified":1480349192987}]} \ No newline at end of file From 353ff80190b152b549ed59d2b47ae2c11649258c Mon Sep 17 00:00:00 2001 From: Robert Helmer Date: Wed, 20 Jun 2018 17:21:01 -0700 Subject: [PATCH 17/34] Bug 1421501 - add vendored libprio from https://github.com/mozilla/libprio r=fkiefer MozReview-Commit-ID: LjbKuuFAMAv --HG-- extra : rebase_source : 208e008a3ff09d1f0a5575b81bf31262d9968cac --- third_party/prio/LICENSE | 373 + third_party/prio/README-mozilla | 17 + third_party/prio/README.md | 136 + third_party/prio/SConstruct | 41 + third_party/prio/browser-test/SConscript | 19 + third_party/prio/browser-test/encode-once.js | 45 + third_party/prio/browser-test/main.c | 319 + third_party/prio/include/mprio.h | 273 + third_party/prio/pclient/SConscript | 18 + third_party/prio/pclient/main.c | 229 + third_party/prio/prio/SConscript | 29 + third_party/prio/prio/client.c | 353 + third_party/prio/prio/client.h | 74 + third_party/prio/prio/config.c | 132 + third_party/prio/prio/config.h | 36 + third_party/prio/prio/debug.h | 21 + third_party/prio/prio/encrypt.c | 355 + third_party/prio/prio/encrypt.h | 74 + third_party/prio/prio/gen_params.py | 90 + third_party/prio/prio/mparray.c | 196 + third_party/prio/prio/mparray.h | 71 + third_party/prio/prio/params.h | 8226 ++++++++++++++++++ third_party/prio/prio/poly.c | 188 + third_party/prio/prio/poly.h | 59 + third_party/prio/prio/prg.c | 156 + third_party/prio/prio/prg.h | 62 + third_party/prio/prio/rand.c | 132 + third_party/prio/prio/rand.h | 54 + third_party/prio/prio/serial.c | 442 + third_party/prio/prio/serial.h | 21 + third_party/prio/prio/server.c | 481 + third_party/prio/prio/server.h | 60 + third_party/prio/prio/share.c | 108 + third_party/prio/prio/share.h | 51 + third_party/prio/prio/util.h | 102 + third_party/prio/ptest/MUTEST_LICENSE | 30 + third_party/prio/ptest/SConscript | 44 + third_party/prio/ptest/client_test.c | 160 + third_party/prio/ptest/encrypt_test.c | 228 + third_party/prio/ptest/example_test.c | 21 + third_party/prio/ptest/fft_test.c | 170 + third_party/prio/ptest/mkmutest | 65 + third_party/prio/ptest/mpi_test.c | 38 + third_party/prio/ptest/mutest.c | 94 + third_party/prio/ptest/mutest.h | 248 + third_party/prio/ptest/prg_test.c | 345 + third_party/prio/ptest/rand_test.c | 194 + third_party/prio/ptest/serial_test.c | 319 + third_party/prio/ptest/server_test.c | 298 + third_party/prio/ptest/share_test.c | 91 + third_party/prio/update.sh | 32 + 51 files changed, 15420 insertions(+) create mode 100644 third_party/prio/LICENSE create mode 100644 third_party/prio/README-mozilla create mode 100644 third_party/prio/README.md create mode 100644 third_party/prio/SConstruct create mode 100644 third_party/prio/browser-test/SConscript create mode 100644 third_party/prio/browser-test/encode-once.js create mode 100644 third_party/prio/browser-test/main.c create mode 100644 third_party/prio/include/mprio.h create mode 100644 third_party/prio/pclient/SConscript create mode 100644 third_party/prio/pclient/main.c create mode 100644 third_party/prio/prio/SConscript create mode 100644 third_party/prio/prio/client.c create mode 100644 third_party/prio/prio/client.h create mode 100644 third_party/prio/prio/config.c create mode 100644 third_party/prio/prio/config.h create mode 100644 third_party/prio/prio/debug.h create mode 100644 third_party/prio/prio/encrypt.c create mode 100644 third_party/prio/prio/encrypt.h create mode 100644 third_party/prio/prio/gen_params.py create mode 100644 third_party/prio/prio/mparray.c create mode 100644 third_party/prio/prio/mparray.h create mode 100644 third_party/prio/prio/params.h create mode 100644 third_party/prio/prio/poly.c create mode 100644 third_party/prio/prio/poly.h create mode 100644 third_party/prio/prio/prg.c create mode 100644 third_party/prio/prio/prg.h create mode 100644 third_party/prio/prio/rand.c create mode 100644 third_party/prio/prio/rand.h create mode 100644 third_party/prio/prio/serial.c create mode 100644 third_party/prio/prio/serial.h create mode 100644 third_party/prio/prio/server.c create mode 100644 third_party/prio/prio/server.h create mode 100644 third_party/prio/prio/share.c create mode 100644 third_party/prio/prio/share.h create mode 100644 third_party/prio/prio/util.h create mode 100644 third_party/prio/ptest/MUTEST_LICENSE create mode 100644 third_party/prio/ptest/SConscript create mode 100644 third_party/prio/ptest/client_test.c create mode 100644 third_party/prio/ptest/encrypt_test.c create mode 100644 third_party/prio/ptest/example_test.c create mode 100644 third_party/prio/ptest/fft_test.c create mode 100755 third_party/prio/ptest/mkmutest create mode 100644 third_party/prio/ptest/mpi_test.c create mode 100644 third_party/prio/ptest/mutest.c create mode 100644 third_party/prio/ptest/mutest.h create mode 100644 third_party/prio/ptest/prg_test.c create mode 100644 third_party/prio/ptest/rand_test.c create mode 100644 third_party/prio/ptest/serial_test.c create mode 100644 third_party/prio/ptest/server_test.c create mode 100644 third_party/prio/ptest/share_test.c create mode 100644 third_party/prio/update.sh diff --git a/third_party/prio/LICENSE b/third_party/prio/LICENSE new file mode 100644 index 000000000000..a612ad9813b0 --- /dev/null +++ b/third_party/prio/LICENSE @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/third_party/prio/README-mozilla b/third_party/prio/README-mozilla new file mode 100644 index 000000000000..24bb4454e7b2 --- /dev/null +++ b/third_party/prio/README-mozilla @@ -0,0 +1,17 @@ +This directory contains the Prio source from the upstream repo: +https://github.com/mozilla/libprio + +Current version: 1.0 [commit c1c6afd1683e27d823f39eb8fbe4b8469cc5bbf6] + +UPDATING: + +Our in-tree copy of Prio does not depend on any generated files from the +upstream build system. Therefore, it should be sufficient to simply overwrite +the in-tree files one the updated ones from upstream to perform updates. + +To simplify this, the in-tree copy can be updated by running + sh update.sh +from within the third_party/libprio directory. + +If the collection of source files changes, manual updates to moz.build may be +needed as we don't use the upstream makefiles. \ No newline at end of file diff --git a/third_party/prio/README.md b/third_party/prio/README.md new file mode 100644 index 000000000000..6b449d4e4585 --- /dev/null +++ b/third_party/prio/README.md @@ -0,0 +1,136 @@ +# libprio - A Prio library in C using NSS + +**Warning:** +We do our best to write bug-free code, but I have no doubt +that there are scary bugs, side-channel attacks, and memory leaks +lurking herein. + +**Important:** +We have not yet implemented the items +described in the "Security-Critical TODOs" section below. +Without these features, do not use the code in a production environment. + + +## Overview + +This is an implementation of the core cryptographic routines +for the [Prio system](https://crypto.stanford.edu/prio/) +for the private computation of aggregate statistics: +> "Prio: Private, Robust, and Scalable Computation of Aggregate Statistics"
+> by Henry Corrigan-Gibbs and Dan Boneh
+> USENIX Symposium on Networked Systems Design and Implementation
+> March 2017 +> +> Available online at: +> https://crypto.stanford.edu/prio/ + +**Usage scenario.** +The library implements the cryptographic routines necessary +for the following application scenario: +Each client holds a vector of boolean values. +Each client uses the library to encode her private vector into two +encoded packets—one for server A and one for server B. + +After receiving shares from a client, the servers can use the routines +implemented here to check whether the client-provided packets are +well formed. +(Without this check, a single malicious client can corrupt the +output of the computation.) + +After collecting data packets from many clients, the servers +can combine their state to learn how many clients had the +*i*th bit of their data vector set to `true` and how many +clients had the *i*th bit of their data vector set to `false`. +As long as at least one of the two servers is honest +(i.e., runs the correct code), +the servers learn *nothing else* about the clients' data, +under standard cryptographic assumptions. + +For example, the *i*th bit of the data vector could indicate +whether the client ever visited the *i*th-ranked website +in the Alexa Top 500. +The servers would learn how many clients visited each of the +Top 500 websites *without learning* which clients visited +which websites. + +**Efficiency considerations.** +The code makes no use of public-key crypto, so it should +be relatively fast. +When each a data packet is of length *N*, +all arithmetic is modulo a prime *p* (we use an 87-bit prime by default), +and "elements" are integers modulo *p*, +the dominant costs of the system are: +* **Client compute:** O(*N* log *N*) multiplications +* **Client-to-server communication:** 2*N* + O(1) elements
+* **Server compute:** O(*N* log *N*) multiplications to check each packet
+ (NOTE: Using an optimization we haven't yet implemented, we can + drop this cost to O(*N*) multiplications per packet.) +* **Server-to-server communication:** O(1) elements +* **Server storage:** O(*N*) elements + +## Running the code + +You must first install +[NSS/NSPR](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS), +[scons](http://scons.org/), and +[msgpack-c](https://github.com/msgpack/msgpack-c) version 2.1.5 (or newer?). +On Ubuntu, you can instal NSS and scons with: + + $ sudo apt install scons libnspr4-dev libnss3-dev + +and you will have to download [msgpack-c 2.1.5 or newer here](https://github.com/msgpack/msgpack-c/releases), +since the Ubuntu packages for msgpack are far out of date. + +For macOS using Homebrew: + $ brew install nss nspr scons msgpack + + $ export LDFLAGS="-L/usr/local/opt/nss/lib" + $ export CPPFLAGS="-I/usr/local/opt/nss/include -I/usr/local/opt/nspr/include/nspr" + +To compile the code, run: + + $ scons + +To run the test suite, execute: + + $ build/ptest/ptest -v + +To print debug messages while compiling: + + $ scons VERBOSE=1 + +To compile with debug symbols, run: + + $ scons BUILDTYPE=DEBUG + +To clean up the object and binary files, run: + + $ scons -c + +The files in this directory are: +```` +/build - Binaries, object files, etc. +/include - Exported header files + (Note: The public header is since + NSPR already has a file called .) +/mpi - NSS MPI bignum library +/pclient - Example code that uses the Prio library +/prio - Prio library core code +/ptest - Tests and test runner +```` + +## Optimizations and features not yet implemented +* **Server compute.** + By using a fast polynomial interpolation-and-evaluation + routine, we can reduce the cost of checking a single client + request from O(*N* log *N*) multiplications down to O(*N*) + multiplications, for a data packet of *N* items. +* **Differential privacy.** + It would be very straightforward to add some small amount of + noise to the final statistics to provide differential privacy. + If this would be useful, I can add it. +* **Misc.** + There are TODO notes scattered throughout code indicating + places for potential performance optimizations. + + diff --git a/third_party/prio/SConstruct b/third_party/prio/SConstruct new file mode 100644 index 000000000000..43e7a1cac483 --- /dev/null +++ b/third_party/prio/SConstruct @@ -0,0 +1,41 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import os +import SCons + +opts = Variables() +opts.AddVariables( + BoolVariable("DEBUG", "Make debug build", 1), + BoolVariable("VERBOSE", "Show full build information", 0)) + +env = Environment(options = opts, + ENV = os.environ) +if "CFLAGS" in os.environ: + env.Append(CFLAGS = SCons.Util.CLVar(os.getenv("CFLAGS"))) +if "CPPFLAGS" in os.environ: + env.Append(CPPFLAGS = SCons.Util.CLVar(os.getenv("CPPFLAGS"))) +if "CXXFLAGS" in os.environ: + env.Append(CXXFLAGS = SCons.Util.CLVar(os.getenv("CXXFLAGS"))) +if "LDFLAGS" in os.environ: + env.Append(LINKFLAGS = SCons.Util.CLVar(os.getenv("LDFLAGS"))) + +if env["DEBUG"]: + print "DEBUG MODE!" + env.Append(CPPFLAGS = [ "-g", "-DDEBUG"]) + +env.Append(LIBS = ["mprio", "mpi", "nss3", "nspr4"], \ + LIBPATH = ['#build/prio', "#build/mpi"], + CFLAGS = [ "-Wall", "-Werror", "-Wextra", "-O3", "-std=c99", + "-I/usr/include/nspr", "-Impi", "-DDO_PR_CLEANUP"]) + +env.Append(CPPPATH = ["#include", "#."]) +Export('env') + +SConscript('browser-test/SConscript', variant_dir='build/browser-test') +SConscript('mpi/SConscript', variant_dir='build/mpi') +SConscript('pclient/SConscript', variant_dir='build/pclient') +SConscript('prio/SConscript', variant_dir='build/prio') +SConscript('ptest/SConscript', variant_dir='build/ptest') + diff --git a/third_party/prio/browser-test/SConscript b/third_party/prio/browser-test/SConscript new file mode 100644 index 000000000000..183f1c378b60 --- /dev/null +++ b/third_party/prio/browser-test/SConscript @@ -0,0 +1,19 @@ +import sys + +Import('env') + +prio_env = env.Clone() + +src = [ + "main.c", +] + +libs = [ + "mprio", + "msgpackc", +] + +prio_env.Append(LIBS = libs) +prio_env.Install("encode-once.js") +prio_env.Program("browser-test", src) + diff --git a/third_party/prio/browser-test/encode-once.js b/third_party/prio/browser-test/encode-once.js new file mode 100644 index 000000000000..c2a444e16ef4 --- /dev/null +++ b/third_party/prio/browser-test/encode-once.js @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +ChromeUtils.import('resource://gre/modules/Services.jsm'); + +let [publicKeyA, publicKeyB, batchID, param1, param2, param3] = arguments; + +Services.prefs.setStringPref('prio.publicKeyA', publicKeyA); +Services.prefs.setStringPref('prio.publicKeyB', publicKeyB); + +async function test() { + let params = { + 'browserIsUserDefault': Number(param1), + 'safeModeUsage': Number(param2), + 'startupCrashDetected': Number(param3) + }; + + try { + let result = await PrioEncoder.encode(batchID, params); + + const toTypedArray = byteString => { + let u8Array = new Uint8Array(byteString.length); + for (let i in byteString) { + u8Array[i] = byteString.charCodeAt(i); + } + return u8Array; + } + + const toHexString = bytes => + bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0') + ',', ''); + + console.log(toHexString(toTypedArray(result.a)) + '$' + toHexString(toTypedArray(result.b))); + console.log(''); + } catch(e) { + console.log('Failure.', e); + console.log(v); + } +} + +test().then(); diff --git a/third_party/prio/browser-test/main.c b/third_party/prio/browser-test/main.c new file mode 100644 index 000000000000..c121899f5c30 --- /dev/null +++ b/third_party/prio/browser-test/main.c @@ -0,0 +1,319 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#define _GNU_SOURCE + +#include +#include +#include +#include + +#include "prio/encrypt.h" +#include "prio/util.h" + +static void +init_data (bool *data, int datalen) +{ + // The client's data submission is an arbitrary boolean vector. + for (int i=0; i < datalen; i++) { + // Arbitrary data + data[i] = rand () % 2; + } +} + +static SECStatus +read_string_from_hex (unsigned char **str_out, unsigned int *strLen, + const char *input, const char **new_input) +{ + SECStatus rv = SECSuccess; + *strLen = 0; + int read = 0; + int outCount = 0; + const char *inp = input; + + while (true) { + unsigned char byte = '\0'; + const int retval = sscanf(inp, "%02hhx,%n", &byte, &read); + if (retval < 1 || read != 3) { + break; + } + + inp += read; + (*str_out)[outCount] = byte; + outCount++; + *strLen = *strLen + 1; + } + + if (new_input) + *new_input = inp + 1; + + return rv; +} + +static SECStatus +read_browser_reply (FILE *infile, + unsigned char **for_server_a, unsigned int *aLen, + unsigned char **for_server_b, unsigned int *bLen) +{ + SECStatus rv = SECFailure; + char *raw_input = NULL; + size_t rawLen = 0; + + puts ("Getting line of input."); + P_CHECKCB (getline (&raw_input, &rawLen, infile) > 0); + puts ("Got line of input."); + + P_CHECKA (*for_server_a = malloc (rawLen * sizeof (unsigned char))); + P_CHECKA (*for_server_b = malloc (rawLen * sizeof (unsigned char))); + + *aLen = 0; + *bLen = 0; + + P_CHECKCB (rawLen > 14); + + // Header is 14 chars long + const char *new_input; + puts ("Reading string A"); + P_CHECKC (read_string_from_hex (for_server_a, aLen, raw_input + 14, &new_input)); + puts ("Read string A"); + + // Skip over for_server_a string and one-char delimeter + puts ("Reading string B"); + P_CHECKC (read_string_from_hex (for_server_b, bLen, new_input, NULL)); + puts ("Read string B"); + +cleanup: + if (raw_input) free (raw_input); + return rv; +} + +static int +verify_full (const char *path_to_xpcshell, int pathlen) +{ + SECStatus rv = SECSuccess; + + PublicKey pkA = NULL; + PublicKey pkB = NULL; + PrivateKey skA = NULL; + PrivateKey skB = NULL; + + PrioConfig cfg = NULL; + PrioServer sA = NULL; + PrioServer sB = NULL; + PrioVerifier vA = NULL; + PrioVerifier vB = NULL; + PrioPacketVerify1 p1A = NULL; + PrioPacketVerify1 p1B = NULL; + PrioPacketVerify2 p2A = NULL; + PrioPacketVerify2 p2B = NULL; + PrioTotalShare tA = NULL; + PrioTotalShare tB = NULL; + + FILE *shell = NULL; + int cmdlen = pathlen + 2*CURVE25519_KEY_LEN_HEX + 128; + char cmd[cmdlen]; + memset (cmd, 0, cmdlen); + + unsigned char *for_server_a = NULL; + unsigned char *for_server_b = NULL; + + const int seed = rand (); + srand (seed); + printf ("Using srand seed %d\n", seed); + + // Number of different boolean data fields we collect. + const int ndata = 3; + + //unsigned char batch_id_str[] = "abcde"; + unsigned char batch_id_str[32]; + memset (batch_id_str, 0, sizeof batch_id_str); + snprintf ((char *)batch_id_str, sizeof batch_id_str, "%d", rand()); + + bool data_items[ndata]; + unsigned long output[ndata]; + init_data (data_items, ndata); + + // Initialize NSS random number generator. + P_CHECKC (Prio_init ()); + + // Generate keypairs for servers + P_CHECKC (Keypair_new (&skA, &pkA)); + P_CHECKC (Keypair_new (&skB, &pkB)); + + // Export public keys to hex and print to stdout + unsigned char pk_hexA[CURVE25519_KEY_LEN_HEX+1]; + unsigned char pk_hexB[CURVE25519_KEY_LEN_HEX+1]; + P_CHECKC (PublicKey_export_hex (pkA, pk_hexA)); + P_CHECKC (PublicKey_export_hex (pkB, pk_hexB)); + + snprintf (cmd, cmdlen, "%s %s %s %s %s %d %d %d", + path_to_xpcshell, "encode-once.js", + pk_hexA, pk_hexB, batch_id_str, + data_items[0], data_items[1], data_items[2]); + + printf ("> %s\n", cmd); + P_CHECKA (shell = popen(cmd, "r")); + puts("Ran command."); + + // Use the default configuration parameters. + P_CHECKA (cfg = PrioConfig_new (ndata, pkA, pkB, batch_id_str, + strlen ((char *)batch_id_str))); + + PrioPRGSeed server_secret; + P_CHECKC (PrioPRGSeed_randomize (&server_secret)); + + // Initialize two server objects. The role of the servers need not + // be symmetric. In a deployment, we envision that: + // * Server A is the main telemetry server that is always online. + // Clients send their encrypted data packets to Server A and + // Server A stores them. + // * Server B only comes online when the two servers want to compute + // the final aggregate statistics. + P_CHECKA (sA = PrioServer_new (cfg, PRIO_SERVER_A, skA, server_secret)); + P_CHECKA (sB = PrioServer_new (cfg, PRIO_SERVER_B, skB, server_secret)); + + // Initialize empty verifier objects + P_CHECKA (vA = PrioVerifier_new (sA)); + P_CHECKA (vB = PrioVerifier_new (sB)); + + // Initialize shares of final aggregate statistics + P_CHECKA (tA = PrioTotalShare_new ()); + P_CHECKA (tB = PrioTotalShare_new ()); + + // Initialize shares of verification packets + P_CHECKA (p1A = PrioPacketVerify1_new ()); + P_CHECKA (p1B = PrioPacketVerify1_new ()); + P_CHECKA (p2A = PrioPacketVerify2_new ()); + P_CHECKA (p2B = PrioPacketVerify2_new ()); + + // I. CLIENT DATA SUBMISSION. + // + // Read in the client data packets + unsigned int aLen = 0, bLen = 0; + + puts ("Reading..."); + P_CHECKC (read_browser_reply (shell, &for_server_a, &aLen, &for_server_b, &bLen)); + printf ("Read reply from browser. LenA: %u, LenB: %u\n", aLen, bLen); + + // II. VALIDATION PROTOCOL. (at servers) + // + // The servers now run a short 2-step protocol to check each + // client's packet: + // 1) Servers A and B broadcast one message (PrioPacketVerify1) + // to each other. + // 2) Servers A and B broadcast another message (PrioPacketVerify2) + // to each other. + // 3) Servers A and B can both determine whether the client's data + // submission is well-formed (in which case they add it to their + // running total of aggregate statistics) or ill-formed + // (in which case they ignore it). + // These messages must be sent over an authenticated channel, so + // that each server is assured that every received message came + // from its peer. + + // Set up a Prio verifier object. + P_CHECKC (PrioVerifier_set_data (vA, for_server_a, aLen)); + P_CHECKC (PrioVerifier_set_data (vB, for_server_b, bLen)); + puts("Imported data."); + + // Both servers produce a packet1. Server A sends p1A to Server B + // and vice versa. + P_CHECKC (PrioPacketVerify1_set_data (p1A, vA)); + P_CHECKC (PrioPacketVerify1_set_data (p1B, vB)); + puts("Set data."); + + // Both servers produce a packet2. Server A sends p2A to Server B + // and vice versa. + P_CHECKC (PrioPacketVerify2_set_data(p2A, vA, p1A, p1B)); + P_CHECKC (PrioPacketVerify2_set_data(p2B, vB, p1A, p1B)); + + // Using p2A and p2B, the servers can determine whether the request + // is valid. (In fact, only Server A needs to perform this + // check, since Server A can just tell Server B whether the check + // succeeded or failed.) + puts ("Checking validity."); + P_CHECKC (PrioVerifier_isValid (vA, p2A, p2B)); + P_CHECKC (PrioVerifier_isValid (vB, p2A, p2B)); + puts ("Are valid."); + + // If we get here, the client packet is valid, so add it to the aggregate + // statistic counter for both servers. + P_CHECKC (PrioServer_aggregate (sA, vA)); + P_CHECKC (PrioServer_aggregate (sB, vB)); + + // The servers repeat the steps above for each client submission. + + // III. PRODUCTION OF AGGREGATE STATISTICS. + // + // After collecting aggregates from MANY clients, the servers can compute + // their shares of the aggregate statistics. + // + // Server B can send tB to Server A. + P_CHECKC (PrioTotalShare_set_data (tA, sA)); + P_CHECKC (PrioTotalShare_set_data (tB, sB)); + + // Once Server A has tA and tB, it can learn the aggregate statistics + // in the clear. + P_CHECKC (PrioTotalShare_final (cfg, output, tA, tB)); + + for (int i=0; i < ndata; i++) { + //printf("output[%d] = %lu\n", i, output[i]); + //printf("data[%d] = %d\n", i, (int)data_items[i]); + P_CHECKCB (output[i] == data_items[i]); + } + + puts ("Success!"); + +cleanup: + if (rv != SECSuccess) { + fprintf (stderr, "Warning: unexpected failure.\n"); + } + + if (for_server_a) free (for_server_a); + if (for_server_b) free (for_server_b); + + PrioTotalShare_clear (tA); + PrioTotalShare_clear (tB); + + PrioPacketVerify2_clear (p2A); + PrioPacketVerify2_clear (p2B); + + PrioPacketVerify1_clear (p1A); + PrioPacketVerify1_clear (p1B); + + PrioVerifier_clear (vA); + PrioVerifier_clear (vB); + + PrioServer_clear (sA); + PrioServer_clear (sB); + PrioConfig_clear (cfg); + + PublicKey_clear (pkA); + PublicKey_clear (pkB); + + PrivateKey_clear (skA); + PrivateKey_clear (skB); + + Prio_clear (); + + return !(rv == SECSuccess); +} + +int +main (int argc, char **argv) +{ + puts("== Prio browser test utility. =="); + puts("(Note: Expects to be run in the same directory as encode-once.js.)"); + if (argc != 2) { + fprintf (stderr, "Usage ./%s \n", argv[0]); + return 1; + } + + return verify_full (argv[1], strlen (argv[1])); +} + diff --git a/third_party/prio/include/mprio.h b/third_party/prio/include/mprio.h new file mode 100644 index 000000000000..fb105da70051 --- /dev/null +++ b/third_party/prio/include/mprio.h @@ -0,0 +1,273 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef __PRIO_H__ +#define __PRIO_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include +#include +#include + +/* Seed for a pseudo-random generator (PRG). */ +#define PRG_SEED_LENGTH AES_128_KEY_LENGTH +typedef unsigned char PrioPRGSeed[PRG_SEED_LENGTH]; + +/* Length of a raw curve25519 public key, in bytes. */ +#define CURVE25519_KEY_LEN 32 + +/* Length of a hex-encoded curve25519 public key, in bytes. */ +#define CURVE25519_KEY_LEN_HEX 64 + +/* + * Type for each of the two servers. + */ +typedef enum { + PRIO_SERVER_A, + PRIO_SERVER_B +} PrioServerId; + +/* + * Opaque types + */ +typedef struct prio_config *PrioConfig; +typedef const struct prio_config *const_PrioConfig; + +typedef struct prio_server *PrioServer; +typedef const struct prio_server *const_PrioServer; + +typedef struct prio_verifier *PrioVerifier; +typedef const struct prio_verifier *const_PrioVerifier; + +typedef struct prio_packet_verify1 *PrioPacketVerify1; +typedef const struct prio_packet_verify1 *const_PrioPacketVerify1; + +typedef struct prio_packet_verify2 *PrioPacketVerify2; +typedef const struct prio_packet_verify2 *const_PrioPacketVerify2; + +typedef struct prio_total_share *PrioTotalShare; +typedef const struct prio_total_share *const_PrioTotalShare; + +typedef SECKEYPublicKey *PublicKey; +typedef const SECKEYPublicKey *const_PublicKey; + +typedef SECKEYPrivateKey *PrivateKey; +typedef const SECKEYPrivateKey *const_PrivateKey; + +/* + * Initialize and clear random number generator state. + * You must call Prio_init() before using the library. + * To avoid memory leaks, call Prio_clear() afterwards. + */ +SECStatus Prio_init (); +void Prio_clear(); + +/* + * PrioConfig holds the system parameters. The two relevant things determined + * by the config object are: + * (1) the number of data fields we are collecting, and + * (2) the modulus we use for modular arithmetic. + * The default configuration uses an 87-bit modulus. + * + * The `batch_id` field specifies which "batch" of aggregate statistics we are + * computing. For example, if the aggregate statistics are computed every 24 + * hours, the `batch_id` might be set to an encoding of the date. The clients + * and servers must all use the same `batch_id` for each run of the protocol. + * Each set of aggregate statistics should use a different `batch_id`. + * + * `PrioConfig_new` does not keep a pointer to the `batch_id` string that the + * caller passes in, so you may free the `batch_id` string as soon as + * `PrioConfig_new` returns. + */ +PrioConfig PrioConfig_new (int n_fields, PublicKey server_a, PublicKey server_b, + const unsigned char *batch_id, unsigned int batch_id_len); +void PrioConfig_clear (PrioConfig cfg); +int PrioConfig_numDataFields (const_PrioConfig cfg); + +/* + * Create a PrioConfig object with no encryption keys. This routine is + * useful for testing, but PrioClient_encode() will always fail when used with + * this config. + */ +PrioConfig PrioConfig_newTest (int n_fields); + + +/* + * We use the PublicKey and PrivateKey objects for public-key encryption. Each + * Prio server has an associated public key, and the clients use these keys to + * encrypt messages to the servers. + */ +SECStatus Keypair_new (PrivateKey *pvtkey, PublicKey *pubkey); + +/* + * Import a new curve25519 public key from the raw bytes given. The key passed in + * as `data` should be of length `CURVE25519_KEY_LEN`. This function allocates + * a new PublicKey object, which the caller must free using `PublicKey_clear`. + */ +SECStatus PublicKey_import (PublicKey *pk, const unsigned char *data, unsigned int dataLen); + +/* + * Import a new curve25519 public key from a hex string that contains only the + * characters 0-9a-fA-F. The hex string passed in as `hex_data` should be of + * length `CURVE25519_KEY_LEN_HEX`. This function allocates a new PublicKey + * object, which the caller must free using `PublicKey_clear`. + */ +SECStatus PublicKey_import_hex (PublicKey *pk, const unsigned char *hex_data, + unsigned int dataLen); + +/* + * Export a curve25519 public key as a raw byte-array. + */ +SECStatus PublicKey_export (const_PublicKey pk, unsigned char data[CURVE25519_KEY_LEN]); + +/* + * Export a curve25519 public key as a NULL-terminated hex string. + */ +SECStatus PublicKey_export_hex (const_PublicKey pk, + unsigned char data[CURVE25519_KEY_LEN_HEX+1]); + + +void PublicKey_clear (PublicKey pubkey); +void PrivateKey_clear (PrivateKey pvtkey); + + +/* + * PrioPacketClient_encode + * + * Takes as input a pointer to an array (`data_in`) of boolean values + * whose length is equal to the number of data fields specified in + * the config. It then encodes the data for servers A and B into a + * string. + * + * NOTE: The caller must free() the strings `for_server_a` and + * `for_server_b` to avoid memory leaks. + */ +SECStatus +PrioClient_encode (const_PrioConfig cfg, const bool *data_in, + unsigned char **for_server_a, unsigned int *aLen, + unsigned char **for_server_b, unsigned int *bLen); + +/* + * Generate a new PRG seed using the NSS global randomness source. + * Use this routine to initialize the secret that the two Prio servers + * share. + */ +SECStatus PrioPRGSeed_randomize (PrioPRGSeed *seed); + +/* + * The PrioServer object holds the state of the Prio servers. + * Pass in the _same_ secret PRGSeed when initializing the two servers. + * The PRGSeed must remain secret to the two servers. + */ +PrioServer PrioServer_new (const_PrioConfig cfg, PrioServerId server_idx, + PrivateKey server_priv, const PrioPRGSeed server_shared_secret); +void PrioServer_clear (PrioServer s); + + +/* + * After receiving a client packet, each of the servers generate + * a PrioVerifier object that they use to check whether the client's + * encoded packet is well formed. + */ +PrioVerifier PrioVerifier_new (PrioServer s); +void PrioVerifier_clear (PrioVerifier v); + +/* + * Read in encrypted data from the client, decrypt it, and prepare to check the + * request for validity. + */ +SECStatus PrioVerifier_set_data (PrioVerifier v, + unsigned char *data, unsigned int dataLen); + +/* + * Generate the first packet that servers need to exchange to verify the + * client's submission. This should be sent over a TLS connection between the + * servers. + */ +PrioPacketVerify1 PrioPacketVerify1_new (void); +void PrioPacketVerify1_clear (PrioPacketVerify1 p1); + +SECStatus PrioPacketVerify1_set_data (PrioPacketVerify1 p1, + const_PrioVerifier v); + +SECStatus PrioPacketVerify1_write (const_PrioPacketVerify1 p, + msgpack_packer *pk); +SECStatus PrioPacketVerify1_read (PrioPacketVerify1 p, + msgpack_unpacker *upk, const_PrioConfig cfg); + +/* + * Generate the second packet that the servers need to exchange to verify the + * client's submission. The routine takes as input the PrioPacketVerify1 + * packets from both server A and server B. + * + * This should be sent over a TLS connection between the servers. + */ +PrioPacketVerify2 PrioPacketVerify2_new (void); +void PrioPacketVerify2_clear (PrioPacketVerify2 p); + +SECStatus PrioPacketVerify2_set_data (PrioPacketVerify2 p2, const_PrioVerifier v, + const_PrioPacketVerify1 p1A, const_PrioPacketVerify1 p1B); + +SECStatus PrioPacketVerify2_write (const_PrioPacketVerify2 p, + msgpack_packer *pk); +SECStatus PrioPacketVerify2_read (PrioPacketVerify2 p, + msgpack_unpacker *upk, const_PrioConfig cfg); + +/* + * Use the PrioPacketVerify2s from both servers to check whether + * the client's submission is well formed. + */ +SECStatus PrioVerifier_isValid (const_PrioVerifier v, + const_PrioPacketVerify2 pA, const_PrioPacketVerify2 pB); + +/* + * Each of the two servers calls this routine to aggregate the data + * submission from a client that is included in the PrioVerifier object. + * + * IMPORTANT: This routine does *not* check the validity of the client's + * data packet. The servers must execute the verification checks + * above before aggregating any client data. + */ +SECStatus PrioServer_aggregate (PrioServer s, PrioVerifier v); + +/* + * After the servers have aggregated data packets from "enough" clients + * (this determines the anonymity set size), each server runs this routine + * to get a share of the aggregate statistics. + */ +PrioTotalShare PrioTotalShare_new (void); +void PrioTotalShare_clear (PrioTotalShare t); + +SECStatus PrioTotalShare_set_data (PrioTotalShare t, const_PrioServer s); + +SECStatus PrioTotalShare_write (const_PrioTotalShare t, + msgpack_packer *pk); +SECStatus PrioTotalShare_read (PrioTotalShare t, + msgpack_unpacker *upk, const_PrioConfig cfg); + +/* + * Read the output data into an array of unsigned longs. You should + * be sure that each data value can fit into a single long and that + * the pointer `output` points to a buffer large enough to store + * one long per data field. + */ +SECStatus PrioTotalShare_final (const_PrioConfig cfg, unsigned long *output, + const_PrioTotalShare tA, const_PrioTotalShare tB); + + +#endif /* __PRIO_H__ */ + +#ifdef __cplusplus +} +#endif diff --git a/third_party/prio/pclient/SConscript b/third_party/prio/pclient/SConscript new file mode 100644 index 000000000000..389deae6171d --- /dev/null +++ b/third_party/prio/pclient/SConscript @@ -0,0 +1,18 @@ +import sys + +Import('env') + +prio_env = env.Clone() + +src = [ + "main.c", +] + +libs = [ + "mprio", + "msgpackc", +] + +prio_env.Append(LIBS = libs) +prio_env.Program("pclient", src) + diff --git a/third_party/prio/pclient/main.c b/third_party/prio/pclient/main.c new file mode 100644 index 000000000000..b30a852ef631 --- /dev/null +++ b/third_party/prio/pclient/main.c @@ -0,0 +1,229 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include +#include +#include + +#include "prio/util.h" + +int +verify_full (void) +{ + SECStatus rv = SECSuccess; + + PublicKey pkA = NULL; + PublicKey pkB = NULL; + PrivateKey skA = NULL; + PrivateKey skB = NULL; + + PrioConfig cfg = NULL; + PrioServer sA = NULL; + PrioServer sB = NULL; + PrioVerifier vA = NULL; + PrioVerifier vB = NULL; + PrioPacketVerify1 p1A = NULL; + PrioPacketVerify1 p1B = NULL; + PrioPacketVerify2 p2A = NULL; + PrioPacketVerify2 p2B = NULL; + PrioTotalShare tA = NULL; + PrioTotalShare tB = NULL; + + unsigned char *for_server_a = NULL; + unsigned char *for_server_b = NULL; + + const unsigned char *batch_id = (unsigned char *)"prio_batch_2018-04-17"; + const unsigned int batch_id_len = strlen ((char *)batch_id); + + // Initialize NSS random number generator. + P_CHECKC (Prio_init ()); + + // Number of different boolean data fields we collect. + const int ndata = 100; + + // Number of clients to simulate. + const int nclients = 10; + + + // New scope to avoid goto weirdness + { + bool data_items[ndata]; + + // Generate keypairs for servers + P_CHECKC (Keypair_new (&skA, &pkA)); + P_CHECKC (Keypair_new (&skB, &pkB)); + + // Use the default configuration parameters. + P_CHECKA (cfg = PrioConfig_new (ndata, pkA, pkB, batch_id, batch_id_len)); + + PrioPRGSeed server_secret; + P_CHECKC (PrioPRGSeed_randomize (&server_secret)); + + // Initialize two server objects. The role of the servers need not + // be symmetric. In a deployment, we envision that: + // * Server A is the main telemetry server that is always online. + // Clients send their encrypted data packets to Server A and + // Server A stores them. + // * Server B only comes online when the two servers want to compute + // the final aggregate statistics. + P_CHECKA (sA = PrioServer_new (cfg, PRIO_SERVER_A, skA, server_secret)); + P_CHECKA (sB = PrioServer_new (cfg, PRIO_SERVER_B, skB, server_secret)); + + // Initialize empty verifier objects + P_CHECKA (vA = PrioVerifier_new (sA)); + P_CHECKA (vB = PrioVerifier_new (sB)); + + // Initialize shares of final aggregate statistics + P_CHECKA (tA = PrioTotalShare_new ()); + P_CHECKA (tB = PrioTotalShare_new ()); + + // Initialize shares of verification packets + P_CHECKA (p1A = PrioPacketVerify1_new ()); + P_CHECKA (p1B = PrioPacketVerify1_new ()); + P_CHECKA (p2A = PrioPacketVerify2_new ()); + P_CHECKA (p2B = PrioPacketVerify2_new ()); + + // Generate client data packets. + for (int c=0; c < nclients; c++) { + + // The client's data submission is an arbitrary boolean vector. + for (int i=0; i < ndata; i++) { + // Arbitrary data + data_items[i] = (i % 3 == 1) || (c % 5 == 3); + } + + // I. CLIENT DATA SUBMISSION. + // + // Construct the client data packets. + unsigned int aLen, bLen; + P_CHECKC (PrioClient_encode (cfg, data_items, + &for_server_a, &aLen, &for_server_b, &bLen)); + + // The Prio servers A and B can come online later (e.g., at the end of + // each day) to download the encrypted telemetry packets from the + // telemetry server and run the protocol that computes the aggregate + // statistics. In this way, the client only needs to send a + // single message (the pair of encrypted ClientPacketData packets) + // to a single server (the telemetry-data-collection server). + + // THE CLIENT'S JOB IS DONE. The rest of the processing just takes place + // between the two servers A and B. + + + // II. VALIDATION PROTOCOL. (at servers) + // + // The servers now run a short 2-step protocol to check each + // client's packet: + // 1) Servers A and B broadcast one message (PrioPacketVerify1) + // to each other. + // 2) Servers A and B broadcast another message (PrioPacketVerify2) + // to each other. + // 3) Servers A and B can both determine whether the client's data + // submission is well-formed (in which case they add it to their + // running total of aggregate statistics) or ill-formed + // (in which case they ignore it). + // These messages must be sent over an authenticated channel, so + // that each server is assured that every received message came + // from its peer. + + // Set up a Prio verifier object. + P_CHECKC (PrioVerifier_set_data (vA, for_server_a, aLen)); + P_CHECKC (PrioVerifier_set_data (vB, for_server_b, bLen)); + + // Both servers produce a packet1. Server A sends p1A to Server B + // and vice versa. + P_CHECKC (PrioPacketVerify1_set_data (p1A, vA)); + P_CHECKC (PrioPacketVerify1_set_data (p1B, vB)); + + // Both servers produce a packet2. Server A sends p2A to Server B + // and vice versa. + P_CHECKC (PrioPacketVerify2_set_data(p2A, vA, p1A, p1B)); + P_CHECKC (PrioPacketVerify2_set_data(p2B, vB, p1A, p1B)); + + // Using p2A and p2B, the servers can determine whether the request + // is valid. (In fact, only Server A needs to perform this + // check, since Server A can just tell Server B whether the check + // succeeded or failed.) + P_CHECKC (PrioVerifier_isValid (vA, p2A, p2B)); + P_CHECKC (PrioVerifier_isValid (vB, p2A, p2B)); + + // If we get here, the client packet is valid, so add it to the aggregate + // statistic counter for both servers. + P_CHECKC (PrioServer_aggregate (sA, vA)); + P_CHECKC (PrioServer_aggregate (sB, vB)); + + free (for_server_a); + free (for_server_b); + for_server_a = NULL; + for_server_b = NULL; + } + + // The servers repeat the steps above for each client submission. + + // III. PRODUCTION OF AGGREGATE STATISTICS. + // + // After collecting aggregates from MANY clients, the servers can compute + // their shares of the aggregate statistics. + // + // Server B can send tB to Server A. + P_CHECKC (PrioTotalShare_set_data (tA, sA)); + P_CHECKC (PrioTotalShare_set_data (tB, sB)); + + // Once Server A has tA and tB, it can learn the aggregate statistics + // in the clear. + unsigned long output[ndata]; + P_CHECKC (PrioTotalShare_final (cfg, output, tA, tB)); + + // Now the output[i] contains a counter that indicates how many clients + // submitted TRUE for data value i. We print out this data. + for (int i=0; i < ndata; i++) + printf("output[%d] = %lu\n", i, output[i]); + } + +cleanup: + if (rv != SECSuccess) { + fprintf (stderr, "Warning: unexpected failure.\n"); + } + + if (for_server_a) free (for_server_a); + if (for_server_b) free (for_server_b); + + PrioTotalShare_clear (tA); + PrioTotalShare_clear (tB); + + PrioPacketVerify2_clear (p2A); + PrioPacketVerify2_clear (p2B); + + PrioPacketVerify1_clear (p1A); + PrioPacketVerify1_clear (p1B); + + PrioVerifier_clear (vA); + PrioVerifier_clear (vB); + + PrioServer_clear (sA); + PrioServer_clear (sB); + PrioConfig_clear (cfg); + + PublicKey_clear (pkA); + PublicKey_clear (pkB); + + PrivateKey_clear (skA); + PrivateKey_clear (skB); + + Prio_clear (); + + return !(rv == SECSuccess); +} + +int +main (void) +{ + puts ("This utility demonstrates how to invoke the Prio API."); + return verify_full (); +} + diff --git a/third_party/prio/prio/SConscript b/third_party/prio/prio/SConscript new file mode 100644 index 000000000000..7571bc4d9e43 --- /dev/null +++ b/third_party/prio/prio/SConscript @@ -0,0 +1,29 @@ +import os + +Import('env') + +penv = env.Clone() + +src = [ + "client.c", + "config.c", + "encrypt.c", + "mparray.c", + "poly.c", + "rand.c", + "prg.c", + "server.c", + "serial.c", + "share.c", +] + +libs = [ + "msgpackc" +] + +# Enable mp_print() +penv.Append(CFLAGS = ['-DMP_IOFUNC']) + +penv.Append(LIBS = libs) +penv.StaticLibrary("mprio", src) + diff --git a/third_party/prio/prio/client.c b/third_party/prio/prio/client.c new file mode 100644 index 000000000000..61426b783c34 --- /dev/null +++ b/third_party/prio/prio/client.c @@ -0,0 +1,353 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include +#include +#include +#include +#include + +#include "client.h" +#include "config.h" +#include "encrypt.h" +#include "poly.h" +#include "rand.h" +#include "serial.h" +#include "share.h" +#include "util.h" + +// Let the points of data_in be [x1, x2, x3, ... ]. +// We construct the polynomial f such that +// (a) f(0) = random, +// (b) f(i) = x_i for all i >= 1, +// (c) degree(f)+1 is a power of two. +// We then evaluate f at the 2N-th roots of unity +// and we return these evaluations as `evals_out` +// and we return f(0) as `const_term`. +static SECStatus +data_polynomial_evals(const_PrioConfig cfg, const_MPArray data_in, + MPArray evals_out, mp_int *const_term) +{ + SECStatus rv = SECSuccess; + const mp_int *mod = &cfg->modulus; + MPArray points_f = NULL; + MPArray poly_f = NULL; + + // Number of multiplication gates in the Valid() circuit. + const int mul_gates = cfg->num_data_fields; + + // Little n is the number of points on the polynomials. + // The constant term is randomized, so it's (mul_gates + 1). + const int n = mul_gates + 1; + + // Big N is n rounded up to a power of two. + const int N = next_power_of_two (n); + + P_CHECKA (points_f = MPArray_new (N)); + P_CHECKA (poly_f = MPArray_new (N)); + + // Set constant term f(0) to random + P_CHECKC (rand_int (&points_f->data[0], mod)); + MP_CHECKC (mp_copy (&points_f->data[0], const_term)); + + // Set other values of f(x) + for (int i=1; idata[i-1], &points_f->data[i])); + } + + // Interpolate through the Nth roots of unity + P_CHECKC (poly_fft(poly_f, points_f, cfg, true)); + + // Evaluate at all 2N-th roots of unity. + // To do so, first resize the eval arrays and fill upper + // values with zeros. + P_CHECKC (MPArray_resize (poly_f, 2*N)); + P_CHECKC (MPArray_resize (evals_out, 2*N)); + + // Evaluate at the 2N-th roots of unity + P_CHECKC (poly_fft(evals_out, poly_f, cfg, false)); + +cleanup: + MPArray_clear (points_f); + MPArray_clear (poly_f); + + return rv; +} + + +static SECStatus +share_polynomials (const_PrioConfig cfg, const_MPArray data_in, + PrioPacketClient pA, PrioPacketClient pB, PRG prgB) +{ + SECStatus rv = SECSuccess; + const mp_int *mod = &cfg->modulus; + const_MPArray points_f = data_in; + + mp_int f0, g0; + MP_DIGITS (&f0) = NULL; + MP_DIGITS (&g0) = NULL; + + MPArray points_g = NULL; + MPArray evals_f_2N = NULL; + MPArray evals_g_2N = NULL; + + P_CHECKA (points_g = MPArray_dup (points_f)); + P_CHECKA (evals_f_2N = MPArray_new (0)); + P_CHECKA (evals_g_2N = MPArray_new (0)); + MP_CHECKC (mp_init (&f0)); + MP_CHECKC (mp_init (&g0)); + + for (int i=0; ilen; i++) { + // For each input value x_i, we compute x_i * (x_i-1). + // f(i) = x_i + // g(i) = x_i - 1 + MP_CHECKC (mp_sub_d (&points_g->data[i], 1, &points_g->data[i])); + MP_CHECKC (mp_mod (&points_g->data[i], mod, &points_g->data[i])); + } + + P_CHECKC (data_polynomial_evals(cfg, points_f, evals_f_2N, &f0)); + P_CHECKC (data_polynomial_evals(cfg, points_g, evals_g_2N, &g0)); + + // The values f(0) and g(0) are set to random values. + // We must send to each server a share of the points + // f(0), g(0), and h(0) = f(0)*g(0) + P_CHECKC (share_int (cfg, &f0, &pA->f0_share, &pB->f0_share)); + P_CHECKC (share_int (cfg, &g0, &pA->g0_share, &pB->g0_share)); + + // Compute h(0) = f(0)*g(0). + MP_CHECKC (mp_mulmod (&f0, &g0, mod, &f0)); + // Give one share of h(0) to each server. + P_CHECKC (share_int (cfg, &f0, &pA->h0_share, &pB->h0_share)); + + //const int lenN = (evals_f_2N->len/2); + //P_CHECKC (MPArray_resize (pA->shares.A.h_points, lenN)); + + // We need to send to the servers the evaluations of + // f(r) * g(r) + // for all 2N-th roots of unity r that are not also + // N-th roots of unity. + // + // For each such root r, compute h(r) = f(r)*g(r) and + // send a share of this value to each server. + int j = 0; + for (int i = 1; i < evals_f_2N->len; i += 2) { + MP_CHECKC (mp_mulmod (&evals_f_2N->data[i], &evals_g_2N->data[i], mod, &f0)); + P_CHECKC (PRG_share_int (prgB, &pA->shares.A.h_points->data[j], &f0, cfg)); + j++; + } + +cleanup: + MPArray_clear (evals_f_2N); + MPArray_clear (evals_g_2N); + MPArray_clear (points_g); + mp_clear (&f0); + mp_clear (&g0); + return rv; +} + +PrioPacketClient +PrioPacketClient_new (const_PrioConfig cfg, PrioServerId for_server) +{ + SECStatus rv = SECSuccess; + const int data_len = cfg->num_data_fields; + PrioPacketClient p = NULL; + p = malloc (sizeof (*p)); + if (!p) return NULL; + + p->for_server = for_server; + p->triple = NULL; + MP_DIGITS (&p->f0_share) = NULL; + MP_DIGITS (&p->g0_share) = NULL; + MP_DIGITS (&p->h0_share) = NULL; + + switch (p->for_server) { + case PRIO_SERVER_A: + p->shares.A.data_shares = NULL; + p->shares.A.h_points = NULL; + break; + case PRIO_SERVER_B: + memset (p->shares.B.seed, 0, PRG_SEED_LENGTH); + break; + default: + // Should never get here + rv = SECFailure; + goto cleanup; + } + + MP_CHECKC (mp_init (&p->f0_share)); + MP_CHECKC (mp_init (&p->g0_share)); + MP_CHECKC (mp_init (&p->h0_share)); + P_CHECKA (p->triple = BeaverTriple_new ()); + + if (p->for_server == PRIO_SERVER_A) { + const int num_h_points = PrioConfig_hPoints (cfg); + P_CHECKA (p->shares.A.data_shares = MPArray_new (data_len)); + P_CHECKA (p->shares.A.h_points = MPArray_new (num_h_points)); + } + +cleanup: + if (rv != SECSuccess) { + PrioPacketClient_clear (p); + return NULL; + } + + return p; +} + +SECStatus +PrioPacketClient_set_data (const_PrioConfig cfg, const bool *data_in, + PrioPacketClient pA, PrioPacketClient pB) +{ + MPArray client_data = NULL; + PRG prgB = NULL; + SECStatus rv = SECSuccess; + const int data_len = cfg->num_data_fields; + + if (!data_in) return SECFailure; + + P_CHECKC (PrioPRGSeed_randomize (&pB->shares.B.seed)); + P_CHECKA (prgB = PRG_new (pB->shares.B.seed)); + + P_CHECKC (BeaverTriple_set_rand (cfg, pA->triple, pB->triple)); + P_CHECKA (client_data = MPArray_new_bool (data_len, data_in)); + P_CHECKC (PRG_share_array (prgB, pA->shares.A.data_shares, + client_data, cfg)); + P_CHECKC (share_polynomials (cfg, client_data, pA, pB, prgB)); + +cleanup: + MPArray_clear (client_data); + PRG_clear (prgB); + + return rv; +} + +void +PrioPacketClient_clear (PrioPacketClient p) +{ + if (p == NULL) return; + + if (p->for_server == PRIO_SERVER_A) { + MPArray_clear (p->shares.A.h_points); + MPArray_clear (p->shares.A.data_shares); + } + + BeaverTriple_clear (p->triple); + mp_clear (&p->f0_share); + mp_clear (&p->g0_share); + mp_clear (&p->h0_share); + free (p); +} + +bool +PrioPacketClient_areEqual (const_PrioPacketClient p1, + const_PrioPacketClient p2) +{ + if (!BeaverTriple_areEqual (p1->triple, p2->triple)) return false; + if (mp_cmp (&p1->f0_share, &p2->f0_share)) return false; + if (mp_cmp (&p1->g0_share, &p2->g0_share)) return false; + if (mp_cmp (&p1->h0_share, &p2->h0_share)) return false; + if (p1->for_server != p2->for_server) return false; + + switch (p1->for_server) { + case PRIO_SERVER_A: + if (!MPArray_areEqual (p1->shares.A.data_shares, + p2->shares.A.data_shares)) return false; + if (!MPArray_areEqual (p1->shares.A.h_points, + p2->shares.A.h_points)) return false; + break; + case PRIO_SERVER_B: + if (memcmp (p1->shares.B.seed, p2->shares.B.seed, + PRG_SEED_LENGTH)) return false; + break; + default: + // Should never get here. + return false; + } + + return true; +} + +SECStatus +PrioClient_encode (const_PrioConfig cfg, const bool *data_in, + unsigned char **for_server_a, unsigned int *aLen, + unsigned char **for_server_b, unsigned int *bLen) +{ + SECStatus rv = SECSuccess; + PrioPacketClient pA = NULL; + PrioPacketClient pB = NULL; + *for_server_a = NULL; + *for_server_b = NULL; + + P_CHECKA (pA = PrioPacketClient_new (cfg, PRIO_SERVER_A)); + P_CHECKA (pB = PrioPacketClient_new (cfg, PRIO_SERVER_B)); + + msgpack_sbuffer sbufA, sbufB; + msgpack_packer packerA, packerB; + + msgpack_sbuffer_init (&sbufA); + msgpack_sbuffer_init (&sbufB); + msgpack_packer_init (&packerA, &sbufA, msgpack_sbuffer_write); + msgpack_packer_init (&packerB, &sbufB, msgpack_sbuffer_write); + + P_CHECKC (PrioPacketClient_set_data (cfg, data_in, pA, pB)); + P_CHECKC (serial_write_packet_client (&packerA, pA, cfg)); + P_CHECKC (serial_write_packet_client (&packerB, pB, cfg)); + + P_CHECKC (PublicKey_encryptSize (sbufA.size, aLen)); + P_CHECKC (PublicKey_encryptSize (sbufB.size, bLen)); + + P_CHECKA (*for_server_a = malloc (*aLen)); + P_CHECKA (*for_server_b = malloc (*bLen)); + + unsigned int writtenA; + unsigned int writtenB; + P_CHECKC (PublicKey_encrypt (cfg->server_a_pub, *for_server_a, &writtenA, *aLen, + (unsigned char *)sbufA.data, sbufA.size)); + P_CHECKC (PublicKey_encrypt (cfg->server_b_pub, *for_server_b, &writtenB, *bLen, + (unsigned char *)sbufB.data, sbufB.size)); + + P_CHECKCB (writtenA == *aLen); + P_CHECKCB (writtenB == *bLen); + +cleanup: + if (rv != SECSuccess) { + if (*for_server_a) free (*for_server_a); + if (*for_server_b) free (*for_server_b); + *for_server_a = NULL; + *for_server_b = NULL; + } + + PrioPacketClient_clear (pA); + PrioPacketClient_clear (pB); + msgpack_sbuffer_destroy (&sbufA); + msgpack_sbuffer_destroy (&sbufB); + + return rv; +} + +SECStatus +PrioPacketClient_decrypt (PrioPacketClient p, const_PrioConfig cfg, + PrivateKey server_priv, const unsigned char *data_in, unsigned int data_len) +{ + SECStatus rv = SECSuccess; + msgpack_unpacker upk; + P_CHECKCB (msgpack_unpacker_init (&upk, data_len)); + + // Decrypt the ciphertext into dec_buf + unsigned int bytes_decrypted; + P_CHECKC (PrivateKey_decrypt (server_priv, + (unsigned char *)msgpack_unpacker_buffer (&upk), &bytes_decrypted, + data_len, data_in, data_len)); + msgpack_unpacker_buffer_consumed (&upk, bytes_decrypted); + + P_CHECKC (serial_read_packet_client (&upk, p, cfg)); + +cleanup: + msgpack_unpacker_destroy (&upk); + return rv; +} + diff --git a/third_party/prio/prio/client.h b/third_party/prio/prio/client.h new file mode 100644 index 000000000000..fe05a6a0b752 --- /dev/null +++ b/third_party/prio/prio/client.h @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef __CLIENT_H__ +#define __CLIENT_H__ + +#include "mparray.h" +#include "prg.h" +#include "share.h" + + +/* + * The PrioPacketClient object holds the encoded client data. + * The client sends one packet to server A and one packet to + * server B. The `for_server` parameter determines which server + * the packet is for. + */ +typedef struct prio_packet_client *PrioPacketClient; +typedef const struct prio_packet_client *const_PrioPacketClient; + +struct server_a_data { + // These values are only set for server A. + MPArray data_shares; + MPArray h_points; +}; + +struct server_b_data { + // This value is only used for server B. + // + // We use a pseudo-random generator to compress the secret-shared data + // values. See Appendix I of the Prio paper (the paragraph starting + // "Optimization: PRG secret sharing.") for details on this. + PrioPRGSeed seed; +}; + +/* + * The data that a Prio client sends to each server. + */ +struct prio_packet_client { + // TODO: Can also use a PRG to avoid need for sending Beaver triple shares. + // Since this optimization only saves ~30 bytes of communication, we haven't + // bothered implementing it yet. + BeaverTriple triple; + + mp_int f0_share, g0_share, h0_share; + PrioServerId for_server; + + union { + struct server_a_data A; + struct server_b_data B; + } shares; +}; + + +PrioPacketClient PrioPacketClient_new (const_PrioConfig cfg, PrioServerId for_server); +void PrioPacketClient_clear (PrioPacketClient p); +SECStatus PrioPacketClient_set_data (const_PrioConfig cfg, const bool *data_in, + PrioPacketClient for_server_a, PrioPacketClient for_server_b); + +SECStatus PrioPacketClient_decrypt (PrioPacketClient p, + const_PrioConfig cfg, PrivateKey server_priv, + const unsigned char *data_in, unsigned int data_len); + +bool PrioPacketClient_areEqual (const_PrioPacketClient p1, + const_PrioPacketClient p2); + + +#endif /* __CLIENT_H__ */ + diff --git a/third_party/prio/prio/config.c b/third_party/prio/prio/config.c new file mode 100644 index 000000000000..708df1fe688b --- /dev/null +++ b/third_party/prio/prio/config.c @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include +#include + +#include "config.h" +#include "params.h" +#include "mparray.h" +#include "rand.h" +#include "util.h" + +// The PrioConfig object stores "2^k-th roots of unity" modulo +// the prime modulus we use for all arithmetic. We use +// these roots to perform fast FFT-style polynomial +// interpolation and evaluation. +// +// In particular, we use a prime modulus p such that +// p = (2^k)q + 1. +// The roots are integers such that r^{2^k} = 1 mod p. +static SECStatus +initialize_roots (MPArray arr, const char *values[]) +{ + // TODO: Read in only the number of roots of unity we need. + // Right now we read in all 4096 roots whether or not we use + // them all. + for (int i=0; i < arr->len; i++) { + MP_CHECK (mp_read_radix (&arr->data[i], values[i], 16)); + } + + return SECSuccess; +} + +PrioConfig +PrioConfig_new (int n_fields, PublicKey server_a, PublicKey server_b, + const unsigned char *batch_id, unsigned int batch_id_len) +{ + SECStatus rv = SECSuccess; + PrioConfig cfg = malloc (sizeof (*cfg)); + if (!cfg) + return NULL; + + cfg->batch_id = NULL; + cfg->batch_id_len = batch_id_len; + cfg->server_a_pub = server_a; + cfg->server_b_pub = server_b; + cfg->num_data_fields = n_fields; + cfg->n_roots = 1 << Generator2Order; + MP_DIGITS(&cfg->modulus) = NULL; + MP_DIGITS(&cfg->inv2) = NULL; + cfg->roots = NULL; + cfg->rootsInv = NULL; + + if (cfg->num_data_fields >= cfg->n_roots) { + rv = SECFailure; + goto cleanup; + } + + P_CHECKA (cfg->batch_id = malloc (batch_id_len)); + strncpy ((char *)cfg->batch_id, (char *)batch_id, batch_id_len); + + MP_CHECKC (mp_init (&cfg->modulus)); + MP_CHECKC (mp_read_radix (&cfg->modulus, Modulus, 16)); + + // Compute 2^{-1} modulo M + MP_CHECKC (mp_init (&cfg->inv2)); + mp_set (&cfg->inv2, 2); + MP_CHECKC (mp_invmod (&cfg->inv2, &cfg->modulus, &cfg->inv2)); + + P_CHECKA (cfg->roots = MPArray_new (cfg->n_roots)); + P_CHECKA (cfg->rootsInv = MPArray_new (cfg->n_roots)); + MP_CHECKC (initialize_roots (cfg->roots, Roots)); + MP_CHECKC (initialize_roots (cfg->rootsInv, RootsInv)); + +cleanup: + if (rv != SECSuccess) { + PrioConfig_clear (cfg); + return NULL; + } + + return cfg; +} + +PrioConfig +PrioConfig_newTest (int nFields) +{ + return PrioConfig_new (nFields, NULL, NULL, + (unsigned char *)"testBatch", 9); +} + +void +PrioConfig_clear (PrioConfig cfg) +{ + if (!cfg) return; + if (cfg->batch_id) free (cfg->batch_id); + MPArray_clear (cfg->roots); + MPArray_clear (cfg->rootsInv); + mp_clear (&cfg->modulus); + mp_clear (&cfg->inv2); + free (cfg); +} + +int +PrioConfig_numDataFields (const_PrioConfig cfg) +{ + return cfg->num_data_fields; + +} + +SECStatus +Prio_init (void) +{ + return rand_init (); +} + +void +Prio_clear (void) +{ + rand_clear (); +} + +int PrioConfig_hPoints (const_PrioConfig cfg) +{ + const int mul_gates = cfg->num_data_fields + 1; + const int N = next_power_of_two (mul_gates); + return N; +} diff --git a/third_party/prio/prio/config.h b/third_party/prio/prio/config.h new file mode 100644 index 000000000000..2e76d426909d --- /dev/null +++ b/third_party/prio/prio/config.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef __CONFIG_H__ +#define __CONFIG_H__ + +#include + +#include "mparray.h" + +struct prio_config { + int num_data_fields; + unsigned char *batch_id; + unsigned int batch_id_len; + + + PublicKey server_a_pub; + PublicKey server_b_pub; + + mp_int modulus; + mp_int inv2; + + int n_roots; + MPArray roots; + MPArray rootsInv; +}; + +int PrioConfig_hPoints (const_PrioConfig cfg); + +#endif /* __CONFIG_H__ */ + diff --git a/third_party/prio/prio/debug.h b/third_party/prio/prio/debug.h new file mode 100644 index 000000000000..7d4bd3878664 --- /dev/null +++ b/third_party/prio/prio/debug.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef __DEBUG_H__ +#define __DEBUG_H__ + +#include + +#ifdef DEBUG +#define PRIO_DEBUG(msg) do { fprintf(stderr, "Error: %s\n", msg); } while(false); +#else +#define PRIO_DEBUG(msg) ; +#endif + +#endif /* __DEBUG_H__ */ + diff --git a/third_party/prio/prio/encrypt.c b/third_party/prio/prio/encrypt.c new file mode 100644 index 000000000000..d60c9bfc30a3 --- /dev/null +++ b/third_party/prio/prio/encrypt.c @@ -0,0 +1,355 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include +#include +#include +#include + +#include "encrypt.h" +#include "prio/rand.h" +#include "prio/util.h" + +// Use curve25519 +#define CURVE_OID_TAG SEC_OID_CURVE25519 + +// Use 96-bit IV +#define GCM_IV_LEN_BYTES 12 +// Use 128-bit auth tag +#define GCM_TAG_LEN_BYTES 16 + +#define PRIO_TAG "PrioPacket" +#define AAD_LEN (strlen (PRIO_TAG) + CURVE25519_KEY_LEN + GCM_IV_LEN_BYTES) + +// The all-zeros curve25519 public key, as DER-encoded SKPI blob. +static const uint8_t curve25519_spki_zeros[] = { + 0x30, 0x39, 0x30, 0x14, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x09, 0x2b, + 0x06, 0x01, 0x04, 0x01, 0xda, 0x47, 0x0f, 0x01, 0x03, 0x21, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, +}; + +static inline uint8_t +hex_to_int (char h) +{ + return (h > '9') ? toupper (h) - 'A' + 10 : (h - '0'); +} + +static inline unsigned char +int_to_hex (uint8_t i) +{ + return (i > 0x09) ? ((i - 10) + 'A') : i + '0'; +} + + +static SECStatus +derive_dh_secret (PK11SymKey **shared_secret, PrivateKey priv, PublicKey pub) +{ + if (priv == NULL) return SECFailure; + if (pub == NULL) return SECFailure; + if (shared_secret == NULL) return SECFailure; + + SECStatus rv = SECSuccess; + *shared_secret = NULL; + + P_CHECKA (*shared_secret = PK11_PubDeriveWithKDF (priv, pub, PR_FALSE, + NULL, NULL, CKM_ECDH1_DERIVE, CKM_AES_GCM, + CKA_ENCRYPT | CKA_DECRYPT, 16, + CKD_SHA256_KDF, NULL, NULL)); + +cleanup: + return rv; +} + +SECStatus +PublicKey_import (PublicKey *pk, const unsigned char *data, unsigned int dataLen) +{ + SECStatus rv = SECSuccess; + CERTSubjectPublicKeyInfo *pkinfo = NULL; + *pk = NULL; + + if (dataLen != CURVE25519_KEY_LEN) + return SECFailure; + + unsigned char key_bytes[dataLen]; + memcpy (key_bytes, data, dataLen); + + const int spki_len = sizeof (curve25519_spki_zeros); + uint8_t spki_data[spki_len]; + memcpy (spki_data, curve25519_spki_zeros, spki_len); + SECItem spki_item = { siBuffer, spki_data, spki_len }; + + // Import the all-zeros curve25519 public key. + P_CHECKA (pkinfo = SECKEY_DecodeDERSubjectPublicKeyInfo (&spki_item)); + P_CHECKA (*pk = SECKEY_ExtractPublicKey (pkinfo)); + + // Overwrite the all-zeros public key with the 32-byte curve25519 public key + // given as input. + memcpy ((*pk)->u.ec.publicValue.data, data, CURVE25519_KEY_LEN); + +cleanup: + if (pkinfo) + SECKEY_DestroySubjectPublicKeyInfo (pkinfo); + + if (rv != SECSuccess) + PublicKey_clear (*pk); + return rv; +} + +SECStatus +PublicKey_import_hex (PublicKey *pk, const unsigned char *hex_data, unsigned int dataLen) +{ + unsigned char raw_bytes[CURVE25519_KEY_LEN]; + + if (dataLen != CURVE25519_KEY_LEN_HEX) + return SECFailure; + + for (unsigned int i=0; iu.ec.publicValue.data, CURVE25519_KEY_LEN); + + return SECSuccess; +} + +SECStatus +PublicKey_export_hex (const_PublicKey pk, unsigned char data[(2*CURVE25519_KEY_LEN)+1]) +{ + unsigned char raw_data[CURVE25519_KEY_LEN]; + if (PublicKey_export (pk, raw_data) != SECSuccess) + return SECFailure; + + const unsigned char *p = raw_data; + for (unsigned int i=0; i> 4; + data[2*i] = int_to_hex (byteu); + data[2*i + 1] = int_to_hex (bytel); + p++; + } + + data[2*CURVE25519_KEY_LEN] = '\0'; + return SECSuccess; +} + +SECStatus +Keypair_new (PrivateKey *pvtkey, PublicKey *pubkey) +{ + if (pvtkey == NULL) return SECFailure; + if (pubkey == NULL) return SECFailure; + + SECStatus rv = SECSuccess; + SECOidData *oid_data = NULL; + *pubkey = NULL; + *pvtkey = NULL; + + SECKEYECParams ecp; + ecp.data = NULL; + PK11SlotInfo *slot = NULL; + + P_CHECKA (oid_data = SECOID_FindOIDByTag (CURVE_OID_TAG)); + const int oid_struct_len = 2 + oid_data->oid.len; + + P_CHECKA (ecp.data = malloc (oid_struct_len)); + ecp.len = oid_struct_len; + + ecp.type = siDEROID; + + ecp.data[0] = SEC_ASN1_OBJECT_ID; + ecp.data[1] = oid_data->oid.len; + memcpy (&ecp.data[2], oid_data->oid.data, oid_data->oid.len); + + P_CHECKA (slot = PK11_GetInternalSlot ()); + P_CHECKA (*pvtkey = PK11_GenerateKeyPair(slot, CKM_EC_KEY_PAIR_GEN, &ecp, + (SECKEYPublicKey **)pubkey, PR_FALSE, PR_FALSE, NULL)); + +cleanup: + if (ecp.data) + free (ecp.data); + if (rv != SECSuccess) { + PublicKey_clear (*pubkey); + PrivateKey_clear (*pvtkey); + } + return rv; +} + +void +PublicKey_clear (PublicKey pubkey) +{ + if (pubkey) + SECKEY_DestroyPublicKey(pubkey); +} + +void +PrivateKey_clear (PrivateKey pvtkey) +{ + if (pvtkey) + SECKEY_DestroyPrivateKey(pvtkey); +} + +const SECItem * +PublicKey_toBytes (const_PublicKey pubkey) +{ + return &pubkey->u.ec.publicValue; +} + +SECStatus +PublicKey_encryptSize (unsigned int inputLen, unsigned int *outputLen) +{ + if (outputLen == NULL || inputLen >= MAX_ENCRYPT_LEN) + return SECFailure; + + // public key, IV, tag, and input + *outputLen = CURVE25519_KEY_LEN + GCM_IV_LEN_BYTES + GCM_TAG_LEN_BYTES + inputLen; + return SECSuccess; +} + +static void +set_gcm_params (SECItem *paramItem, CK_GCM_PARAMS *param, unsigned char *nonce, + const_PublicKey pubkey, unsigned char *aadBuf) +{ + int offset = 0; + memcpy (aadBuf, PRIO_TAG, strlen (PRIO_TAG)); + offset += strlen (PRIO_TAG); + memcpy (aadBuf + offset, PublicKey_toBytes (pubkey)->data, CURVE25519_KEY_LEN); + offset += CURVE25519_KEY_LEN; + memcpy (aadBuf + offset, nonce, GCM_IV_LEN_BYTES); + + param->pIv = nonce; + param->ulIvLen = GCM_IV_LEN_BYTES; + param->pAAD = aadBuf; + param->ulAADLen = AAD_LEN; + param->ulTagBits = GCM_TAG_LEN_BYTES * 8; + + paramItem->type = siBuffer; + paramItem->data = (void *)param; + paramItem->len = sizeof (*param); + +} + +SECStatus +PublicKey_encrypt (PublicKey pubkey, + unsigned char *output, + unsigned int *outputLen, + unsigned int maxOutputLen, + const unsigned char *input, unsigned int inputLen) +{ + if (pubkey == NULL) + return SECFailure; + + if (inputLen >= MAX_ENCRYPT_LEN) + return SECFailure; + + unsigned int needLen; + if (PublicKey_encryptSize (inputLen, &needLen) != SECSuccess) + return SECFailure; + + if (maxOutputLen < needLen) + return SECFailure; + + SECStatus rv = SECSuccess; + PublicKey eph_pub = NULL; + PrivateKey eph_priv = NULL; + PK11SymKey *aes_key = NULL; + + unsigned char nonce[GCM_IV_LEN_BYTES]; + unsigned char aadBuf[AAD_LEN]; + P_CHECKC (rand_bytes (nonce, GCM_IV_LEN_BYTES)); + + P_CHECKC (Keypair_new (&eph_priv, &eph_pub)); + P_CHECKC (derive_dh_secret (&aes_key, eph_priv, pubkey)); + + CK_GCM_PARAMS param; + SECItem paramItem; + set_gcm_params (¶mItem, ¶m, nonce, eph_pub, aadBuf); + + const SECItem *pk = PublicKey_toBytes (eph_pub); + P_CHECKCB (pk->len == CURVE25519_KEY_LEN); + memcpy (output, pk->data, pk->len); + memcpy (output + CURVE25519_KEY_LEN, param.pIv, param.ulIvLen); + + const int offset = CURVE25519_KEY_LEN + param.ulIvLen; + P_CHECKC (PK11_Encrypt (aes_key, CKM_AES_GCM, ¶mItem, output + offset, + outputLen, maxOutputLen - offset, input, inputLen)); + *outputLen = *outputLen + CURVE25519_KEY_LEN + GCM_IV_LEN_BYTES; + +cleanup: + PublicKey_clear (eph_pub); + PrivateKey_clear (eph_priv); + if (aes_key) + PK11_FreeSymKey (aes_key); + + return rv; +} + +SECStatus +PrivateKey_decrypt (PrivateKey privkey, + unsigned char *output, + unsigned int *outputLen, + unsigned int maxOutputLen, + const unsigned char *input, unsigned int inputLen) +{ + PK11SymKey *aes_key = NULL; + PublicKey eph_pub = NULL; + unsigned char aad_buf[AAD_LEN]; + + if (privkey == NULL) + return SECFailure; + + SECStatus rv = SECSuccess; + unsigned int headerLen; + if (PublicKey_encryptSize (0, &headerLen) != SECSuccess) + return SECFailure; + + if (inputLen < headerLen) + return SECFailure; + + const unsigned int msglen = inputLen - headerLen; + if (maxOutputLen < msglen || msglen >= MAX_ENCRYPT_LEN) + return SECFailure; + + P_CHECKC (PublicKey_import (&eph_pub, input, CURVE25519_KEY_LEN)); + unsigned char nonce[GCM_IV_LEN_BYTES]; + memcpy (nonce, input + CURVE25519_KEY_LEN, GCM_IV_LEN_BYTES); + + SECItem paramItem; + CK_GCM_PARAMS param; + set_gcm_params (¶mItem, ¶m, nonce, eph_pub, aad_buf); + + P_CHECKC (derive_dh_secret (&aes_key, privkey, eph_pub)); + + const int offset = CURVE25519_KEY_LEN + GCM_IV_LEN_BYTES; + P_CHECKC (PK11_Decrypt (aes_key, CKM_AES_GCM, ¶mItem, output, + outputLen, maxOutputLen, input + offset, inputLen - offset)); + +cleanup: + PublicKey_clear (eph_pub); + if (aes_key) + PK11_FreeSymKey (aes_key); + return rv; +} + diff --git a/third_party/prio/prio/encrypt.h b/third_party/prio/prio/encrypt.h new file mode 100644 index 000000000000..67288f4786f7 --- /dev/null +++ b/third_party/prio/prio/encrypt.h @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + + +#ifndef __ENCRYPT_H__ +#define __ENCRYPT_H__ + +#include +#include + +/******* + * These functions attempt to implement CCA-secure public-key encryption using + * the NSS library. We use hashed-ElGamal encryption with Curve25519 as the + * underlying group and AES128-GCM as the bulk encryption mode of operation. + * + * I make no guarantees that I am using NSS correctly or that this encryption + * scheme is actually CCA secure. As far as I can tell, NSS does not provide + * any public-key hybrid encryption scheme out of the box, so I had to cook my + * own. If you want to be really safe, you should use the NaCl Box routines + * to implement these functions. + */ + +/* + * Messages encrypted using this library must be smaller than MAX_ENCRYPT_LEN. + * Enforcing this length limit helps avoid integer overflow. + */ +#define MAX_ENCRYPT_LEN (INT_MAX >> 3) + +/* + * Write the number of bytes needed to store a ciphertext that encrypts a + * plaintext message of length `inputLen` and authenticated data of length + * `adLen` into the variable pointed to by `outputLen`. If `inputLen` + * is too large (larger than `MAX_ENCRYPT_LEN`), this function returns + * an error. + */ +SECStatus PublicKey_encryptSize (unsigned int inputLen, unsigned int *outputLen); + +/* + * Generate a new keypair for public-key encryption. + */ +SECStatus Keypair_new (PrivateKey *pvtkey, PublicKey *pubkey); + +/* + * Encrypt an arbitrary bitstring to the specified public key. The buffer + * `output` should be large enough to store the ciphertext. Use the + * `PublicKey_encryptSize()` function above to figure out how large of a buffer + * you need. + * + * The value `inputLen` must be smaller than `MAX_ENCRYPT_LEN`. + */ +SECStatus PublicKey_encrypt (PublicKey pubkey, + unsigned char *output, + unsigned int *outputLen, + unsigned int maxOutputLen, + const unsigned char *input, unsigned int inputLen); + +/* + * Decrypt an arbitrary bitstring using the specified private key. The output + * buffer should be at least 16 bytes larger than the plaintext you expect. If + * `outputLen` >= `inputLen`, you should be safe. + */ +SECStatus PrivateKey_decrypt (PrivateKey privkey, + unsigned char *output, + unsigned int *outputLen, + unsigned int maxOutputLen, + const unsigned char *input, unsigned int inputLen); + +#endif /* __ENCRYPT_H__ */ + diff --git a/third_party/prio/prio/gen_params.py b/third_party/prio/prio/gen_params.py new file mode 100644 index 000000000000..ea56e9a74040 --- /dev/null +++ b/third_party/prio/prio/gen_params.py @@ -0,0 +1,90 @@ +""" +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +""" + + +# Has a subgroup of order 2^19 +modulus = int('0x8000000000000000080001', 16) +# Generates the subgroup of order 2^19 +gen19 = int('0x2597c14f48d5b65ed8dcca', 16) + +# We want a generator of order 2^12, so compute +# gen19^(2^7) = gen19^128 (mod p) +gen12 = gen19 +for i in range(7): + gen12 *= gen12 + gen12 %= modulus + #print gen12 + +# Sanity check +rootsL = [1] * 2**12 +rootsInvL = [1] * 2**12 +for i in range(1, 2**12): + rootsL[i] = (rootsL[i-1] * gen12) % modulus + +assert ((rootsL[2**12 - 1] * gen12) % modulus) == 1 + +gen12inv = rootsL[2**12 - 1] +for i in range(1, 2**12): + rootsInvL[i] = (rootsInvL[i-1] * gen12inv) % modulus + + assert rootsInvL[i] != 1 +assert ((rootsInvL[2**12 - 1] * gen12inv) % modulus) == 1 + +rootsL = map(lambda x: ' "%x"' % x, rootsL) +rootsInvL = map(lambda x: ' "%x"' % x, rootsInvL) + +roots = ",\n".join(rootsL) +rootsInv = ",\n".join(rootsInvL) + +output = """ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/**** + * NOTE: This file was auto-generated from gen_params.py. + * Do not edit this file. Instead, edit the script. + */ + +#ifndef __PARAMS_H__ +#define __PARAMS_H__ + +// A prime modulus p. +static const char *Modulus = "%(modulus)x"; + +// A generator g of a subgroup of Z*_p. +// static const char *Generator = "%(generator)x"; + +// The generator g generates a subgroup of +// order 2^IntGen2Order in Z*_p. +static const int Generator2Order = %(twoorder)d; + +static const char *Roots[] = { + %(roots)s +}; + +static const char *RootsInv[] = { + %(rootsInv)s +}; + +#endif /* __PARAMS_H__ */ +""" % { + 'modulus': modulus, + 'generator': gen12, + 'twoorder': 12, + 'roots': roots, + 'rootsInv': rootsInv, +} + +print output diff --git a/third_party/prio/prio/mparray.c b/third_party/prio/prio/mparray.c new file mode 100644 index 000000000000..a49f376767ec --- /dev/null +++ b/third_party/prio/prio/mparray.c @@ -0,0 +1,196 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include +#include + +#include "config.h" +#include "mparray.h" +#include "share.h" +#include "util.h" + +MPArray +MPArray_new (int len) +{ + SECStatus rv = SECSuccess; + MPArray arr = malloc (sizeof *arr); + if (!arr) + return NULL; + + arr->data = NULL; + arr->len = len; + + P_CHECKA(arr->data = calloc (len, sizeof (mp_int))); + + // Initialize these to NULL so that we can figure + // out which allocations failed (if any) + for (int i=0; idata[i]) = NULL; + } + + for (int i=0; idata[i])); + } + +cleanup: + if (rv != SECSuccess) { + MPArray_clear (arr); + return NULL; + } + + return arr; +} + +MPArray +MPArray_new_bool (int len, const bool *data_in) +{ + MPArray arr = MPArray_new (len); + if (arr == NULL) return NULL; + + for (int i=0; idata[i], data_in[i]); + } + + return arr; +} + +SECStatus +MPArray_resize (MPArray arr, int newlen) +{ + SECStatus rv = SECSuccess; + const int oldlen = arr->len; + + if (oldlen == newlen) + return rv; + + // TODO: Use realloc for this? + mp_int *newdata = calloc (newlen, sizeof (mp_int)); + if (newdata == NULL) + return SECFailure; + + for (int i = 0; i < newlen; i++) { + MP_DIGITS (&newdata[i]) = NULL; + } + + // Initialize new array + for (int i = 0; i < newlen; i++) { + MP_CHECKC (mp_init (&newdata[i])); + } + + // Copy old data into new array + for (int i = 0; i < newlen && i < oldlen; i++) { + MP_CHECKC (mp_copy (&arr->data[i], &newdata[i])); + } + + // Free old data + for (int i = 0; i < oldlen; i++) { + mp_clear (&arr->data[i]); + } + free (arr->data); + arr->data = newdata; + arr->len = newlen; + +cleanup: + if (rv != SECSuccess) { + for (int i=0; i < newlen; i++) { + mp_clear (&newdata[i]); + } + free (newdata); + } + + return rv; +} + +MPArray +MPArray_dup (const_MPArray src) +{ + MPArray dst = MPArray_new (src->len); + if (!dst) return NULL; + + SECStatus rv = MPArray_copy (dst, src); + if (rv == SECSuccess) { + return dst; + } else { + MPArray_clear (dst); + return NULL; + } +} + +SECStatus +MPArray_copy (MPArray dst, const_MPArray src) +{ + if (dst->len != src->len) + return SECFailure; + + for (int i=0; ilen; i++) { + if (mp_copy(&src->data[i], &dst->data[i]) != MP_OKAY) { + return SECFailure; + } + } + + return SECSuccess; +} + + +SECStatus +MPArray_set_share (MPArray arrA, MPArray arrB, + const_MPArray src, const_PrioConfig cfg) +{ + SECStatus rv = SECSuccess; + if (arrA->len != src->len || arrB->len != src->len) + return SECFailure; + + const int len = src->len; + + for (int i=0; i < len; i++) { + P_CHECK(share_int (cfg, &src->data[i], &arrA->data[i], &arrB->data[i])); + } + + return rv; +} + + +void +MPArray_clear (MPArray arr) +{ + if (arr == NULL) return; + + if (arr->data != NULL) { + for (int i=0; ilen; i++) { + mp_clear(&arr->data[i]); + } + free (arr->data); + } + free (arr); +} + +SECStatus +MPArray_addmod (MPArray dst, const_MPArray to_add, const mp_int *mod) +{ + if (dst->len != to_add->len) + return SECFailure; + + for (int i=0; ilen; i++) { + MP_CHECK (mp_addmod (&dst->data[i], &to_add->data[i], mod, &dst->data[i])); + } + + return SECSuccess; +} + +bool +MPArray_areEqual (const_MPArray arr1, const_MPArray arr2) +{ + if (arr1->len != arr2->len) return false; + + for (int i=0; ilen; i++) { + if (mp_cmp (&arr1->data[i], &arr2->data[i])) + return false; + } + + return true; +} diff --git a/third_party/prio/prio/mparray.h b/third_party/prio/prio/mparray.h new file mode 100644 index 000000000000..b3b9c5d6e459 --- /dev/null +++ b/third_party/prio/prio/mparray.h @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef __MPARRAY_H__ +#define __MPARRAY_H__ + +#include +#include + +struct mparray { + int len; + mp_int *data; +}; + +typedef struct mparray *MPArray; +typedef const struct mparray *const_MPArray; + +/* + * Initialize an array of `mp_int`s of the given length. + */ +MPArray MPArray_new (int len); +void MPArray_clear (MPArray arr); + +/* + * Copies secret sharing of data from src into arrays + * arrA and arrB. The lengths of the three input arrays + * must be identical. + */ +SECStatus MPArray_set_share (MPArray arrA, MPArray arrB, + const_MPArray src, const_PrioConfig cfg); + +/* + * Initializes array with 0/1 values specified in boolean array `data_in` + */ +MPArray MPArray_new_bool (int len, const bool *data_in); + +/* + * Expands or shrinks the MPArray to the desired size. If shrinking, + * will clear the values on the end of array. + */ +SECStatus MPArray_resize (MPArray arr, int newlen); + +/* + * Initializes dst and creates a duplicate of the array in src. + */ +MPArray MPArray_dup (const_MPArray src); + +/* + * Copies array from src to dst. Arrays must have the same length. + */ +SECStatus MPArray_copy (MPArray dst, const_MPArray src); + +/* For each index i into the array, set: + * dst[i] = dst[i] + to_add[i] (modulo mod) + */ +SECStatus MPArray_addmod (MPArray dst, const_MPArray to_add, + const mp_int *mod); + +/* + * Return true iff the two arrays are equal in length + * and contents. This comparison is NOT constant time. + */ +bool MPArray_areEqual (const_MPArray arr1, const_MPArray arr2); + +#endif /* __MPARRAY_H__ */ + diff --git a/third_party/prio/prio/params.h b/third_party/prio/prio/params.h new file mode 100644 index 000000000000..4680671a3662 --- /dev/null +++ b/third_party/prio/prio/params.h @@ -0,0 +1,8226 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/**** + * NOTE: This file was auto-generated from gen_params.py. + * Do not edit this file. Instead, edit the script. + */ + +#ifndef __PARAMS_H__ +#define __PARAMS_H__ + +// A prime modulus p. +static const char *Modulus = "8000000000000000080001"; + +// A generator g of a subgroup of Z*_p. +// static const char *Generator = "5569560418e73ff9db709"; + +// The generator g generates a subgroup of +// order 2^Generator2Order in Z*_p. +static const int Generator2Order = 12; + +static const char *Roots[] = { + "1", + "5569560418e73ff9db709", + "5bf795c6d548a19b6ac340", + "760df490123f6613b0a970", + "7cec29d14a0eefb222bde7", + "3c70a3f0e9c5b206031a33", + "1cec8c96472b84936bbc22", + "3315173915ca23d8c1b814", + "39a0c4e1da321f1bc126f4", + "760f3656c1130b21d369d9", + "452231c3bcde7b7b5b0af8", + "6fe27c77d57e2feb8cbcbf", + "3a7a488015e75feec809f8", + "c16d15fea9d61c8df5121", + "5a8a9b5c659b71e837ea18", + "506d84c9f4d4bc400fdd25", + "4d7566cd294f75be6620f3", + "5f80095f2580ec4cf13b51", + "34eea7a66e8ff3dcc8988e", + "899b1ac6f72ffff8aedfc", + "3cb5a124ce563c3967dbc3", + "16d5205447831696c5d6a0", + "414e761d40341e7f97c304", + "498104aa12355244a9b0d6", + "3a8c5a9525f5d62cea294d", + "1c90fea5f39d8ac4dfc2a3", + "6a716dae106b9aeff2133e", + "735cfad9acf49090fb7037", + "5f4e7c70ff55ff2f888f05", + "2f39a2788d5c2a24e16acc", + "38d9d05f9463a537f470b2", + "72b5d8f8e65cb7509a93d8", + "75066462fdbbc7301e209b", + "55afbc51e7c2cc748942ac", + "47a1f466100bf70dd5689", + "57d88b5e0b434eb1a0dc08", + "27ec8c6636679988dd1267", + "4818e9ef0ea7625cfc3d0", + "68fa3ecc3845db5d523ad9", + "4c95bed884bd87ec1d5e70", + "7136b3dd116ed121aab68", + "60617400353c1eb8e8832b", + "19772e34181f57b670bf9", + "2f58f2df794a35875efc99", + "690aa96130f8c533d77ce4", + "df261ad3b5157a525bb81", + "6a437e22c95fc6c6a4449d", + "1cc2526113f2bae9b540c1", + "7fc2bcc524b4326eb8303d", + "751e9eb348bc8239d6e118", + "2fb170a11f1aecdf586d25", + "32aafc640e8c99bda8faa7", + "552aca5af025ea1e84aadb", + "30a3461d63ca9807464dd6", + "3f68fa1a9ab7772758d0ba", + "6ba1300374acd487b23577", + "35865b2ca16d3453781f41", + "3d1155c4a53835d991a0f", + "74bb588b5553c2b2d4ac78", + "3778fd3a46ffde4755b6ce", + "1d2b9ca2f44294070d4e86", + "38596ed050f14596adc07f", + "2015aa6fc7e48fa3bc5ab5", + "2ad2546b270547fc24541b", + "1dd1b432dc809fe4c879b3", + "149e6a0b6c6543ae895e07", + "7851b3168b92e5daed021f", + "2bee268df09cc40864a917", + "76c2f0ba37187112ee4d4d", + "53016aa1427381b9f28ea5", + "397f144a181805e1a097c9", + "634478b621f7f0a455c48c", + "7cc0116bd0bc164835ee72", + "310e395e429c4494a5f850", + "63e0dbdfb13b4fbb46f00c", + "4a9e2e5d8ad0e2e82aa7de", + "7d0578a8908ba294259bd", + "17276a59aa9630c1141c17", + "393fe0be8f011593a7e1ef", + "475e84f70334cc0bc8292", + "1ccd174e9aa4e58e7414bc", + "19b666810d736e639b51f2", + "2a48d89ce122dfa7deba2f", + "6520599b30ba3568ad0f09", + "4b35e35e82bffb49d0d830", + "3943e926fbe3d426004ea9", + "4e501beb4617be0f02deb4", + "343dad4f059acb87d3b0e2", + "7bb4f9d707b4ee3a20e779", + "7de4927696bdd6d3b718", + "6da3828f2d4926651f7a27", + "3601174a7dc823bf4dc3a6", + "223160cdd1bfa322ca3e6c", + "31a504d1dcc251075e4436", + "1b1ca5d6c688c4cf99448d", + "4309c1c59a581af63d922d", + "6077a88144957827c07205", + "22e321253c3e0fb875c4df", + "6b4728ee168cd23e2fe47c", + "1c35e13f8ffb7c470fa61c", + "4bacbc68650c41520d312c", + "455c9131bfa1c33274be37", + "23c82ae839bf5380a55acf", + "171e59c89024b148534f1b", + "165ff53589519199fc1846", + "69bb33c18017fddf18d091", + "2797689917c95a9d4073ae", + "527c4b155e3708972293d1", + "6e007172a16a9c673e635d", + "1921f3262afb2f3766f357", + "70a2d453b688803716fdbf", + "4fbc987e428ed0ce9cb76c", + "58320debe89492ceee77e", + "1b0c27c7452322264822f3", + "66ffe80af410522139e92f", + "5e56a7d976f1a3334f57c3", + "536a736ad3a37793dd9f54", + "407333b3b6a3bed3ef8920", + "76fed7d89907843db9af52", + "18019c176b4c9453028db8", + "4a54d9b3589d5340a01e23", + "1a4e5bc143bf00e8928403", + "61f4a55b140e767495cd59", + "25cab751e23d8e69bb5048", + "591bac661062f64b8e3f2c", + "7006ef130d31e12bc44c5a", + "6a23876a8c802d81d83d29", + "7cf9338ca9bcab73862b81", + "e941ecc714605cea72177", + "4839c6454f97ececa9969f", + "672d7083ec424e5d883cec", + "3722a55f27f2c02b34eddc", + "4f72850630f6f8c1a68862", + "1a63315aa52cb254b65ce0", + "5a0c2602dcbbbf468b67e0", + "23f219093e9b0bb3b5217d", + "4f6d8c8b0b9b376d42c4b1", + "7abf68b2e4cc9e3a3b2c5f", + "75f4eb6de0d35eeaa16cf8", + "6a81a8d913b71671629ad5", + "3afeb7cc8f8e5bb8770da", + "2b0fed7a534d25697e5c7b", + "2964973c288dced7dae8fc", + "a6c54d0ec55adb4911efd", + "7e958697030784ae5ddf86", + "7fd4ee663460087b793a80", + "5cafa83a10f929b5076c60", + "452d3dfff11e24bf680356", + "39242760b51f2f93fd4721", + "18ec20d19a478746123b", + "30f4f5617cc73435ce74c2", + "1851e925707895d37a37f2", + "6400e87749e3bcbd750d89", + "6c8879d694e1a0b99f8e42", + "3ecf9d05cd62341c4f7784", + "7895b432001edf846b7b3e", + "7c6b359299af5c59043711", + "13f13f9f2c877cb73ba5c", + "2193bc73ac4b40415c95b5", + "6351b2a5f477112f552683", + "48eaf0293f956717b8f048", + "21a363ab0e08a4336f2e44", + "d8c34dffd92c1a20d6a9a", + "7dc98aa964908b313939a9", + "327b2b8d0b75e0d83a5b04", + "2d1b2f087facf1fbfc7e69", + "6e97dd298eaee757a3cec1", + "504d29ae2e5a021d2bb278", + "5344962f90f45cfaeb1bce", + "767dc9d34c09b03db4a0e9", + "731a7b89f357bfb855a5b2", + "42cd59499a0ef57d6b0009", + "5d711409f3faa9ea87abfc", + "352389083277fbbbe66ac3", + "30a77107da1d91a699e9f5", + "39bf9c3f1f0a1a15264530", + "5ce5e0595ad07c8855357b", + "4499c1c16fec3546d5903c", + "5b8e9d8b290e89e5d9afc3", + "214f18ae0c9aa7a1b8c02e", + "639c2fcec8b9dfcc987387", + "1536906705870049755028", + "e0800809dbab6d41345b4", + "39489c7fdb445490d498cd", + "52c4d1c2ad153a3f70bc0a", + "540f5a33d5aeafadcad19d", + "6081e77fedf3898fd66607", + "584b7d6f0b43ddd0b397e4", + "7d8b341c82b019a8d56c92", + "2478db790ed59756cef964", + "93cbb2483673e4e0dda30", + "18ba9d869c489f11ce52e7", + "52cfcbd15dfc6c476cfc76", + "7ae1d007cf030664c6b815", + "9bea90a26f9e93743a998", + "7e62c15038abb8244531b4", + "3cb748f77d638122329dca", + "1fa330f6dd5f3ca09176ce", + "779559a53e6b62275896e9", + "51a9b0945a0908b1d40d24", + "2b13e041339df4d5a521ce", + "7256923d608836710a659c", + "48a999a2dc1a23a934a6fc", + "ef75fc5d77fc146e975f7", + "a058b3353ac6290d9f864", + "290ac68bec8aa8955b7e97", + "754ffe6bc2e7525e892fe", + "5d7c2a1d1267b7a252da1", + "35714b90920ce6fe1f850", + "456138a50c3717947be48e", + "1e2093f76475f58a2dfd79", + "4d8859f357a36792b7211f", + "3505fcb3eb2690f88b3be3", + "2735b2e6f5f08a9e9418bb", + "4c1f6b587fd26654ea69e1", + "351c5a0b997e45ec21b614", + "1c960c994194a1366a2222", + "352a4a136ebd7ef294f370", + "2df28a1b78b46f16aaf53b", + "29bbe5fdf14e69065cb80c", + "30eff32d49c10f325b8e9c", + "628d18e095a8dbcb9f43bf", + "1efd2b46d4a8724e929fd9", + "13221a23af3045ec5cea35", + "15d4218f4bbf0c95cd9649", + "3f5027ce278d444a4dd243", + "2d5e8f78718c2d4660cc69", + "49cb6ac7a2bfdc54300006", + "a134915353ce113eb72dd", + "479e7025ae3fdc2bbcbe22", + "64ed03e382c11a32e34cf4", + "3d73fd3c3744e9ec5d2d04", + "116da33e19c8b80384fe28", + "68ee183b2208228da8bab7", + "1abc0d15793c655cee4a9c", + "307727bd97c5db086074b3", + "1d6812727d8421d0e03a6f", + "5b39ddb704fa58142076d", + "2f78c0f7e7a90558573941", + "35a3ab4773c5054a30c44d", + "76c132264ad2a774a55164", + "620084c5da2910137e2b10", + "31541f24753a28cc5b51d8", + "52f5adde99e4501e4d1c61", + "779eb73caa637aa28db87c", + "3a89578d6ca992f91249be", + "536be2b3e3829710aec51b", + "53c95b2787b88db0682132", + "4a0fb16cc4d1bdfbb239c", + "8b462e0f7448b549fd688", + "783e0229f219bc18b705e4", + "17dd6e40297f1d32786291", + "4f2cc1f6f7aba8c20a670c", + "479fc9912c9c81152eb474", + "117480f169f81bb3e8609c", + "df7ae04689867c9ad97d8", + "70a1107bc42bfb598164ea", + "557361125249092a7bf932", + "5cd319aa7906a96d2f6c7e", + "72a7ca4a8dc56f9c652281", + "dce90e419e8d3f96eb5b4", + "15bb5d9b44eebb27a1e60e", + "2baeaedf76503008b9e428", + "7aa81a94a5a230cf59a0b9", + "55d7bf2f5724b5dd0a04ae", + "e1ef803b3674bf39884ae", + "1738ee1c8e104064e07249", + "7ce4bd3337a7333159cb2c", + "38110b962a169200cc9f0a", + "1ddeaa1e583e9146210f69", + "cfc86f804a481df48868e", + "55a41153a33cb4649703a5", + "5eb4d93a33b2d2e2c2adad", + "4cd904fd9401eac5ad7f1c", + "502c6a2df8916b18106088", + "6259df76b87ab2eff6659f", + "2f85e68dfb9aea66d7f07c", + "1f1eea8231315133cde938", + "6863984d7793407587e8e2", + "7b5272bdeb1b01fe56bc29", + "26b7df388a02a8279b0652", + "7fe76cd2c5affa913c2b41", + "733b81816da25936e81af1", + "235baa54adcc67af92d06d", + "4e6cb8ec1b00e2f28b3a7e", + "88b8371baafc87a9713f4", + "3b0283be973d59ebf4242f", + "587cce1cbd0dee8b98f262", + "6cfdd09fe2bd66b85c2e00", + "12a3196afc09a79694eb31", + "4feae15528510f186aa1fa", + "449ccc3923e92a0bd2e3ba", + "4f74e7ee01738298062093", + "6ce98c831091728c0e73bb", + "4bfd93fb985a44ed0569f4", + "3c8b04f81e14e10396b582", + "6cf76079225189eb2608ce", + "76e87d4d2740e137511b26", + "c62790b24bc842a717e31", + "516640d56302eb15061b25", + "60c8d2e958387c0d0627a8", + "402c7149b20bce787c7e83", + "64c275af1abda385c2af0b", + "5088a2317aa34dd5bb1b4d", + "67a9131aabd5255bdce732", + "d452f805a2c35e686e107", + "5ef5512b3384aa1243daa6", + "6c1076c01e9e44fb047889", + "46bdbd32d31b2a36e04e0a", + "527456447c2748239033cf", + "356211f56936e183312837", + "449d4feccb40da2e122aa1", + "43ee4b35cb3cdc84d1d5db", + "7651ee2e0f4d348cbe95bd", + "2ef2be0f7e33ace73bab4", + "4b8968b5c5a93dbb4b2b55", + "7d2db742721c9ba686ff30", + "48e4926c40cd6ab5e92ffc", + "506e6a05e8de5c9198ae69", + "74a156e77589342bbef3d5", + "798019b397419c8d54fda1", + "5a7d2dd2aa2028d4da8f42", + "5ebb44d93cb77417b61c4f", + "1630a212afc84f038374d9", + "3ae30b1b5931eb630bbf6c", + "37ba1e609c7b12a8e32733", + "238de3e1606bc0e1c33adb", + "149d706db4fce00c71da76", + "524b77666e02692a642407", + "ac6c9987de6c73f2259d9", + "51c819b9ec191b60920096", + "a961f7b95836d3a578170", + "2bb1db818cfd733dcce0b0", + "51eb043d3564fa91215f1b", + "23693b4063cf0fa20dad42", + "4fbaae68fdb253d715d528", + "69a784edece7c38bcf7297", + "1d595362f3a1b4c77729e7", + "22f18c95264f1fb742c348", + "5637e5d4438a119a23f043", + "75a7fc26a6faacf109b345", + "3a051daeeae9770973713e", + "4b21ef5da2b744139c3cf1", + "471eec9edf3f5af18be6bf", + "341851bd5e48e20f0a412f", + "f125d56d3c0c2aaf7ad05", + "c91beeecaf54c95dc1b37", + "38e1e6200860f4072a8a1d", + "3b3a5f854ba249c04d075", + "4170c011864f5582d6a738", + "17fc45b2690c315a5249e8", + "1bab6e088abbb7a786ff3d", + "1b388caec4f8538425d93c", + "6df80f50564e811e245eb5", + "65a5c9fe061a38a8c6c2e0", + "18e5cae7f3bd61293a8c2b", + "408e6268fcd75479c3bece", + "514d622fcdfc26212b5d14", + "435abcd28c0cfc9f321db0", + "710608c33a517ea5d5359e", + "96cf28ae783cd1e477aa5", + "5685392e26e4e637394c54", + "32f953543bd07093a29e5f", + "6806f2889f5316f4c57e07", + "668c0767178119bd41ac3", + "6e885e79f7b5fe77214da5", + "3915c8d33da94da27c1249", + "762f2aec62b91b262cc99f", + "7ce0b194ba3e31249ab36d", + "5dd52a5a11350a9b7572fc", + "404ae85658f9b08174632", + "7772e0b990ccdc614c11c3", + "573747456cbe53c844796c", + "3cf5810d8c38a097a7561f", + "269c017af27ad44e6b201e", + "2835e7f4b39073c5a451bb", + "ba07dcfdd701f16f45aca", + "1b6a00fcabec41d4b43ba2", + "67da5d093fc207176dbdb2", + "311601fec45703953f2b91", + "483ca240f22946b37af3c", + "758f193f192584a42ebc31", + "16fb077509115b4c0ee442", + "2334ccde40867fa1d0bc15", + "3f0177714af6ab07d870c0", + "697c3f9accda8d3543f182", + "59a5901c521b74864c8fb2", + "17961b8be9d0332a213177", + "69defadcac1e44c7a1c0bd", + "2df92a33b308b4efdcaee3", + "3a603b28f5e57fbfd764b9", + "65c75439faa2303912b32e", + "121daf29269045f5bdd20b", + "7adedaa3d8ff64ef5910ed", + "7b59158d38abcc0653e41", + "63bd657552fcd47a1fea3b", + "3951fc47c9cf417968c09a", + "7b97dd845f9509d060f296", + "67cd089f73cfc8807dd840", + "b17adb15bd895ea825438", + "3860f5646a470f19d720f1", + "1365575dcf06e2b1987b3f", + "5fdf7c6cf80f5f4d619b9c", + "1e86f8d9f30e1c9ee2f741", + "2f4da63191088795366c81", + "1f527bd93add787e619f2f", + "1bf7de225f0abb4eae1da2", + "7eede9c7d2fd05759ff0d5", + "7c4ebd51c09994a5c2702b", + "2f27f9f5b37e53f26a3367", + "1a91f5500bd170effa0820", + "14e76412c1e117fa60f762", + "27869ae6bfa80052e928d4", + "36e5208ae458480078d5d", + "193c88995f60dbabf1ee79", + "55509fd3a52bd88fe29e11", + "60188d16e528a5d2e06d3d", + "3cd40ccabd157073f9e356", + "6f7417b6bfc27461fd2524", + "60f671cf9f662680d04313", + "6a1b97013fc782623a1d18", + "4a5a912df871eba16ca2bf", + "4bafb874450e24655961f3", + "7fa7e63240bd502dd4b06b", + "3ac9b63dfc3067c1c4627d", + "11978ed9a01677cec42ee0", + "6b488f646fce9835d43f44", + "2449f6a2ba5fdac5a9c1d4", + "1fb4d17ac6ee317ce5a547", + "230119c3b2a6b1bafca00", + "5ba00e958e1473bae28031", + "2e0a934adfe422dd136191", + "64af53c3c0ad963e3055c1", + "173ee21e60a88ae566e166", + "c25f982adccb58e81ce02", + "1c0d48f6283945e321fdac", + "15b86ea9fb5f9d46bb9d95", + "12ea1cc2026e4f5211a159", + "4948e72d6c06974bcf7212", + "474d5e705efa51e5e97d39", + "3a928b86dc180342e1f053", + "68570d0c5fc94ab3c18486", + "33294a38a5c8a431b3624c", + "7f5271355a686a4df7e516", + "2176005ea62a7fae1a0ec5", + "7b7ba8150a404335a3e978", + "7ee167869f16d0f3096184", + "37b012fbed4994b5319766", + "5a9897a2da0299756dfdb3", + "22c922d5b0fc736e5f1adc", + "7c793c0d415e26d57ec92", + "11326e189db8b15b0744ff", + "39f2517276288f74c45e3a", + "47b94fbc156b869e9d16b9", + "4a27b941aa4c6ad1e07548", + "796842dd6bfad2f98912a6", + "561331256e1d21664a1287", + "4d3db82b9d6efaedc42576", + "26293d249066a3014c3338", + "29d711357943b0afaa5b59", + "3baf4fa4e9f273acdf732c", + "22f4901fc0a8b24cf62fe4", + "fa65751eb4d84785986bf", + "1c89d8520ef104ebd20ee", + "3251a62ebf3abdb7c9ed58", + "59db917020bf7253782d5c", + "52c455dad0b267d43552f0", + "599102d1f2500d61d762c9", + "77024358b3e776b2c5e1af", + "3248d851d401112b750bc", + "36f20d7e24da8778ce35f5", + "4dbcbf0e0833361017aadd", + "7a6a150f8921047e15edcb", + "5d53571a7cc3688e6944b0", + "3de0a5abf20a4845d76439", + "330bf157841f4554c8f5de", + "7faf5fb28aa48ff83cc07", + "ff765fa35889a47189d5c", + "1bb928a5ce5b6a93e4a6be", + "443f4b4ed3b1f2c8fe8ce8", + "159314ac561f7431a71dd2", + "2ad8da8cd83b1521d7659a", + "2e6c1f41a9866f4d867e01", + "2bf095a2fbcdb3391aec69", + "7286bedeaa0c2687819d8a", + "1a1cfff05adf1a427c023e", + "7677202d8f05f9287a6047", + "144036e909f39a00a79653", + "5d5d0b6bedf48b96c5eb79", + "2aeb5606838c910769daa9", + "36b57535eb2f884ec435f1", + "26639427b4cd468207f354", + "567c07ffdf5609acdc57cd", + "46c6a4606b83331dd733e4", + "214ab6242649bf5f0673b5", + "456b75b7118ddbd9c05113", + "23f47a79fc10179e2f1aad", + "6750d083991451ddf24ddc", + "9a91d432ec896438ac971", + "62cba5cd6ece1fcc005653", + "146e2b3f7404eaa2825f64", + "73a1489a18b0815a03faf8", + "4b81add44caab6287f5254", + "43da9e4b9fc98c3225df02", + "73c9485e5e5379f878695", + "4b0e392a6b94b0716bcb0f", + "627d01094a2553e7bdde46", + "6e1c49a1adf3346b270d76", + "2c11fd859f539479044b3d", + "5ad56a9a03d1277384501c", + "538b76dc0991647c99d6ab", + "2fe38c447768175651bb27", + "2d8207ca3331c2f27a3943", + "ac1c0028dc3aa005da816", + "5830e5e1c9294904118c10", + "4fc1aa30a26bf05e1cf79e", + "37ca6d3b30cb2687e44f7a", + "3fbae766d352bf62d71ec9", + "5b8558cbc60eeb5d4d1e0c", + "3c0ef922648f93834d2bac", + "1f216750a4d1686b3b2227", + "54449f7dccf77fd8f14fff", + "25b4f424465c145a893505", + "1533a8f5ee81c2d4352c6", + "747f5812283a8ba1a43af4", + "42d3b2e606813eb48865e1", + "771e23d6155cbd6574be92", + "6937a623eafb54374944c3", + "7ebd8ffb86035ffa249a5c", + "65a59676f2a0f7f5358513", + "4cc1b8f60c7b3b604dd7f3", + "8c1b60a22d754654b3b0e", + "3542a00727cde7902f64", + "46dbb8e8c99f2d8cf603ab", + "449f89bc8e75ebc93c06c2", + "42fe3f1413aec51428fb64", + "6ea50d7820cf1c46cfdea8", + "5e81e2ee54fa1c8e9216bf", + "3cdbf096f176a11d399e68", + "1b8c58018b9ec962054ab0", + "292e4d75da1a76fa4eb730", + "23f737b6f1527cfce0303e", + "1f2e34fd7020d08b01b7f2", + "1103bc87eb4e4e572c882c", + "4796fc52e00fbc5d65fc02", + "6ecdfc4db1fa1b0104403a", + "5d780dd5bc1f62ed520130", + "403ccf27d3ff3c3686d654", + "7a42533b0f16560c421482", + "3c52f4c6c583d5b2a18105", + "32e84128c0dfcdebdcfc5e", + "db6d45038525122246c3a", + "7e9e8be590540d41cb48b7", + "4dac5ec68e30db33d790b3", + "4a9951c3005ac4b7d775a5", + "8d7ac16a6c7fb5dcaf362", + "7a7267a5eeee00421b1bd7", + "14b9cf8ea7c2a2aef663e9", + "7a75465db2452d11dbf6bf", + "49da4e6814895f7566132", + "6ac2b95852f2b3848657c4", + "29f43cc681e11325bf172b", + "41d82e9988854950bdb48c", + "6f5834f39b940405114e26", + "754181ae9689816d4fae85", + "394398fcb25e82a48b8d32", + "693e564c43456862d84db1", + "5fa8c4e879ae9ef5c6f178", + "3937d6181e67f43d9bec08", + "4bd73bb75df0b9c8f31e93", + "417a5a771b0fe4694065d", + "47ddc74fced651c57b4d1f", + "7746c161815ab2091d9e21", + "72216a00ebfc9de1e963c8", + "74c5b771dcd8c4719355d3", + "450dcdc45566039112cb21", + "1ffc37c5751a51bd676a97", + "553adfba4c4a6d20491557", + "d65fa4e9fad0f9180af7", + "6151a60a864edd0e7c7b30", + "57a6c26c5e5dea61f133ee", + "39f0a0674e65b2cad4a706", + "29105da153f2a098ad094b", + "c16242d78c3d8fbfddea4", + "235bf7672a2cda1ab01fb3", + "3faddb5ddd2bdc683de72f", + "75964f1abb3f7cc93e9f96", + "62019722b2962f2ad1787f", + "67427f6921fbdb98c3e375", + "2a0c42a5cba7fe55a006e5", + "2bcf3f6e0be988750bc0c3", + "31cc33f2d92bb3dc73372f", + "553e86c66c2fba13b95f56", + "75f53c77a2d34dd51c6882", + "6f8c0ef46d2275dfe7e84f", + "5c1c9591ed7cecac5be504", + "e0fd267f226bcb77b4105", + "1aa73126a375b6cf5e8b5", + "5e4eaaa44cce4760757194", + "a15cce75efaba6c1b571b", + "7f779a7314dbb8bea5c652", + "2359b0102f9a1f774278d", + "20bd84ec27cae248ea38a3", + "38a3fd25a6d9f4f7c85efc", + "2117da386a0ba848e04619", + "6db55a7581d577d97e45ef", + "68437c168764f9b52e36f", + "5574ce6446f5f9b2cb3ade", + "2a8fc7a338bd0e95e61238", + "6dd1e30b456df046e42f20", + "360136af955e5fa1edc1", + "403c97fd7a8e612b101803", + "e8a31983f38b3bc04d83f", + "2fc4119b8d9484cd86a0bd", + "23b23c226ec7148e9ecfd4", + "40f14f4642441c80c723a2", + "255da48e767df6db73178f", + "5f4ee2c7a7d447e781b997", + "4945531dd0d285dff322e3", + "58de9434dcaeb21007cf50", + "4eb92d6051c08bfec28d32", + "46777bd089a8dc8c44ba66", + "155305c9e80b8231f3fea7", + "27e0d5b6d5b01b974468e6", + "3337445fe49877ddd94c8c", + "23ff36317f41cdc69b5f8c", + "5798f45a6d32a5d9e220c4", + "6b1b87bf69d8ba16154459", + "d959366c9d2eed9c988e", + "7914f6f164e20860badddb", + "fca586b3bb595a8d4101", + "68bf1a165a85b17f192a39", + "7b94e69ecfb1ba4bdf42b9", + "363177aa4ad204478f4d2e", + "4ec109ed0d029a0c6bd1c3", + "ccd4be560162041ae08e2", + "3e7a71b985de5c6c7a9f57", + "1dcb001f06c75da3270a59", + "7feefa2c38e3a6212b4cc2", + "58a47971604afebfc2dfe", + "175182c7cd2ce431b0150e", + "1ff2197a0e5b3d0b65c928", + "497b40c11c5d479cab5f20", + "5448bba652328fd63e3ca2", + "748cb85b7df9ca5a82d4a0", + "5b60aca7fe85259aa048ba", + "68bba5659f4f20356a0cad", + "16a2f9f4e53133020d693f", + "75df623177a9cc914a680f", + "dfa61531c98e389318ffc", + "12502410f917e813c566e4", + "385c720d2080ae9544a074", + "15c5021e3387b5104eda39", + "6ed402123cbfe00df8030b", + "4e9e415c8033fbf3989b6d", + "1ead4bf29c5aa1e11118b1", + "3eed8387e5a22f84995caa", + "6207f87b59fc321d1fa8c5", + "5527388c03206dff6a464b", + "232706fb395f1e37b2683d", + "5eacde9e13242553f24977", + "257f0dc17de9e402db5577", + "26c8838f41263334d39302", + "5ed2c798bc4d3df9693b4a", + "59048c7bc400c1b2f055f1", + "60ea199093a4e9f80613b6", + "3fdb397b831af56c0902f1", + "47be6483decbcd32c50b44", + "715687651f6925a41a3bf1", + "5c585a64ca68d89750e9da", + "1f5e885344b51456b2195b", + "5d2602e9c7bafe79929bee", + "25b65fbcf4deba1535165c", + "4bba04cb6f7dfe33e4bd", + "4e1dab19fafdbf4d11123", + "3b79806e60c6443e5b75ae", + "28390f3626b1fdadbcbfd8", + "2ac5b705311ca0e8e6bcda", + "21cbfd5db5cf856bb6980a", + "31340daa6bee66dc702e47", + "4520d49550bf0a2328020f", + "6a91ca9f24a59bd3f77cce", + "590c069f4d458da38448fb", + "4eca5fbd35a4778cd18f80", + "288723d0eb9a25150c0772", + "6bd55e81cea4df6934b8f5", + "684e96f56360b04576ab1f", + "10c2f27dd2e5d8f77a071d", + "78b61404bffa36b135773d", + "9b13c11e290284a86caf", + "415d623b63f929b3ef879f", + "4dd2e16c6f9989907671be", + "72e3a111047449df428c07", + "27c4576460764aabe86ca", + "509ca3fe7eae200044712a", + "1488492f946cb788d721d6", + "5fd2fb0300581c5f59fa7c", + "cae1cd222ac38b9a89a19", + "62a4fc7a9af2d27e92b08f", + "2dd86ec9cb242b4e68016c", + "615326e14c6c74c717def2", + "454b67d8b7470679eeda79", + "359b739ee10f4c4f24e721", + "6714be0beb22d71708c5e6", + "571cc10547604b09ba9b69", + "64981a92737099a91d3794", + "58b898760417610a09ff41", + "5e1c654c63269bdc77fee1", + "37e704706a7967491e3628", + "76a279212b584d95ed2cd0", + "64d1d7c43b00bfc99b8bb2", + "524919eb6636c6c6c14a82", + "4176799b704bfacae7d897", + "2113e1a93f5d2f1cba0377", + "47626057be8af9d92cef74", + "31fcd9e9b87aae6bf32f83", + "2cf0b3c6e55d4f6c794d8f", + "2f36ea2bf51461b1407878", + "2840ecdbeaf847ed4e56fd", + "4dba440f7f398ce0198b25", + "6ef7e0b470470f565c088f", + "58a41d74e16c1b1fb6cbf", + "68b020f430372f0b20817e", + "396792f2585d3e823623df", + "171772c43b172c6f59b4ee", + "35da7f1fc27e6edf7e2774", + "5fe19870cf156902f09ea2", + "4a99080981fd90fd8f202c", + "4fb7ac8e103e64af4c501b", + "32124e45d595b542218cca", + "4cbbf282cb8d5b492509da", + "26e8b6fae1b81184be307f", + "4019e2ed5f4f686e75a334", + "aebf119c49f1f5d4fa77", + "214de8b9e305b92a9ebc6a", + "155503fef8a8a42650f8de", + "4cfa062853643ca21aa8e4", + "210804240b673797c1da0b", + "4499b6e3311b7fe5b9c98e", + "904098cdbfd4389279e30", + "575c81fbd5408f583cec84", + "2cb3e5c4dae6b173319195", + "411254ef95bca10cdc61b9", + "14266a10ce4302dd32d262", + "14a25dabe8f8f9bd2745b5", + "7c2bf4a989b0889ab6c2ee", + "7bb42f21df6b474c926cab", + "4edae7063e31e196fbffc4", + "706df4fd50e1c42994aed3", + "312ecee1519b0617d31186", + "32f8a36cc1b46c25cdcc28", + "6cc9f90d012be002904668", + "69498de156a0aa10a4e2dc", + "6bf558bed09b770ac7b7db", + "45166035762ea541feeea1", + "2bcddd9fb0f98505c98aa9", + "56b71258283af76e7bcfab", + "3349dac2077bfdf6a12d86", + "39450177cdd3980c4efafa", + "4ebe9580f66ecfa62bdae4", + "2d2c322dac49b5fc4277a6", + "63a2efcfe030b5eb3fd526", + "2327087d544749f348c909", + "3d49c943bed92220933501", + "2501ea3eadb12569e01e7e", + "7c2fed1746d715eb95529", + "3adbdefe2bc4d894d3eea5", + "574f9294e066c8fdb761b7", + "69527863032c1ba7d7e238", + "78778c448d7d69eeff19c7", + "63a482d47b34384d6c0abf", + "37120883f03d674fbee3d7", + "46789b05c1e88afd58b2c6", + "62e55ea318373ea102e458", + "7bfe5c12baaa86c60d8117", + "6c065cf636d6bc65762095", + "45109475272b0ee96581b7", + "1b4e22a54398ec5712c2f5", + "c0bc8c55f3b95e521ebf8", + "614224558d52e5d4eb23b8", + "532cc2e0afe1d979c42a70", + "6e48887c0bee3ba8386f63", + "726d30610282ed39d8f203", + "53a902325a9087232d64a1", + "6e72d626e97997cb842159", + "1fa48382ab305e0404adc", + "3d3a2d2ef7d22dc8adb10e", + "59aab11c164124e5cdf604", + "7529b300b4b89c580a5f62", + "206a9c38358f291b01e407", + "47267802b4baf11a616d7b", + "1d50b663f8750fc777a8a9", + "4113025c4b26d50d501a53", + "21e6a33067365b1e718020", + "1e3f1f00ee5c87d8bcc6a5", + "37902c15fea70cc2588984", + "330554538efb3452d928d9", + "eb12a34ffd8e97426aebf", + "7f53a40fb6d59c55fc0a6a", + "2ccc62a5fe0c2d164b78ac", + "3a82f64175d5b3caec9c53", + "676d8d92a92b0706da21e1", + "5c91f707bee21c71c33c34", + "2ab6145578df975521753c", + "6e20ab59697e8bf608ee9d", + "96afde4db924db62eec7", + "2d980e097ecb2ab91b9b92", + "352a1b67a355f38121c462", + "7c3ad9d6ed54817d082b65", + "65e071aa89e8e9caa17f", + "4e4d1094ae9ce9f42b1d71", + "6d82429df8c04f3e8cbdea", + "201a5f031183f9e3136174", + "4b31d20ed3a1f68f117d30", + "309eb70bbb47b20185134f", + "bf1c05f166718be1c6836", + "29dc0e371f2a3ea6cf4d60", + "610a799f5f9443dd8f333", + "7ca0b74cff2de67657aaa1", + "31018337a926110b0a5b91", + "3c066553be4fa2a741db4d", + "194fc13ec819c9e2289cea", + "3c7d066200b6ae5892048a", + "768b4e15703c2b99a95ee7", + "66673b06f4474ab9ac84e3", + "75b60c74c3f4835e0ba3f1", + "282bde17894173789173e7", + "6b386c8a9795cf0b45e160", + "1984882a708094eb26643e", + "7e84a589b79843d0f09d89", + "7f30d40bb0193bcc3bff38", + "1e9e640158c2d5ef405818", + "46f7147d837df6469c39be", + "717a62d953937ab8d63ef4", + "29d27ddd5f46b0a514ec85", + "7f5d5abee4ea627ca346c", + "1ba30d22d8ca0e3412c0e7", + "1b892a6bc6d106036dc210", + "78208a8be2c33504df2573", + "2d92e146c92e5c2141114e", + "65ccc844f43d7740c3bb83", + "6cbec7ee27571943d99309", + "7ab8d7968452d732fc3362", + "51e871e33b066886db1e57", + "70cc62d0a35cccb85972ee", + "7db23dcfd5b48847b2da44", + "38863908f348e0ff24d2ea", + "5f7998cdc984bda089a530", + "593ba411e3481cff090a6e", + "30c01b8abdb9d98a7941dd", + "46861d4c2ab5de181f3e32", + "2f44e6e7eed452c1b02ade", + "31e4383d0d65d0adfc3084", + "44b51755bfc5410d6cfad6", + "2b89a454954d4c6b2e2120", + "7a1817cf8f21c4f863437a", + "1ece2489d9c16fd0d7c093", + "7fd049d0f5d16bca84fbf0", + "284cbec8937114a1728cdb", + "2a6ced30aaeaaa3957eaf", + "41ec16a5c725c7d32d3a8d", + "2c1cf6d476ed98aad97b90", + "715fb02624875de3ce495c", + "3d325eede75d0a573042e2", + "4550a8c9126d63e137546e", + "116c396589d81e0684d5a0", + "48ad93093caf03d61b0aa8", + "29bfa87365d098b3fe8377", + "3e14120ed24ebae50e64ef", + "1924697a3681efc60e8e70", + "1e1de465daadd9547d63fe", + "32c9397c9adff65d943965", + "41ff1be99bebe99b10f273", + "cb351e8f1a28278af3af8", + "5939fc19fad9c14c8917a9", + "634af4f8ff5eecb70f9b3b", + "14b126e3c0b0f4dae2ddfb", + "39bc9fe63b4ca1891dbe7f", + "3b77afb6ec85d92608bbc9", + "6308b8f5574126f70ec3cf", + "2928531ef291fb90d243e3", + "7d43897c9a717ea4ffaf53", + "542f3c6130072ffd145c0a", + "57b79cb347145bcbe43bcf", + "68855602ae559673b8a2dc", + "77f657453333dfbed3c7e5", + "1fb7c568bdffd12b767330", + "abbcfb2e4c3da6b090978", + "36224c16a9190272a21e14", + "47df2e03e1548a16e223be", + "f6c4daf384fb3d39aa985", + "6978fb86dcb4ccc82a3738", + "670c6449f82194e5367c1d", + "75a29d53450973ae07e5b6", + "1a0cc5d78d1da3759fd0fb", + "319945f43efa75c6d6fbd6", + "4a8154e2948099e7b7c4c5", + "2353c3f920ce7af530f96d", + "781973046ae51aa956a060", + "21789b3595bc366315af2", + "4d63e68650d056d4e2cca2", + "6eceb600a9b81fd3aa7175", + "2021e0329a909a39851fe3", + "45d43d697cb8503c85839a", + "7489fd5407cd56abfcfc49", + "57bcb68e1f52791794bf4b", + "71db6b9125d5ab5b3e7493", + "4e72dcffc8f26eb136b7c7", + "890072ab6d3eb608d30ea", + "2f1b9eb8c8ceec3aba8c3f", + "269ad3cfbd18bd255786fd", + "7e18b1dc04cb3af247aa31", + "43cebcc2f248fc1fcbd6b4", + "1b9995439565d095eb8a8c", + "66e2564796168c2d0a015a", + "13c9d1e81de8cbb64a1797", + "657128352843035ba5fee1", + "58c411222783451febdf82", + "2970c6e86dd017c5341ddc", + "7bb1913bf745fa526f18a8", + "4d0a046c7ec4f54117f367", + "36f24af02e5318171bea53", + "9cf05f6855d4068390948", + "1107ffccdffb2932659325", + "2ae1383e51812f870ebf41", + "3aa6d80b7b4477df65330a", + "6cc6a998d40d1bad211cd", + "7d58cee39bf1830f1b3ec0", + "dbd1bb9693e65c5eeef4a", + "4385d494a7bdb154810c4d", + "4a64cce2fc4633dbb63e09", + "3e9654e3940c0f541b93cd", + "1207aa2a4ea7c882b5e76f", + "43bc8bffd5b4fa12491d7c", + "7df66ef2eea696dbe6ad95", + "4e203019ba4b94cd691d60", + "61978b574cf8f6d53118d6", + "14816e04a6b799d1ce9e1e", + "5c699bfc1a98ced38d7c88", + "509dfa92ab81408672391b", + "2025bd13134bf0ca69b0f6", + "675948e6670907b03227ed", + "90bd6d6fef2e358a664bf", + "2f1dd3930a2948f2187f86", + "6336954989b8a716380f64", + "2655fc5da8cafdc10e8c6c", + "be26e79f27c2fffd5718b", + "7568ac37df7da28c47bab9", + "3128342c1cd21185c739db", + "1318f3d7743d8ee4ecfdb2", + "26102582959271955d45bb", + "1118a89d656497538996f2", + "4d74065738715d35d47743", + "2644cda468b716b53c99d1", + "2aec8efef6c41604b67a83", + "76393b1564fa2cd841480e", + "87eada956963224c06418", + "44f34a642236b1e7e4c8fe", + "5edc4541d1854504d071a", + "4a292844d7aa26520c09b1", + "1526a67a2f54717285cebc", + "7decc101d84d7378c8efe2", + "1f8889a7c0321f5279b37a", + "71d26320321cdb1dc925e0", + "b8385ec48f904d72393ba", + "4a2cef4e3606d1b9422334", + "db7255fca12f37c452ffa", + "4374a87512bdcb27925ebe", + "99539a5120bf06fd3edb8", + "4f7806a65676c896ee7db9", + "365cb247c96e7933341e76", + "7964fb4049b23d750b6f0e", + "48cd6ee15c4874d342b21f", + "221728332d3142e3346be", + "198d839621f761dde4f853", + "259839d29faddb791e3548", + "15324434e27844cc4fba51", + "60e351e7834b181d30a00c", + "6337453f9c180b8ddb37c4", + "608a29bc043b54adde90b0", + "4cb0c7462e90f28fa251d", + "b5f14620587f1e8ed5a45", + "3c994e655edabd5cfbe8b8", + "35ebfb3fd5a71979daee0c", + "2a1abd32897155b55014be", + "67d12b5d61741b8623f378", + "21469f9c49fb4d2fb54baa", + "728aa131a37012e184c2b6", + "6f085a8f46a66e79fe4f92", + "1a95aa2ba56c053acf7e56", + "1f1c7eef9d0f99e1e209db", + "5b57bc12988f27dd0ed418", + "5e9464fbce6027257d92c6", + "41be4715ccf6dde8b12086", + "25ff556cf1afefe2cd2ba9", + "59f67a0c66d5e9744004c6", + "23c20aae79c2ffaa75a36c", + "574f95a475dce62a3071ca", + "4a98326f880a44e2d6ea5e", + "39f7a72e1daced6411b1a6", + "37a4477749686070e7e049", + "51524048af5a6750b1955", + "43012f86bfa02bf0033ee9", + "4253e27061630b9343ddfd", + "520db901eb8309582e12a2", + "656f70349417ef562616d7", + "13cc5c5fa7afb2b7468106", + "1916345f1ad90cf48c6472", + "a80defe299bf7c4d81738", + "673a9bc1330de8c0b0abe1", + "226f7d490aa9d47314570", + "4762e175d924ca1dff7d06", + "79ae8d3a65221805ed59d3", + "65838019d10030d2edd34c", + "46d2651ce40dd1fdd11e69", + "4277911fa0e430960db091", + "5370ef9f2399e3c803b5a6", + "69110081782c350722756f", + "be2266f15dfa6e02e4a02", + "7c64411c354fca180b974e", + "3669075c083d3a0547d7ee", + "49212e86ec70f1b328e11a", + "70628248b6cda7311de5ca", + "5593dc730a3a85d6ce77d2", + "4a2416a8cf412f996e9654", + "56f01f51a5be66f649b1d6", + "1c7c6456335bb722881302", + "4f571e68d11ba0c201ec2c", + "2f615de4e96f8f9837947f", + "9cc0a7524feb44aafa989", + "13705ad9594243161047cf", + "358734094106c4c77371f8", + "48384f03b178aecb456dbb", + "336699d6c6f15f6ab914e2", + "5dd2532249188dbe3d2539", + "520d412f22645bfa3f3a33", + "45838fc0d9bd4e814df398", + "5d172643cb569d9b2ab357", + "34470b1eee2f871c42ba71", + "16103ea0d454ef686ebf4d", + "31e4aec6d42e52c762e301", + "217d231f2ea4bf28c97e44", + "15bef1b795296c7e8862d0", + "225461e731f47cbf2cbf5f", + "520f0b6932233966b7bdb1", + "6db3eec1da4e57eacd7cf4", + "5728f13fbf1367c5292a3a", + "7856c391e8828b90a94afe", + "6b36296c1bd668243e920e", + "2f8aa359ac5538f4834ed7", + "208dfefbc938eb8f166f28", + "6506edb4005521bcb61671", + "202377a9328fcb8f661a5d", + "6f4a829757301eb1143585", + "5baffc06fe51f5caa49a4c", + "1c24006c67392d350aebe9", + "a3d31a1daca53878fe695", + "6a3f78db4e25085a772f7a", + "423813f9eb92bfadf14d9a", + "60548a10984139e59f5d8a", + "ee2c219af9300476a7d41", + "6a4862d59f8198b4ea0fd5", + "76d72d56a09f253d257f0e", + "52492b4a4856d777ca0682", + "2dd44a6d1765874cf1dbb4", + "73040349f8459e94069012", + "6c290f053f3f46327ee8ec", + "6d575f1601945a3ca29eb8", + "3aac1aff3b6e14d31a91e7", + "4972dfe88d7e4fb02ffe72", + "5a86321f172c81fbf185ef", + "50b37142bd10ca63ad3866", + "50148cebf8644fa7375aa", + "322164812a5696cb2322b0", + "4303859a49916073987344", + "bac1f8bfa0e63045ec3ea", + "67b770c97867478cc69b37", + "2cd2d00d4262f35754bb13", + "678fb8bf7f6342c5764339", + "656e5b10b9da085176e0e4", + "59dbf0c177e94a664cfe3b", + "1f8b63c5fea99ffd6a5348", + "4debfa77d5d5f3fa106f86", + "147a0d7fc26817e7251ada", + "3f26224827d27901ba392a", + "24364b397921eedc03333e", + "361de61b4e6057d1cb2274", + "14b5583a83133add54d368", + "6ead11e0936e4bb4e855e1", + "30e484fb4ce5927a937373", + "571513666bf5e4e0b1c7c0", + "4be11f1cd60954626093b7", + "775bde6bde2d0aa4187fe7", + "5a1b57c203d09cc8a22696", + "5d5e844e1fd78c36c3341e", + "33b05c78a18798e4462d45", + "624f69e6f91d2b9574cb8", + "172e3a20b269ac416b7186", + "1f08599df3ce28d2e2a99", + "3d50a612150493864e2df9", + "42e82d8613957e0acb2b09", + "50e45902fe1a308ec88670", + "23db937264552bf6dc2858", + "6395a035a6a5e009dcf586", + "23931a4d64503bc81a5a33", + "f6074b1e17e08713a2a46", + "1e604eea4a6fb7804d131c", + "246e8276fd64f7af18402a", + "7fdefc35775213402acc91", + "31f0df7953457ce90524a8", + "731437b69ca76a93992caf", + "3559d5470cc8be88bbee52", + "2a6da3e3f6425cc4caf185", + "384ac895940651e4b3df31", + "20cfa0c6bfbdce5e399a70", + "72f290cf9ea470dcec1318", + "77ae05c9ad4bb1a82ee6f6", + "33f6606f82062475e2caf5", + "373211f704832f37df113f", + "c663e7994203d116af45d", + "25b286320c27c0f91c388", + "2219a8eabaec2cc4da44cf", + "3fa82c77c11ef3ce373a08", + "6c65a41601a28b4854db0b", + "398768a52710b109c92dcd", + "45e67b0777cb6facf28d74", + "21ac3ebe991cfe1bade37d", + "6db9060a2078f4de4b4e1b", + "1f6a141f6eb54cb95d54af", + "68c1092ddd7cea180b7a8a", + "e5d22d0ba9e3194e2337d", + "68075aa010a2a7afcb2078", + "577a2773ebc9e2412cb050", + "1634b76faeb97237505ef4", + "1aadb770481974ec7ba970", + "42a1f9791054781a203d9b", + "7a520385f587099a8da6a1", + "1a88cb781abea4a70cdfa7", + "655b44d3a92231714b14c8", + "651be8b59b15d629ab774a", + "550e4c9178e5dead2f815e", + "ee736adb9b9c1860d483b", + "ceff6274c7b15ae86dcc", + "214d49f3e2681b232cf62e", + "2330589e6c22439bef95d1", + "7e1ce3bec1e98dd35947ed", + "72118d192add3aa4c1e0b6", + "67daf6ba4dc4d74236df77", + "d16f53a28b7042d305524", + "6f52ff1c7f6dba719401b2", + "6ebb0dee9291bd90cd2215", + "78dfe864170ab14a408743", + "601b382825c1515525a19c", + "2e5ffe59b5dd3843fa4c17", + "2bf32012cc6354c709ad2", + "669f3588d7a4ca7ee3dd1f", + "3de21ce46f7c8be3bab3b9", + "432c0a15a9dc31696b79c7", + "349470b19ee7a8cf922b33", + "3c53d6131f8c41d5d7317b", + "5e83dc6dedd0679793feca", + "54c245a123767ef7f22e33", + "563e208513fb23ff9ca7d", + "b512df0270e6ffe2d4a9f", + "b0715d55fe0c1edd9613b", + "c0ecef4f88f5957d4b1b", + "c8806bb60205886d4ff9d", + "32c2902887e1700cd5dddb", + "49d6a78a88159326775c2e", + "56359d56dcb06ea3ab68ec", + "2d794034e6ae324ba7041c", + "64f201a4086e40b2a3a19d", + "7eaf34148ada80711a86fe", + "2142584bb5cff6c1e5011e", + "15060a6e69612092d45768", + "4de3353d33028c5f557394", + "70594464b46de9acc11f02", + "1fc064c4398ccf6bf7b1de", + "51cf9e84f5414c7907e79a", + "71be60f1312db2fcc7f045", + "5fa826fd6352f83c34bb5e", + "62baea1b89700a3953e872", + "4a266217d4534cc588119", + "7bc0acaa724475da5a8a83", + "3d9a1023138b0e9cbe7d70", + "388d8c3c958b6abcbf6aba", + "98079c36403a029b3f0bd", + "72716051b13a2c1876c8ef", + "515a0593d1e619118d226b", + "2a035934ba5fafe2ebaf47", + "316bc661e89aeb9e7e20a6", + "25330fc3e5df50eee77cd4", + "6c8071fad8933706efff6c", + "3669984e1ddcb753afb878", + "4781781ebc739ed9d4e35", + "3915c71f3b447b64ce4513", + "726dd56f61c4c5016201f9", + "7b8ff43621b7fb13c3edd2", + "2bfe7376e8ab62fafbff59", + "207cf80fa76e8708f88dc9", + "3a4a4ac73bb38c0c48aea2", + "52e6bde0fed2ecd82f7bf", + "523ee7b96bbc2b0977b4f", + "551b691726c66f9ec1f9e8", + "361fe28e640ec02ae49613", + "71e1aa5a9aacb38b66f605", + "d427f0f9d14ecf4c54fbd", + "629e9c894bbbebf06d3299", + "37f7d323d5bf332eed1bcd", + "7fcd5bd9328b9f06223a1a", + "744db8f7e25f69bc47f2cb", + "4b0d1ff6297b378945b906", + "7c1d3420db42a6ffd37cef", + "2f8592e02ef759cdd34c72", + "4dac1ce4b87e60431b8a4d", + "451e904c04882b739d233e", + "5bb2eece8c95a515d2e2ea", + "797d4c38129f52836fa5c7", + "5d29345f097e1dc041bc7f", + "6b25878a1ec102b9e883f1", + "610d07557d991d9db3dea7", + "5d3293ca54de6a3aa06b08", + "62e4e44df51bf11734aafc", + "1945686d70d9df98093dd1", + "2c16632a312edfedcc7f72", + "19675db116558d90bb4f6", + "620c14b60053b660420c4b", + "39a26bf8336439ba9968b4", + "376c7a8d0fa0abf4c0bb7c", + "7f2209419e3163fbb4cd8a", + "6aece787aae5251b57b3ae", + "6b380bf5d71fe523ad1e4d", + "2306ed04565a9cf9fa84c2", + "7e37a126be9507ba4c717f", + "67ae2ace35fde529154a8f", + "352d204330140b3786230b", + "6927c4b12865ac8f053dcb", + "7e61e3317d07a1009894dd", + "2768a7a783d9baa4e5cce3", + "260213253056e29f0ac6e3", + "61539cf7b388689e7a260a", + "3d9131aa5802e27a83eb61", + "5f87453deb48ed6c9a1afa", + "418b73330a3b4d1a80474f", + "5cd3a1cc8bf78e4c7e3747", + "784bdef1566f244d4ff44d", + "2c4bac0a0cf06ff50ff71e", + "3608208e4497b40a62b3a0", + "6e8b2732511303a48ef731", + "1ef9edb1f958cdf81fb9d8", + "4bdbd2765933e2b1d70563", + "b2687172956319218655e", + "4f787847feba11bfcbc764", + "49ede33966bc3f0dc8757c", + "12a2fa8c4d06a694b748c6", + "2146fc84389596cf6fa8ca", + "536bfe32ac8da07b253be0", + "773a63e6b7c9e3bec91272", + "6bc6acd592c0200b749e07", + "3d28e1c12f9c60e500dce7", + "5687a42dcd55b43227f657", + "36b36922114363ceb85a26", + "51e267e9a5a7684ebfd343", + "5b4aec35da23a27808974", + "2e684b7951a2526d838fd7", + "62b2e70d411eb11bf0a695", + "6473dbfbe4a3f63d08e3f2", + "661787ba011711628186b7", + "7234cde8ecc6673caf864a", + "1e39f05dac576881e6c295", + "420c1c0074adbe0616df4b", + "177f43e8d62e87c66b9da", + "10fafca3d5f71faff8f1a", + "43dcb4450a256b9a0eb673", + "460372cf36a22fb6b9641e", + "a4d6bd96f61637d730c9c", + "1754f51aa79c3b0803bf00", + "65fe3a22c7d35ad3f875e7", + "150c29ddf5483fb74be06", + "716991a2a17f536244885f", + "475131d01f3e6dc3b169fe", + "569bfe59efe21364bf57e7", + "75ac7a48082d5afa148e7a", + "63f5fe049f46d509d141d8", + "2b90f954efc9f58a07a363", + "39c167fbee27f65e96cc7e", + "1db83df0a168bac450e4f8", + "127118c35aaf80dac2a57", + "20601a054af9d51633fab1", + "728cea43531fbac95263a5", + "ff53eda132c9a3cfecc65", + "786d54b4d5ce74ddde20a8", + "1175d70c2c07855db37245", + "2cfcb08879a9aecacf316e", + "ecef39a1ef4b4d1e8c6dd", + "70357dabf2c34c8309c723", + "4db4f1a602cec485019670", + "735a03f218370f8bd85ee7", + "3c9ecb18a83b901f901704", + "4c7d0db8193430b75f41f5", + "28eb082844c0ed277d2520", + "a3cfbf8b779e15bf28c99", + "624d49c04a48d42d76c466", + "221bb5afe07669d916e136", + "358d745e0bc4be1c3f4586", + "1ce2a05bccecd36df96b64", + "362261ed7c97591714ea9c", + "20f6e36fbf07174b587397", + "12413ef53ba7fc6fb5cd35", + "3dd366ce71f1fed428c326", + "b66201b62ddf6d13c5534", + "3164747c95104338a78b5e", + "5ca6e41b81529e38a59f6d", + "3834a1b7acb0f05d9e53ca", + "3a2f442f3b3a9a2af00b28", + "270dae1c5ccafaa07ae8ff", + "71e916ff79204bdad49695", + "4d43f85ff03e3cd18ef302", + "2a2b13112979d27489208e", + "442eb4a36ab0287728c1d2", + "4dd985f2fef5c539fa6a96", + "522619b83283553c71de74", + "794294f26a938e1caf3c0", + "25d1c185377c3cd8e704a2", + "3e7db1002a9116a5e20032", + "720aa7a7bdeaa025a23a54", + "70f2550983dbddb8957b2d", + "57aede4ca861e5051b15ea", + "52f87910ef7e6dde1f16dc", + "79c75783449d733d93b4a7", + "5186a4a6ce8351b40466bb", + "1208a98ea1dd68a01d3ec8", + "3d66483aa6674adb6569c3", + "728caa6061cb6ff29e6b21", + "3ca90695aca0fd32b28871", + "18eecc5a940548e7c51e57", + "cb8a50376e8204b8b5ea9", + "7731327e4c6ae66c8e47a1", + "16f732c5fac8192629ddb6", + "13b16e69e645c1703bf7c2", + "789addf402241ff646d77d", + "169566a480e42dcc8863ac", + "5ca4bcb81d4d03018b177", + "8ea7f70a71ad46c0c260d", + "4a67b54dcc404423e6b631", + "7b609aae44a59cf088c570", + "59fdfd7775c9750e48d811", + "5738f30e5cb40b4ed83e60", + "78b5c76a3ee8c2ef071fa1", + "2ff21a8761b9bce5f34f74", + "71af54a2496a076b559a6a", + "11f2c34fc87060adca2837", + "4476f33d15e77d3ea6c712", + "1dc0a99973375f6c4a4583", + "5cee3684d600afc7804db0", + "20fe6d6e332154329f831c", + "1b9850e5f0f8fec4d967b8", + "6b5617e9152db554d999bc", + "144303d93b170584849f6c", + "8a006b686db9c86eb0756", + "1d9a776cbeec9f5dec9407", + "503f8d64438b7a99b8de08", + "7b084b907f4fc0301dbd5", + "dea3527d089eceb4c22e3", + "38a39ada5dac01b5c2adf0", + "4cfeaacecd47507ead712a", + "3ff99310762f37d685ca95", + "492683ece46681328f9912", + "27c1b7b41af947101d694d", + "39a95d47cf87d7d7d6bc8e", + "48b438b41e1bc7e58e6ef2", + "7b0ba619013363524f168a", + "557bc3fd4a1a6866c5d19c", + "46ef25878ebd3ab0b864d2", + "70044b2b283269e2d14166", + "47226da695602ab6e77894", + "142fa830b7ba88d08608e3", + "3019d2c9a4a70055fade00", + "6bd645b33c041537bb5186", + "3fc3e580d2ad754a34bc48", + "5e8a5f959be2a17534c9bb", + "5a2cdb29cc6790b45d1f04", + "1c28b93f693054a06fb391", + "242cca5b643a5f97a01a20", + "48a0fd415822566b2ecfbd", + "308ab3a2c4d7f4df4b6a31", + "4566810f52dbdc6e52d908", + "53cf166384d9f967e4ee4a", + "32a9d4d4f421cf83f9237a", + "7f4b55a70795b9d26512fa", + "7222af7c6bff611029c53a", + "718c4a4aea9ee0da236930", + "71b31c9be0276caacd1146", + "4d89a145aa9c4acc9cbc8c", + "26b549a59dc35ee5ea7b82", + "59308e5db85655d5ae0c4", + "2f63eb0fae8122aa717440", + "4346fce81f02878bbc28d6", + "3a0c64739838b20476e0bd", + "389f7a523536bc08e2c52e", + "1a756f67d7e3e663369a04", + "732b807455afe5538cf678", + "421e7c19466e0847ffaea1", + "75aa7d0184dbe8ff376045", + "178e61138a7396d55d224e", + "2a07033e306623cf4e37d", + "25d293607604db30df2e4e", + "1e6b9387cb8fb6494ace9", + "524a00dd634d2f57ac7c6e", + "106fdb273227296116f40a", + "47efddee37fa0ef6a72a47", + "2a17c7297a08a3839ca0e1", + "4c60164f9602341914167c", + "656c647508629462e9a821", + "54e5b2458bb84fd7d4433c", + "15a3be22e80e0f6f498608", + "152b3e507f8b7898991275", + "10cc6c74c4f9fcc9428f7f", + "7e185faaca849a7f135848", + "62ae26dfe2273af99c4830", + "7255e6805e164cf9788cce", + "49b4801e9a2a64a27691d2", + "3fd90efbd4f0a4e173f589", + "4afedaa595cb8c309d3fbf", + "c57749387141da5f8fd27", + "1ba28761d3577e14d38b38", + "10a61010d82426d21109af", + "4d23f5ec809ab5057c2705", + "31e9d0607a42f7e54a8c81", + "37107b083cae132372e4d4", + "16eaf321bf41ee635d6d46", + "44bf623ac807d4c96747f7", + "b720b9f07a6b1f41654e1", + "68705a826f80224f09c337", + "798b816a4dea5ab964c64a", + "2adb843a58d472c17edcb6", + "17c5a39deb46d102235506", + "70c9c69419338ba44d6b8e", + "858c45884b129dd66817a", + "7ffd3daf76b1e818134f24", + "5b509a0106f1d06627c353", + "4d6d3f3602597781bd2ea0", + "4fb33de912dd8d2f8b8081", + "2b7758dc0945a30687fabe", + "38271b1467ee062bfe15c1", + "1d41ed28d87d24620da24", + "5b80c6e1a5c4dcb3166335", + "560e1e8aafcab315236068", + "31204f9f1e25342bbe28db", + "35d63c19d36b85b5e96648", + "38aafca45b266dbeef6fc5", + "426b930b670412d271a091", + "59f2c50a64b0c2a3e77442", + "7cb4b7b324b314195807c8", + "4a1381ccb93c34dc44cab", + "14da57f8c43c94d5133d50", + "499a1abb2a1381278175e6", + "6334fc3ff70d17dd837781", + "6717c0177a36454aef446a", + "7bd177160999a650655c6e", + "2acc282877d9cac38e38c3", + "18b021fe09fa8bdc44e567", + "45638582a87d07b0339df2", + "664ad54353749f2ad36105", + "5c53790457f0f66baaae2f", + "1edb6eab35de11d4922150", + "38c3b4008c9d0442e7b602", + "76dcede51c5087d374b20d", + "1901320882ec0093fcda5d", + "68f5ab17da1cc5dda22c36", + "4e4199871aec7ec1f99895", + "68d4b88b77dfae0da7a5d", + "a4f6b861d9a460f5b65a6", + "f7cdb22a187815c33c5e0", + "7b398d970ad745817bcb61", + "2e061928a5c3ad9bd6d9be", + "5be7c40d96f7c97153eaba", + "21887a11425a371d17db86", + "2cc7417260782c0d2394d3", + "6b421c0667b336723fc0a1", + "1d78f3d7e887debfa04bf3", + "1d165ccd9ac1e4efca4a32", + "163690a8fd51b113410cc0", + "419d9a35dec3e5f421baef", + "215c7e9a1d796b37a56336", + "541a69af40655a83e366ca", + "3f98705d2cf6346bf00972", + "4ba668ebddeaa069043875", + "2aad9e8261535baeb20b71", + "6766e290c73bba54bcc710", + "65118f1b7c366a8bbffcb8", + "7d88a8aadc667bc60fcb2e", + "16d8ad198832545831c93f", + "567508a3d2a7b4fe3b395b", + "3282cc1545c9e77ce08abd", + "57d0cd94e03404b9cc57cb", + "14f23f2aade2de50fb350d", + "280bf57e6ab95037683d33", + "15db077682cfbf170ce259", + "2e1709b850c77f2d508334", + "34ddcae84938327a3cbc30", + "ba357a389bca1484d7e54", + "bc149e667cbe5a17ed77d", + "25032025485a4979b90394", + "467db4fe225847525ef33f", + "54112eabbed42ad31637c5", + "14b68001dbf2f798322812", + "7146b897c3d924725bd0cb", + "6a76e3eb445dada83ceb12", + "30abf45ef025352e681192", + "2f687a83227d2d20f3b227", + "186605e063004c7e4a9375", + "21ba4c5acd17d59fca0ed6", + "2cad73640590abfa319b6a", + "5db729c46c687ddd7690e6", + "73673685484b4f3492976d", + "282a80b8de04941c547168", + "4b53718060040e8179d82", + "5d50e00035655b4d4ddcb7", + "546ec9785ee72a2a72d886", + "4328d17f00529ea0fead97", + "71faf2ef0654e97e0c23fb", + "49374e550d8b335cb151d2", + "42772160e3ea402851c9c6", + "c1fd8fe80d24243e7b5eb", + "111d6b945ff69be530cfca", + "2dd21df4dbce295378bd06", + "3d8509040aa8739f034dac", + "68d439e82561e55cbf1eed", + "65a1f7025bafea5088145c", + "5f70485b00138272e9a41b", + "48ede8d4a9a88f7613388e", + "1de402b5c6118ec8861aad", + "50f371336a648ade74999b", + "17da7c01f870089371d6df", + "2f64ac4f819f8343111866", + "648ea8b083a9828f8af17f", + "28d6cf3e20845dc7283634", + "7dfd6cbe22024260a179ef", + "65ab167d8e02a8df26439e", + "79d07c6a6298d34020dfe7", + "55407685456c2cb8311d26", + "413278937e6487a988805d", + "168ebadbade1cbc44496d4", + "7d6f33ec4a123fa281cabb", + "59bc93698864451646a053", + "4d1a8b95ded29dc79fd401", + "21b466e3230d809af7aa6b", + "35fa1fca985387fb7fcd19", + "1a789636807476ba5bd789", + "7b115c7c405c6e4356bac1", + "378ef780c4d32c3f15b3c3", + "23dfbd70bcc040f36d4c8d", + "6a545ca829ed278f6ee7f4", + "c06cc01bfe2a9b427102e", + "126dab6c2bfc9b83475847", + "15bf0eb485af1135b0e453", + "3b929cf6fdabeb45375120", + "11c773ac555182d789142c", + "444a50dba1a2bf390bea1e", + "1976a9fa25af6d21cad47a", + "2f88b1c87d7d02f6c2614d", + "7fa540fb3906a29b513bed", + "2b23443976252ed21088d1", + "5d9383670de64bf15eb49b", + "1540f88099c93111d6c8cd", + "2c33c53227ef5693d69f36", + "2648a635c5981b8daca07d", + "7b71ed8d456ee35292c960", + "62c36a3627b9d2b3c18de1", + "3e985c35adacaa90f5715b", + "7401d0da6ddc33225bec4e", + "740f62900b9523de37b6b0", + "3aaa2c73e60edc333c904d", + "35accc5a1e3fb474285daa", + "1d85b86a2f3f20e2832ec7", + "6dddda58fac4e8afe0c9e7", + "2fd82a7276af1cf8b372ed", + "9377e0e5c8d0de1856f6c", + "75266a81bf7f77865e6f", + "1de1227159008ec9b59ac1", + "1b5200adee3adf189b056e", + "4d8b0cd0d3401fd04e351", + "438e5a19094bce43b5b5ae", + "6f339aa4d977875b1f1f80", + "297ac1b2d19eb1e6e32d87", + "638d0229863032ef249643", + "65c9be7a29bf45e5992a7e", + "7dcf3e6b7d3d02033c946d", + "6565aab9eaab16f7430411", + "374a0e75bc76f0adac7af5", + "8649a3995ad114bb4d72f", + "45f5960a9db06a62821bf0", + "36735381ceff20a76e32eb", + "1416e580fa8bcb421dc6ae", + "64f00973a0eb117b548182", + "7507998b275e3c9bd4e10e", + "305213c4b30a9e8be153ce", + "233860a2ed2d566e131431", + "235809998758cf7e4acb1c", + "2102dede4011c5cfefb7eb", + "79486109c44990eca52723", + "43b23b71c3202b31d91018", + "63606d420b8e8397875647", + "697396e6df9539532709dc", + "581eb843dc9919f85a6644", + "3b98704f287b0ee4e659aa", + "3886dff828cc76dd830466", + "1c9f86b8742e14b6caf79b", + "bafe681e7e52073b86d32", + "1a5853834033d093c63d55", + "736d05572fd4ef85eca2b1", + "61170002cc409ddc34946c", + "5fc3c4b7f7ad5deab829bf", + "4597c1546c899a3656689", + "6667dbaf666f92bd61da79", + "a2e07f9d73c5e3effd370", + "63942ffcaaae948e9056c4", + "6a7db7fb47d3a18b620d6", + "58b95d74eb4e654735bebc", + "78a4c0445f77f31209ed17", + "7203cc213679d179eabc35", + "22884c181cdc222cad8e5c", + "7f8bc7233e2784039454db", + "aa2cbd696160321682a6c", + "4356ada1ada2921353892", + "72f7dab0b2d2a35e62478a", + "32e5682bfa3fd95762512b", + "77da1b5a2124b6c9e11847", + "593c091517fff61973996a", + "264e4b26d39119bcdc0985", + "fa33fcce55fe6a32e0915", + "127c199cd032273073f003", + "169665894aa2b356779b61", + "9dfe57d1a9a3265476d14", + "364f70dfdbb439b78e5236", + "54fb5f18b6d001ef7be401", + "321e3fdbb0b890caadc570", + "64532524c99ecb3c365a41", + "aa480c5cc76379e0cd2de", + "6ac2b70efaf88fd42c4044", + "6810dd5945e01cd2c90841", + "10aab6ed7d1b631aa4b45b", + "19537a8ee281cd28d6388e", + "5ba2a8023e5bb50b06e03", + "646ce329dbe03b0b8312de", + "4f0024b5b5580d91de0338", + "2b4b238bbabe3c70748eff", + "3bec30574a99903f587887", + "24e71c2d01e956269446cd", + "68c4a816c641b5b1090781", + "6fd170c2ab312a1f05d814", + "64d8389dc8d1b8910fc0a", + "4807e0d9a38d358d8e14c5", + "14ee39af97cd5a57b0e17c", + "24974593a8d59a89588659", + "59a7f220e101601c1d1b21", + "43fea0cf26a3e256438525", + "2b3c80a17ef583b6205fd4", + "44741cea6d95eb07e7f01d", + "2ccb45ece6ec9abb9396c7", + "5ba0eb3a703d0e42cf4094", + "400f76e25d392f347d4911", + "419e79b02e607a42e6e091", + "36c0bf9a937fe6ca772d0d", + "2244b09bebeaafafb0c481", + "1501743c447af65014399b", + "2791e42c7f90ab8d4e7fbc", + "150365cfcc4a012a673c13", + "7869636f37e63a4ffff7cd", + "211dcdb529a6bab73ad8a6", + "239309f551f303d0037140", + "3f1e6a84c6b836f245c178", + "27b94ffb61590cd0bcd89f", + "61ade8e7a0bcc40ee4c2a8", + "750f475708a1369e3fcc26", + "30bed73f7a94de9252a38c", + "3e26ac2b23b8b913845e11", + "42aa10dc273607be680d72", + "65a0cb312051f321a95f5d", + "1ae82d51e4845bef8c5d14", + "37c6007c4a0d223bec9e13", + "4f140e806dac75cc67fa3c", + "78acf4423afa2cfe1a6fc1", + "3915d17a2935e69936525d", + "7fdd8bd273e4a717226cc", + "15da282cec1859a9591ab9", + "75d3c5c33e5a2023adfd4a", + "51890cd139740ee3c35339", + "2b514798a553e5bdcd8ec1", + "722f9dc13384479d1c4455", + "1e2bd3f41ae5c299bb720f", + "5ab5c85d4bf835440ff962", + "178cb915d7350e37948956", + "184e317201ff0ac25eb6e6", + "37755ea728b820f0ab2bdf", + "5e147628ce9e9a9493f495", + "79790e81fd0d2b63f9d1b9", + "7252d249ce8cd4fb010950", + "d165a455f92b5083e0627", + "6354a865e088a0488f2701", + "43c2ec8afca87567ee9294", + "55744f373c8b8520d62370", + "63069f756c8115e5fc4c52", + "3f5c0a52d2b564cc250982", + "6b828169b3ba13bbcddb05", + "46a78cc83c010019e8b2b", + "27c6ad85e824da21b1cf9d", + "6e9f47f009d809f84a56da", + "255358696f5e9ddbfa467c", + "738abcc274fbdc4ab5efd7", + "70b9ea82f6a6c02939510c", + "5f24e71937dd097c0e8678", + "41e1bc8a63d042ba714c97", + "6da26efc24e2d57c26c090", + "575d4696bb0e4edef99446", + "4c028ddef259fa2c7d4868", + "33525d5afa91fda7d5fea5", + "49a3641c16382337f3c777", + "760b4f231686ca10ea6ea9", + "547264d2566596f18bbb5a", + "703a6cf857e651748dc09a", + "298200a0909b55e97005f2", + "5ccbc128a5721a5dd853eb", + "33d5a814c00e980600811f", + "5d66f0d9dde7339dbcd24", + "5ef30e941639d08bff19c4", + "363a65fc59f4a8184d3d78", + "366546b3844bf45b7527a5", + "18bc8168956ccd63ac68a1", + "83bfa3efcf5b970ad41cd", + "4bc9c371d07d4a025a739b", + "4636e2935765905adcc41b", + "4d08f00a99d95d0043cc4", + "3e94b32e50da81bb5afc03", + "48a13c03c03191471f1164", + "3018be3223f82c7f0c9ebe", + "185254fa056de9af1a6bd2", + "1fe069b8c57a9fbe5f6009", + "6c03f094dfe48c9743be89", + "1086eae159340e441fa0a4", + "222ea07afe042cf765ce5f", + "7754a6a5fe6be54c00f4c8", + "152dc9fc63d3c1eb6c335f", + "3f3aeb0a1df198d9c95768", + "7ef4c5361ca08ac1cb6216", + "527e969f4f6eefe6289ece", + "6b105359a1a68d94862411", + "2674d42d16e97493518d2", + "369c62fe5aafda2a550912", + "51eb860c87e1e5b70bb623", + "29f3402339c3128a1e2c1", + "413f256a64feb56e242e90", + "11ea8c21342ce42ebbf9ec", + "5517c01ca3bd4da9aef0ad", + "5d2972b12e50e727a2721d", + "4eac7fa0d6b168c3bec4e3", + "5cd8f5f9eb6806f67db613", + "412ae12837a29724832877", + "770b83b55e13465063e5a", + "76201f5e0110544f41d9be", + "c8918a059fa77676f0587", + "287593985c21589f72c821", + "6b923e02dfb1da62f37204", + "2600c04d980b2307982b22", + "25f7e1ac0d4153b6365c1c", + "484281d930b8ee32f366f0", + "3827eb26c007235c46c676", + "6cd2d14ecc5fc7c2c1b52f", + "4f0841f63a0c64aad5232e", + "77c4b593ec648025df03f6", + "81dc886feeee4945edceb", + "522afb743f67b3ca56b20", + "5505b22d0ddba48ae2020b", + "2f3b362f4b742eb82f8a34", + "1c7831e5dec267ccb26741", + "2ddac7db8be22e88618b58", + "4e6a2eb425fbd18fb02cb2", + "147b65e0e829ca30fd88c2", + "36304be3f0777300703af", + "215dcfa076749277897e0", + "3c2f54ef99be42fe30d32d", + "62a01fb38e5c88098fbcc9", + "5f84ae1685459ae7e24bf2", + "3ecd8205beb790946eaa8f", + "5ba344fee845769c2c86d8", + "36a92b305c21171dd5a616", + "3650c22d9c1072238cfcfe", + "9225712405a5bd9ade58d", + "594ae94ad86b9a719f54a7", + "59f0f5465ff1e16be9bfb2", + "4c6a0f6de7e50ac450c0c3", + "685afb7cdd699d5a8f020e", + "4f1c406e243fb2af67cd42", + "2dac9d433ff98cf24eae81", + "1167717f2d3d6238b3d21d", + "381012de4c9a82f9ef1d72", + "7047a4510b8c2107737ece", + "185033e62f44aa85a7799b", + "41e135572f9ce788481248", + "4759751a101953dd340d89", + "34d59de432c0dbb24ae55b", + "5bcd4418d37c976110b37c", + "6545cb112ea4be72bc80f7", + "52d104741cfa5fa49fa55e", + "7322c20a545b3845b54b34", + "783c78a9025283e7188a8b", + "3c81a9658bae42644c317a", + "1eb56fdccfc12b22db2048", + "3c3f770d148b4692e25b59", + "4f75e255d88657b2ba4755", + "260d6ba9444df4b85dfb92", + "34f0f61d6d8d062b6b9d9b", + "74fc1bfd19b3cbc9867bff", + "3f0d18b1efb7248950daeb", + "65b7b50446c767e6fa72fe", + "1124cfa0e070cf6fe3c638", + "2d127e6ce6bd0f1872b1", + "3fdb99cce8884ed923271f", + "2d2a15867cf9361defac4f", + "9a39acfeb3a1b4c2bc79c", + "7adeede80a05e40854e6e", + "4431184365a358de692057", + "1e4fdc54209c2229d7ffcb", + "50cfa48cfb994ab2b77aa3", + "1f4b918e0e0d47c89aa2d8", + "78ba33e419cbc7f177437f", + "5f7482c17a568566c785c9", + "6fff35974d5f0b86faa46a", + "5106bba99e6268d7bef3e4", + "67cb80a136db30b9d60d6f", + "594a3b6273b1ed2b542eaa", + "6a1d554c48496d8d543eac", + "9d8d18a72607c311d6f76", + "7047889925ed18a885358a", + "283508a2ed137e839b2207", + "65fb4589487aa5a16bd767", + "1a14d5b10cbcbb9ad3216", + "4a469bacdcaf5434109262", + "40ebb7bac65bd815945e49", + "7b2ef1bbf74c4989ed5ddc", + "5ca51c82df4def8b1588cf", + "3b22ed42f28069f29c280b", + "669e7a28f7a7c30460a80a", + "2071c913edfd4fd6daa6bc", + "3828df7e9ab6753fb83dc1", + "4cd15a66ba5a2f18c8823c", + "1ac96b01993da8677b2fd7", + "4f9634be1ae125361bd4c2", + "681fcdfe60f23e3be083f6", + "2d5bb2b553d4ed5bc0795d", + "4c4424602626193266d943", + "2df30214a49a31c21380ef", + "48b920d23514d06befaf52", + "4b4c7f0a822537ff62cdcd", + "ee9d6b69f13ec8f385e6f", + "793fd256b009d961487499", + "2d70f946f2915679b314e6", + "1bc4e87c1100a2d26aeff3", + "6b1cbac9279eaab9b503c4", + "5725842b7246179896a39d", + "4dcc6ee20983f0020ad69", + "57dbda5c8b230a87030357", + "78c437adc3b6ce946cdd", + "20ea7b335b7621642b29a6", + "179d4134709978c75bf6d2", + "36a3336f56c91232544e8c", + "e243f28e043030ee3a43f", + "2d678e77df571d7ac4859d", + "5566a844e8b1c572f69612", + "27244290f774a00786ca95", + "1812bd60b720f8920fe80d", + "7f45c48d28fd31ceeb3fd7", + "1bea5758655f1400515db4", + "249b7a4d080be0f548cabd", + "71215d6fd5e662d930a424", + "7684536a92d49a5af59f1a", + "74d39a89d87bdaa449438c", + "3e4e77e268fb6e7602e96c", + "46c6313b3914ecd376b959", + "31b9dd76b9ed5f88dd4609", + "46734211b970f8a6448a60", + "7a6d5b1013830761b58026", + "6157a651f2640a73f1f90", + "38793daa7aa086d5e70798", + "58d7de0f8254a81b5d0f5a", + "5a1fe9fffdaa20f4ab7eae", + "7e8fbf173741aea1b95c93", + "4bee7e482b290b1d3869be", + "c075fe6224a62c1010fb8", + "7340d7daed67bcc5cd4391", + "2e12097225e5783b545083", + "518711fe03b241cfb95160", + "4956721f6a2ced1fc736fe", + "636b15a893c301ff23f5f5", + "5696a96208101739ec4ba0", + "54fc920cc0125e53a92499", + "7c2e242ec2b95580a9b3bf", + "4d0e82bdf34ff4cb3a603e", + "786571b85b2768309c8ed2", + "1418facce22bf24a5e6a51", + "681a88fafe4e6f0620910", + "5e263af53ea065e044720d", + "1c614cf9a9d87d69154c21", + "346f2a2b086e1b35095d7e", + "4b6ed31d0715952774511", + "67a3f20bb5e980364816b9", + "339dd42a42d94342bf8399", + "3b55da90ad9a162be1756", + "1c07c875b3a9cdedf7611d", + "33567e972c90754c86a5ff", + "3ee5a2cc90e335867f0ce8", + "4b3a8d22fdb2c83abba9b9", + "5b6b96beb19fb0dbada937", + "5169af1cd74986160450d0", + "724f8bcd40bfc9f1ca0c68", + "51603bcc8667777e664f9d", + "78aded63d2f85ac948c449", + "73862de61086c1fd5e0678", + "5efbbe073364ace07f02c7", + "144a6c20d0a8d5dce2b12b", + "2aead0dac004faa8ab67e4", + "3f8cb5eb229acba822b48d", + "34c50fc58872b7325366", + "3c1fd5d9a6223b2ce7b02a", + "554f5cfd133bac2188241d", + "559752d946b02da4c2f657", + "3950591be73642bfa23264", + "2e8edc0b6dfcfb2392ce87", + "4c3c570182916f32a6f96c", + "65cf5014ab215afd17cef7", + "54ad7fa69dfd0b4c19f7ed", + "f4af5a6143d8f44e48afc", + "1a08e273719d3411178252", + "668b9e16f3948f582a5b94", + "3fac097802d8f5fb376d58", + "3c2dca32abbdc029f4a212", + "753f0795048443573283b2", + "622b540293b1275c5a9446", + "5a2c8ca58cb488822e9f49", + "295932427e10aface718fb", + "43e36b6d5a937387b49f6c", + "4e1162d634d0d5811a2441", + "19915afea85d27cf8df109", + "7eb8dfe838ec5ef9d3ee21", + "2c18c59d95a21961c42f21", + "7233f4136f3ace41bedb12", + "142c59f31fc82fb58a7dd5", + "452816c1b54aa2bfddcc17", + "6f24ffc802a08273be511b", + "32d68fc9b8a9c17b315382", + "5aaabbd40fa78dd417edf5", + "51d8b3e6fa0afa106abc40", + "394faf6069c716fcf8a76c", + "3f7d2ee6cb32c6bbeee194", + "4354f51efc9392bcd6e51d", + "5e73615c65ae9e74eb1ef3", + "761e42e1c908c2f09e096a", + "25df9f831698604e15991c", + "351db0dca5d74808f36d33", + "aef2488954588af921ab8", + "296a247b4b36d5c2a1884f", + "b1fe15d9ac88348f41a87", + "97342eefdbc78b9689120", + "1e47a4330f0bce93db13fd", + "7511506751237c1959933c", + "31e8a39712fb3a7a11f909", + "6116bef6a79fb2fc15f0e2", + "6d849a39e47370e473a913", + "42a81f5e10b5435180e643", + "17715e6c96cbe096c4f9c2", + "606e14eaa7d60eb7ea925a", + "30cb89652c8629b5e0dcc3", + "2625096534f2cf10d83a26", + "61036fcac29b84e5ca02ad", + "4669a41d4e444c1284d024", + "2b81c6e67e55aeb6e93a", + "23564d97f447b0091e74ce", + "494807a247f7ffab73a644", + "692eeb4ff69b42372517d7", + "3eda92314bf1d09cb5b08", + "24b22771f303ef742b8ce1", + "5c616b0d1a7bc591e70e46", + "4aad58987821ba8f33d96e", + "10d0aa100248920b9cab77", + "1ead89a48b89a75ebaa7d8", + "7fe887d8c5fb53af79cbd6", + "ab8e1dd4d27b02d09fe48", + "2294095a6b77aaa416cbd7", + "69fecb55ba6da700789d7c", + "681750fd18618072db2068", + "30a18088f5b2af396bbfd9", + "2e03d3c0794703b9605de0", + "f26a2dc235ace7b34f4b6", + "356497a9675898bccf4e79", + "3286bf159405584d85567c", + "464550e0adf269403f3e22", + "3f603c7b410b4c2db2c8e2", + "445381f98a1f5669880827", + "23eabb9cc5f4086c74bc31", + "4628eb872cffa1868b96ee", + "6ac77b7cb23565518aa2d4", + "1cfd8f0d12bcce21589c11", + "39cdc5e6675ab081ffe60b", + "1e378fb7157cdaa6fc3a50", + "669f4c5ec3934953500b78", + "46a91d898168488fd5ac51", + "64add9cabf8efdd5f7b57b", + "45813314ca1d165bcf242c", + "6f37e3a85128974cdfaa69", + "7f42b66317d26c3f938805", + "181ee17c34ab8aea52c900", + "68e8a818d524954278bbf6", + "7a6ffa939b86786a779a44", + "31d809b078cdefaaf45266", + "7f216769148f0e997c7805", + "3a82369bb1a4da519bbd70", + "25920b5c96127e9d8ab05e", + "29702fc1f57fddc3369967", + "616dbeafd6aa623c1a7d7e", + "634d2540fd670a82f219a5", + "3d9abe3ec82d9602d9dd6b", + "665bc65420c0b0a151c97e", + "37d50d7838efaf03049cd7", + "385f7f48a7be6b46d108ef", + "5f2bc99aad2f27cdee05f4", + "3b6b43619a3730d5995ae4", + "5eb76c6301d8a849a1903f", + "38910d873da8dfd237e8f0", + "41558cae58d4f9a9001b87", + "58fc1b58696f8c22cfe344", + "64520e4823f48c1f48749a", + "3827b84269040363e5e02d", + "6c9c81ea487986867245b8", + "217bd444ac8e9808b3ae5a", + "44dd70b9323f17568e4ba3", + "50226b4aa22a0465ceea0c", + "6335fb7682400180e10d15", + "1857324131e535b1b2458f", + "3845bd22f959dda9197376", + "4d7797e0b2f77a7ffee785", + "16bed27a9c005817ccf111", + "5bf1d1c71be0c49ad75d9a", + "6d16d10feb1728044f2dc3", + "3abbf8af06f889daf59c4d", + "45769a307f5593bbf72056", + "2a640efe463008db4ed634", + "57f0f7ecb2d7dad43748ee", + "8000000000000000080000", + "7aa96a9fbe718c006a48f8", + "24086a392ab75e649d3cc1", + "9f20b6fedc099ec575691", + "313d62eb5f1104de5421a", + "438f5c0f163a4dfa04e5ce", + "63137369b8d47b6c9c43df", + "4ceae8c6ea35dc274647ed", + "465f3b1e25cde0e446d90d", + "9f0c9a93eecf4de349628", + "3addce3c43218484acf509", + "101d83882a81d0147b4342", + "4585b77fea18a0113ff609", + "73e92ea015629e3728aee0", + "257564a39a648e17d015e9", + "2f927b360b2b43bff822dc", + "328a9932d6b08a41a1df0e", + "207ff6a0da7f13b316c4b0", + "4b11585991700c233f6773", + "77664e53908d00007d1205", + "434a5edb31a9c3c6a0243e", + "692adfabb87ce969422961", + "3eb189e2bfcbe180703cfd", + "367efb55edcaadbb5e4f2b", + "4573a56ada0a29d31dd6b4", + "636f015a0c62753b283d5e", + "158e9251ef94651015ecc3", + "ca30526530b6f6f0c8fca", + "20b1838f00aa00d07f70fc", + "50c65d8772a3d5db269535", + "47262fa06b9c5ac8138f4f", + "d4a270719a348af6d6c29", + "af99b9d024438cfe9df66", + "2a5043ae183d338b7ebd55", + "7b85e0b99eff408f2aa978", + "282774a1f4bcb14e6723f9", + "58137399c99866772aed9a", + "7b7e71610f1589da383c31", + "1705c133c7ba24a2b5c528", + "336a41277b427813eaa191", + "78ec94c22ee912eded5499", + "1f9e8bffcac3e1471f7cd6", + "7e688d1cbe7e0a84a0f408", + "50a70d2086b5ca78a90368", + "16f5569ecf073acc30831d", + "720d9e52c4aea85ae24480", + "15bc81dd36a0393963bb64", + "633dad9eec0d451652bf40", + "3d433adb4bcd914fcfc4", + "ae1614cb7437dc6311ee9", + "504e8f5ee0e51320af92dc", + "4d55039bf17366425f055a", + "2ad535a50fda15e1835526", + "4f5cb9e29c3567f8c1b22b", + "409705e5654888d8af2f47", + "145ecffc8b532b7855ca8a", + "4a79a4d35e92cbac8fe0c0", + "7c2eeaa3b5ac7ca26ee5f2", + "b44a774aaac3d4d335389", + "488702c5b90021b8b24933", + "62d4635d0bbd6bf8fab17b", + "47a6912faf0eba695a3f82", + "5fea5590381b705c4ba54c", + "552dab94d8fab803e3abe6", + "622e4bcd237f601b3f864e", + "6b6195f4939abc517ea1fa", + "7ae4ce9746d1a251afde2", + "5411d9720f633bf7a356ea", + "93d0f45c8e78eed19b2b4", + "2cfe955ebd8c7e4615715c", + "4680ebb5e7e7fa1e676838", + "1cbb8749de080f5bb23b75", + "33fee942f43e9b7d2118f", + "4ef1c6a1bd63bb6b6207b1", + "1c1f24204ec4b044c10ff5", + "3561d1a2752f1d17dd5823", + "782fa87576f745d6c5a644", + "68d895a65569cf3ef3e3ea", + "46c01f4170feea6c601e12", + "7b8a17b08fccb33f4b7d6f", + "6332e8b1655b1a7193eb45", + "6649997ef28c919c6cae0f", + "55b727631edd20582945d2", + "1adfa664cf45ca975af0f8", + "34ca1ca17d4004b63727d1", + "46bc16d9041c2bda07b158", + "31afe414b9e841f105214d", + "4bc252b0fa653478344f1f", + "44b0628f84b11c5e71888", + "7f821b6d896942293448e9", + "125c7d70d2b6d99ae885da", + "49fee8b58237dc40ba3c5b", + "5dce9f322e405cdd3dc195", + "4e5afb2e233daef8a9bbcb", + "64e35a2939773b306ebb74", + "3cf63e3a65a7e509ca6dd4", + "1f88577ebb6a87d8478dfc", + "5d1cdedac3c1f047923b22", + "14b8d711e9732dc1d81b85", + "63ca1ec0700483b8f859e5", + "345343979af3beadfaced5", + "3aa36ece405e3ccd9341ca", + "5c37d517c640ac7f62a532", + "68e1a6376fdb4eb7b4b0e6", + "69a00aca76ae6e660be7bb", + "1644cc3e7fe80220ef2f70", + "58689766e836a562c78c53", + "2d83b4eaa1c8f768e56c30", + "11ff8e8d5e956398c99ca4", + "66de0cd9d504d0c8a10caa", + "f5d2bac49777fc8f10242", + "30436781bd712f316b4895", + "7a7cdf214176b6d3191883", + "64f3d838badcddd9bfdd0e", + "190017f50befaddece16d2", + "21a95826890e5cccb8a83e", + "2c958c952c5c886c2a60ad", + "3f8ccc4c495c412c1876e1", + "901282766f87bc24e50af", + "67fe63e894b36bad057249", + "35ab264ca762acbf67e1de", + "65b1a43ebc40ff17757bfe", + "1e0b5aa4ebf1898b7232a8", + "5a3548ae1dc271964cafb9", + "26e45399ef9d09b479c0d5", + "ff910ecf2ce1ed443b3a7", + "15dc7895737fd27e2fc2d8", + "306cc735643548c81d480", + "716be1338eb9fa3160de8a", + "37c639bab06813135e6962", + "18d28f7c13bdb1a27fc315", + "48dd5aa0d80d3fd4d31225", + "308d7af9cf09073e61779f", + "659ccea55ad34dab51a321", + "25f3d9fd234440b97c9821", + "5c0de6f6c164f44c52de84", + "30927374f464c892c53b50", + "540974d1b3361c5ccd3a2", + "a0b14921f2ca115669309", + "157e5726ec48e98ea5652c", + "7c50148337071a44808f27", + "54f01285acb2da9689a386", + "569b68c3d77231282d1705", + "7593ab2f13aa524b76e104", + "16a7968fcf87b51aa207b", + "2b1199cb9ff7848ec581", + "235057c5ef06d64b0093a1", + "3ad2c2000ee1db409ffcab", + "46dbd89f4ae0d06c0ab8e0", + "7fe713df2e65b878c1edc6", + "4f0b0a9e8338cbca398b3f", + "67ae16da8f876a2c8dc80f", + "1bff1788b61c434292f278", + "137786296b1e5f466871bf", + "413062fa329dcbe3b8887d", + "76a4bcdffe1207b9c84c3", + "394ca6d6650a3a703c8f0", + "7ec0ec060d3788349445a5", + "5e6c438c53b4bfbeab6a4c", + "1cae4d5a0b88eed0b2d97e", + "37150fd6c06a98e84f0fb9", + "5e5c9c54f1f75bcc98d1bd", + "7273cb20026d3e5dfa9567", + "23675569b6f74cecec658", + "4d84d472f48a1f27cda4fd", + "52e4d0f780530e040b8198", + "116822d6715118a8643140", + "2fb2d651d1a5fde2dc4d89", + "2cbb69d06f0ba3051ce433", + "982362cb3f64fc2535f18", + "ce584760ca84047b25a4f", + "3d32a6b665f10a829cfff8", + "228eebf60c055615805405", + "4adc76f7cd88044421953e", + "4f588ef825e26e596e160c", + "464063c0e0f5e5eae1bad1", + "231a1fa6a52f8377b2ca86", + "3b663e3e9013cab9326fc5", + "24716274d6f1761a2e503e", + "5eb0e751f365585e4f3fd3", + "1c63d031374620336f8c7a", + "6ac96f98fa78ffb692afd9", + "71f7ff7f6245492bf4ba4d", + "46b7638024bbab6f336734", + "2d3b2e3d52eac5c09743f7", + "2bf0a5cc2a5150523d2e64", + "1f7e1880120c76703199fa", + "27b48290f4bc222f54681d", + "274cbe37d4fe65732936f", + "5b872486f12a68a939069d", + "76c344db7c98c1b1fa25d1", + "6745627963b760ee39ad1a", + "2d30342ea20393b89b038b", + "51e2ff830fcf99b4147ec", + "764156f5d90616c8c45669", + "19d3eafc75447dbc2ce4d", + "4348b708829c7eddd56237", + "605ccf0922a0c35f768933", + "86aa65ac1949dd8af6918", + "2e564f6ba5f6f74e33f2dd", + "54ec1fbecc620b2a62de33", + "da96dc29f77c98efd9a65", + "3756665d23e5dc56d35905", + "7108a03a28803eb91e8a0a", + "75fa74ccac539d6f2e079d", + "56f539741375576aac816a", + "78ab001943d18ada1f6d03", + "7a283d5e2ed98485e2d260", + "7ca8eb46f6df31902607b1", + "3a9ec75af3c8e86b8c1b73", + "61df6c089b8a0a75da0288", + "3277a60ca85c986d50dee2", + "4afa034c14d96f077cc41e", + "58ca4d190a0f756173e746", + "33e094a7802d99ab1d9620", + "4ae3a5f46681ba13e649ed", + "6369f366be6b5ec99ddddf", + "4ad5b5ec9142810d730c91", + "520d75e4874b90e95d0ac6", + "56441a020eb196f9ab47f5", + "4f100cd2b63ef0cdac7165", + "1d72e71f6a57243468bc42", + "6102d4b92b578db1756028", + "6cdde5dc50cfba13ab15cc", + "6a2bde70b440f36a3a69b8", + "40afd831d872bbb5ba2dbe", + "52a170878e73d2b9a73398", + "363495385d4023abd7fffb", + "75ecb6eacac31eec1c8d24", + "38618fda51c023d44b41df", + "1b12fc1c7d3ee5cd24b30d", + "428c02c3c8bb1613aad2fd", + "6e925cc1e63747fc8301d9", + "1711e7c4ddf7dd725f454a", + "6543f2ea86c39aa319b565", + "4f88d842683a24f7a78b4e", + "6297ed8d827bde2f27c592", + "7a4c62248fb05a7ec5f894", + "50873f081856faa7b0c6c0", + "4a5c54b88c3afab5d73bb4", + "93ecdd9b52d588b62ae9d", + "1dff7b3a25d6efec89d4f1", + "4eabe0db8ac5d733acae29", + "2d0a5221661bafe1bae3a0", + "86148c3559c855d7a4785", + "4576a87293566d06f5b643", + "2c941d4c1c7d68ef593ae6", + "2c36a4d87847724f9fdecf", + "7b5f04e933b2e4204cdc65", + "774b9d1f08bb74ab682979", + "7c1fdd60de643e750fa1d", + "682291bfd680e2cd8f9d70", + "30d33e090854573dfd98f5", + "3860366ed3637eead94b8d", + "6e8b7f0e9607e44c1f9f65", + "720851fb976798365a6829", + "f5eef843bd404a6869b17", + "2a8c9eedadb6f6d58c06cf", + "232ce65586f95692d89383", + "d5835b5723a9063a2dd80", + "72316f1be6172c06994a4d", + "6a44a264bb1144d86619f3", + "5451512089afcff74e1bd9", + "557e56b5a5dcf30ae5f48", + "2a2840d0a8db4a22fdfb53", + "71e107fc4c98b40c6f7b53", + "68c711e371efbf9b278db8", + "31b42ccc858ccceae34d5", + "47eef469d5e96dff3b60f7", + "622155e1a7c16eb9e6f098", + "73037907fb5b7e20bf7973", + "2a5beeac5cc34b9b70fc5c", + "214b26c5cc4d2d1d455254", + "3326fb026bfe153a5a80e5", + "2fd395d2076e94e7f79f79", + "1da6208947854d10119a62", + "507a197204651599300f85", + "60e1157dceceaecc3a16c9", + "179c67b2886cbf8a80171f", + "4ad8d4214e4fe01b143d8", + "594820c775fd57d86cf9af", + "18932d3a50056ecbd4c0", + "cc47e7e925da6c91fe510", + "5ca455ab52339850752f94", + "31934713e4ff1d0d7cc583", + "77747c8e4550378570ec0d", + "44fd7c4168c2a61413dbd2", + "278331e342f211746f0d9f", + "13022f601d429947abd201", + "6d5ce69503f658697314d0", + "30151eaad7aef0e79d5e07", + "3b6333c6dc16d5f4351c47", + "308b1811fe8c7d6801df6e", + "1316737cef6e8d73f98c46", + "34026c0467a5bb1302960d", + "4374fb07e1eb1efc714a7f", + "13089f86ddae7614e1f733", + "91782b2d8bf1ec8b6e4db", + "739d86f4db437bd59681d0", + "2e99bf2a9cfd14eb01e4dc", + "1f372d16a7c783f301d859", + "3fd38eb64df431878b817e", + "1b3d8a50e5425c7a4550f6", + "2f775dce855cb22a4ce4b4", + "1856ece5542adaa42b18cf", + "72bad07fa5d3ca19811efa", + "210aaed4cc7b55edc4255b", + "13ef893fe161bb05038778", + "394242cd2ce4d5c927b1f7", + "2d8ba9bb83d8b7dc77cc32", + "4a9dee0a96c91e7cd6d7ca", + "3b62b01334bf25d1f5d560", + "3c11b4ca34c3237b362a26", + "9ae11d1f0b2cb73496a44", + "7d10d41f081cc53194454d", + "3476974a3a56c244bcd4ac", + "2d248bd8de364598100d1", + "371b6d93bf32954a1ed005", + "2f9195fa1721a36e6f5198", + "b5ea9188a76cbd4490c2c", + "67fe64c68be6372b30260", + "2582d22d55dfd72b2d70bf", + "2144bb26c3488be851e3b2", + "69cf5ded5037b0fc848b28", + "451cf4e4a6ce149cfc4095", + "4845e19f6384ed5724d8ce", + "5c721c1e9f943f1e44c526", + "6b628f924b031ff396258b", + "2db4889991fd96d5a3dbfa", + "75393667821938c0e5a628", + "2e37e64613e6e49f75ff6b", + "7569e0846a7c92c5b07e91", + "544e247e73028cc23b1f51", + "2e14fbc2ca9b056ee6a0e6", + "5c96c4bf9c30f05dfa52bf", + "30455197024dac28f22ad9", + "16587b1213183c74388d6a", + "62a6ac9d0c5e4b3890d61a", + "5d0e736ad9b0e048c53cb9", + "29c81a2bbc75ee65e40fbe", + "a5803d95905530efe4cbc", + "45fae251151688f6948ec3", + "34de10a25d48bbec6bc310", + "38e1136120c0a50e7c1942", + "4be7ae42a1b71df0fdbed2", + "70eda2a92c3f3d551052fc", + "736e4111350ab36a2be4ca", + "471e19dff79f0bf8dd75e4", + "7c4c5a07ab45db64032f8c", + "3e8f3fee79b0aa7d3158c9", + "6803ba4d96f3cea5b5b619", + "645491f7754448588100c4", + "64c773513b07ac7be226c5", + "1207f0afa9b17ee1e3a14c", + "1a5a3601f9e5c757413d21", + "671a35180c429ed6cd73d6", + "3f719d970328ab86444133", + "2eb29dd03203d9dedca2ed", + "3ca5432d73f30360d5e251", + "ef9f73cc5ae815a32ca63", + "76930d75187c32e1c0855c", + "297ac6d1d91b19c8ceb3ad", + "4d06acabc42f8f6c6561a2", + "17f90d7760ace90b4281fa", + "79973f898e87ee6433e53e", + "1177a186084a0188e6b25c", + "46ea372cc256b25d8bedb8", + "9d0d5139d46e4d9db3662", + "31f4e6b45c1cedb6d4c94", + "222ad5a5eecaf564928d05", + "7bfb517a9a7064f7f0b9cf", + "88d1f466f33239ebbee3e", + "28c8b8ba9341ac37c38695", + "430a7ef273c75f6860a9e2", + "5963fe850d852bb19cdfe3", + "57ca180b4c6f8c3a63ae46", + "745f8230228fe0e913a537", + "6495ff035413be2b53c45f", + "1825a2f6c03df8e89a424f", + "4ee9fe013ba8fc6ac8d470", + "7b7c35dbf0dd6b94d050c5", + "a70e6c0e6da7b5bd943d0", + "6904f88af6eea4b3f91bbf", + "5ccb3321bf79805e3743ec", + "40fe888eb50954f82f8f41", + "1683c065332572cac40e7f", + "265a6fe3ade48b79bb704f", + "6869e474162fccd5e6ce8a", + "1621052353e1bb38663f44", + "5206d5cc4cf74b102b511e", + "459fc4d70a1a8040309b48", + "1a38abc6055dcfc6f54cd3", + "6de250d6d96fba0a4a2df6", + "521255c27009b10aeef14", + "784a6ea72c75433fa2c1c0", + "1c429a8aad032b85e815c6", + "46ae03b83630be869f3f67", + "468227ba06af62fa70d6b", + "1832f7608c30377f8a27c1", + "74e8524ea4276a1585abc9", + "479f0a9b95b8f0e630df10", + "6c9aa8a230f91d4e6f84c2", + "2020839307f0a0b2a66465", + "617907260cf1e3612508c0", + "50b259ce6ef7786ad19380", + "60ad8426c5228781a660d2", + "640821dda0f544b159e25f", + "11216382d02fa8a680f2c", + "3b142ae3f666b5a458fd6", + "50d8060a4c81ac0d9dcc9a", + "656e0aaff42e8f100df7e1", + "6b189bed3e1ee805a7089f", + "587965194057ffad1ed72d", + "7c91adf751ba7b800072a4", + "66c37766a09f2454161188", + "2aaf602c5ad427702561f0", + "1fe772e91ad75a2d2792c4", + "432bf33542ea8f8c0e1cab", + "108be849403d8b9e0adadd", + "1f098e306099d97f37bcee", + "15e468fec0387d9dcde2e9", + "35a56ed2078e145e9b5d42", + "3450478bbaf1db9aae9e0e", + "5819cdbf42afd2334f96", + "453649c203cf983e439d84", + "6e6871265fe9883143d121", + "14b7709b903167ca33c0bd", + "5bb6095d45a0253a5e3e2d", + "604b2e853911ce83225aba", + "7dcfee63c4d594e4583601", + "245ff16a71eb8c45257fd0", + "51f56cb5201bdd22f49e70", + "1b50ac3c3f5269c1d7aa40", + "68c11de19f57751aa11e9b", + "73da067d52334a718631ff", + "63f2b709d7c6ba1ce60255", + "6a47915604a062b94c626c", + "6d15e33dfd91b0adf65ea8", + "36b718d293f968b4388def", + "38b2a18fa105ae1a1e82c8", + "456d747923e7fcbd260fae", + "17a8f2f3a036b54c467b7b", + "4cd6b5c75a375bce549db5", + "ad8ecaa59795b2101aeb", + "5e89ffa159d58051edf13c", + "48457eaf5bfbcca641689", + "11e987960e92f0cfe9e7d", + "484fed0412b66b4ad6689b", + "2567685d25fd668a9a024e", + "5d36dd2a4f038c91a8e525", + "78386c3f2bea1d92b0136f", + "6ecd91e762474ea500bb02", + "460dae8d89d7708b43a1c7", + "3846b043ea9479616ae948", + "35d846be55b3952e278ab9", + "697bd2294052d067eed5b", + "29ecceda91e2de99bded7a", + "32c247d46291051243da8b", + "59d6c2db6f995cfebbccc9", + "5628eeca86bc4f505da4a8", + "4450b05b160d8c53288cd5", + "5d0b6fe03f574db311d01d", + "7059a8ae14b27b87ae7942", + "7e37627adf10efb14adf13", + "4dae59d140c542483e12a9", + "26246e8fdf408dac8fd2a5", + "2d3baa252f4d982bd2ad11", + "266efd2e0daff29e309d38", + "8fdbca74c18894d421e52", + "7cdb727ae2bfeeed50af45", + "490df281db25788739ca0c", + "324340f1f7ccc9eff05524", + "595eaf076defb81f21236", + "22aca8e5833c97719ebb51", + "421f5a540df5b7ba309bc8", + "4cf40ea87be0baab3f0a23", + "78050a04d755b7008433fa", + "70089a05ca7765b8ef62a5", + "6446d75a31a4956c235943", + "3bc0b4b12c4e0d37097319", + "6a6ceb53a9e08bce60e22f", + "5527257327c4eade309a67", + "5193e0be567990b2818200", + "540f6a5d04324cc6ed1398", + "d79412155f3d978866277", + "65e3000fa520e5bd8bfdc3", + "988dfd270fa06d78d9fba", + "6bbfc916f60c65ff6069ae", + "22a2f494120b7469421488", + "5514a9f97c736ef89e2558", + "494a8aca14d077b143ca10", + "599c6bd84b32b97e000cad", + "2983f80020a9f6532ba834", + "39395b9f947ccce230cc1d", + "5eb549dbd9b640a1018c4c", + "3a948a48ee72242647aeee", + "5c0b858603efe861d8e554", + "18af2f7c66ebae2215b225", + "7656e2bcd13769bc7d3690", + "1d345a329131e03407a9ae", + "6b91d4c08bfb155d85a09d", + "c5eb765e74f7ea6040509", + "347e522bb35549d788adad", + "3c2561b4603673cde220ff", + "78c36b7a1a1ac86080796c", + "34f1c6d5946b4f8e9c34f2", + "1d82fef6b5daac184a21bb", + "11e3b65e520ccb94e0f28b", + "53ee027a60ac6b8703b4c4", + "252a9565fc2ed88c83afe5", + "2c748923f66e9b836e2956", + "501c73bb8897e8a9b644da", + "527df835ccce3d0d8dc6be", + "753e3ffd723c55ffaa57eb", + "27cf1a1e36d6b6fbf673f1", + "303e55cf5d940fa1eb0863", + "483592c4cf34d97823b087", + "404518992cad409d30e138", + "247aa73439f114a2bae1f5", + "43f106dd9b706c7cbad455", + "60de98af5b2e9794ccddda", + "2bbb60823308802716b002", + "5a4b0bdbb9a3eba57ecafc", + "7eacc570a117e3d2c4ad3b", + "b80a7edd7c5745e63c50d", + "3d2c4d19f97ec14b7f9a20", + "8e1dc29eaa3429a93416f", + "16c859dc1504abc8bebb3e", + "142700479fca005e365a5", + "1a5a69890d5f080ad27aee", + "333e4709f384c49fba280e", + "773e49f5dd28ab9abcc4f3", + "7fcabd5ff8d8321877d09d", + "392447173660d27311fc56", + "3b607643718a1436cbf93f", + "3d01c0ebec513aebdf049d", + "115af287df30e3b9382159", + "217e1d11ab05e37175e942", + "43240f690e895ee2ce6199", + "6473a7fe7461369e02b551", + "56d1b28a25e58905b948d1", + "5c08c8490ead830327cfc3", + "60d1cb028fdf2f7506480f", + "6efc437814b1b1a8db77d5", + "386903ad1ff043a2a203ff", + "113203b24e05e4ff03bfc7", + "2287f22a43e09d12b5fed1", + "3fc330d82c00c3c98129ad", + "5bdacc4f0e9a9f3c5eb7f", + "43ad0b393a7c2a4d667efc", + "4d17bed73f2032142b03a3", + "72492bafc7adaedde393c7", + "161741a6fabf2be3cb74a", + "3253a13971cf24cc306f4e", + "3566ae3cffa53b48308a5c", + "772853e9593804a23d0c9f", + "58d985a1111ffbdece42a", + "6b463071583d5d51119c18", + "58ab9a24dbad2ee2c0942", + "7b625b197eb76a08b19ecf", + "153d46a7ad0d4c7b81a83d", + "560bc3397e1eecda48e8d6", + "3e27d166777ab6af4a4b75", + "10a7cb0c646bfbfaf6b1db", + "abe7e5169767e92b8517c", + "46bc67034da17d5b7c72cf", + "16c1a9b3bcba979d2fb250", + "20573b178651610a410e89", + "46c829e7e1980bc26c13f9", + "3428c448a20f463714e16e", + "7be85a588e4f01b973f9a4", + "382238b03129ae3a8cb2e2", + "8b93e9e7ea54df6ea61e0", + "dde95ff1403621e1e9c39", + "b3a488e23273b8e74aa2e", + "3af2323baa99fc6ef534e0", + "6003c83a8ae5ae42a0956a", + "2ac52045b3b592dfbeeaaa", + "7f29a05b16052f06eff50a", + "1eae59f579b122f18b84d1", + "28593d93a1a2159e16cc13", + "460f5f98b19a4d353358fb", + "56efa25eac0d5f675af6b6", + "73e9dbd2873c27040a215d", + "5ca40898d5d325e557e04e", + "405224a222d42397ca18d2", + "a69b0e544c08336c9606b", + "1dfe68dd4d69d0d5368782", + "18bd8096de042467441c8c", + "55f3bd5a345801aa67f91c", + "5430c091f416778afc3f3e", + "4e33cc0d26d44c2394c8d2", + "2ac1793993d045ec4ea0ab", + "a0ac3885d2cb22aeb977f", + "1073f10b92dd8a202017b2", + "23e36a6e12831353ac1afd", + "71f02d980dd943488cbefc", + "7e558ced95c8a49312174c", + "21b1555bb331b89f928e6d", + "75ea3318a1054593eca8e6", + "88658ceb2447416239af", + "7dca64fefd065e0893d874", + "5f427b13d8351db71dc75e", + "475c02da59260b083fa105", + "5ee825c795f457b727b9e8", + "124aa58a7e2a882689ba12", + "797bc83e9789b064b51c92", + "2a8b319bb90a064d3cc523", + "5570385cc742f16a21edc9", + "122e1cf4ba920fb923d0e1", + "7fc9fec9506aa1a0661240", + "3fc3680285719ed4f7e7fe", + "7175ce67c0c74c440327c2", + "503bee64726b7b32815f44", + "5c4dc3dd9138eb7169302d", + "3f0eb0b9bdbbe37f40dc5f", + "5aa25b718982092494e872", + "20b11d38582bb81886466a", + "36baace22f2d7a2014dd1e", + "27216bcb23514df00030b1", + "3146d29fae3f74014572cf", + "3988842f76572373c3459b", + "6aacfa3617f47dce14015a", + "581f2a492a4fe468c3971b", + "4cc8bba01b6788222eb375", + "5c00c9ce80be32396ca075", + "28670ba592cd5a2625df3d", + "14e47840962745e9f2bba8", + "7f26a6c99362d1126b6773", + "6eb090e9b1df79f4d2226", + "7f035a794c44a6a57abf00", + "1740e5e9a57a4e80eed5c8", + "46b1961304e45b428bd48", + "49ce8855b52dfbb878b2d3", + "313ef612f2fd65f39c2e3e", + "7332b41a9fe9dfbe59f71f", + "41858e467a21a3938d60aa", + "6234ffe0f938a25ce0f5a8", + "1105d3c71c59dedcb33f", + "7a75b868e9fb50140bd203", + "68ae7d3832d31bce57eaf3", + "600de685f1a4c2f4a236d9", + "3684bf3ee3a2b8635ca0e1", + "2bb74459adcd7029c9c35f", + "b7347a4820635a5852b61", + "249f5358017ada6567b747", + "17445a9a60b0dfca9df354", + "695d060b1aceccfdfa96c2", + "a209dce8856336ebd97f2", + "72059eace3671c76d67005", + "6dafdbef06e817ec42991d", + "47a38df2df7f516ac35f8d", + "6a3afde1cc784aefb925c8", + "112bfdedc3401ff20ffcf6", + "3161bea37fcc040c6f6494", + "6152b40d63a55e1ef6e750", + "41127c781a5dd07b6ea357", + "1df80784a603cde2e8573c", + "2ad8c773fcdf92009db9b6", + "5cd8f904c6a0e1c85597c4", + "21532161ecdbdaac15b68a", + "5a80f23e82161bfd2caa8a", + "59377c70bed9cccb346cff", + "212d386743b2c2069ec4b7", + "26fb73843bff3e4d17aa10", + "1f15e66f6c5b160801ec4b", + "4024c6847ce50a93fefd10", + "38419b7c213432cd42f4bd", + "ea9789ae096da5bedc410", + "23a7a59b35972768b71627", + "60a177acbb4aeba955e6a6", + "22d9fd1638450186756413", + "5a49a0430b2145ead2e9a5", + "7fb445fb34908201d41b44", + "7b1e254e6050240b36eede", + "44867f919f39bbc1ac8a53", + "57c6f0c9d94e02524b4029", + "553a48facee35f17214327", + "5e3402a24a307a945167f7", + "4ecbf2559411992397d1ba", + "3adf2b6aaf40f5dcdffdf2", + "156e3560db5a642c108333", + "26f3f960b2ba725c83b706", + "3135a042ca5b8873367081", + "5778dc2f1465daeafbf88f", + "142aa17e315b2096d3470c", + "17b1690a9c9f4fba9154e2", + "6f3d0d822d1a27088df8e4", + "749ebfb4005c94ed288c4", + "7f64ec3ee1d6fd7b5f9352", + "3ea29dc49c06d64c187862", + "322d1e939066766f918e43", + "d1c5eeefb8bb620c573fa", + "7d83ba89b9f89b55497937", + "2f635c018151dfffc38ed7", + "6b77b6d06b93487730de2b", + "202d04fcffa7e3a0ae0585", + "7351e32ddd53c7465f65e8", + "1d5b0385650d2d81754f72", + "5227913634dbd4b19ffe95", + "1eacd91eb3938b38f0210f", + "3ab4982748b8f986192588", + "4a648c611ef0b3b0e318e0", + "18eb41f414dd28e8ff3a1b", + "28e33efab89fb4f64d6498", + "1b67e56d8c8f6656eac86d", + "27476789fbe89ef5fe00c0", + "21e39ab39cd96423900120", + "4818fb8f958698b6e9c9d9", + "95d86ded4a7b26a1ad331", + "1b2e283bc4ff40366c744f", + "2db6e61499c9393946b57f", + "3e8986648fb4053520276a", + "5eec1e56c0a2d0e34dfc8a", + "389d9fa841750626db108d", + "4e0326164785519414d07e", + "530f4c391aa2b0938eb272", + "50c915d40aeb9e4ec78789", + "57bf13241507b812b9a904", + "3245bbf080c6731fee74dc", + "11081f4b8fb8f0a9abf772", + "7a75be28b1e93e4e0c9342", + "174fdf0bcfc8d0f4e77e83", + "46986d0da7a2c17dd1dc22", + "68e88d3bc4e8d390ae4b13", + "4a2580e03d81912089d88d", + "201e678f30ea96fd17615f", + "3566f7f67e026f0278dfd5", + "30485371efc19b50bbafe6", + "4dedb1ba2a6a4abde67337", + "33440d7d3472a4b6e2f627", + "591749051e47ee7b49cf82", + "3fe61d12a0b09791925ccd", + "7f5140ee63b60e0a33058a", + "5eb217461cfa46d5694397", + "6aaafc0107575bd9b70723", + "3305f9d7ac9bc35ded571d", + "5ef7fbdbf498c8684625f6", + "3b66491ccee4801a4e3673", + "76fbf6732402bc76e061d1", + "28a37e042abf70a7cb137d", + "534c1a3b25194e8cd66e6c", + "3eedab106a435ef32b9e48", + "6bd995ef31bcfd22d52d9f", + "6b5da25417070642e0ba4c", + "3d40b56764f7765513d13", + "44bd0de2094b8b3759356", + "312518f9c1ce1e690c003d", + "f920b02af1e3bd673512e", + "4ed1311eae64f9e834ee7b", + "4d075c933e4b93da3a33d9", + "133606f2fed41ffd77b999", + "16b6721ea95f55ef631d25", + "140aa7412f6488f5404826", + "3ae99fca89d15abe091160", + "543222604f067afa3e7558", + "2948eda7d7c508918c3056", + "4cb6253df884020966d27b", + "46bafe88322c67f3b90507", + "31416a7f09913059dc251d", + "52d3cdd253b64a03c5885b", + "1c5d10301fcf4a14c82adb", + "5cd8f782abb8b60cbf36f8", + "42b636bc4126dddf74cb00", + "5afe15c1524eda9627e183", + "783d012e8b928ea14eaad8", + "45242101d43b276b34115c", + "28b06d6b1f993702509e4a", + "16ad879cfcd3e458301dc9", + "78873bb7282961108e63a", + "1c5b7d2b84cbc7b29bf542", + "48edf77c0fc298b0491c2a", + "398764fa3e177502af4d3b", + "1d1aa15ce7c8c15f051ba9", + "401a3ed45557939fa7eea", + "13f9a309c929439a91df6c", + "3aef6b8ad8d4f116a27e4a", + "64b1dd5abc6713a8f53d0c", + "73f4373aa0c46a1ae61409", + "1ebddbaa72ad1a2b1cdc49", + "2cd33d1f501e268643d591", + "11b77783f411c457cf909e", + "d92cf9efd7d12c62f0dfe", + "2c56fdcda56f78dcda9b60", + "118d29d91686683483dea8", + "7e05b7c7d54cfa1fc7b525", + "42c5d2d1082dd2375a4ef3", + "26554ee3e9bedb1a3a09fd", + "ad64cff4b4763a7fda09f", + "5f9563c7ca70d6e5061bfa", + "38d987fd4b450ee5a69286", + "62af499c078af038905758", + "3eecfda3b4d92af2b7e5ae", + "5e195ccf98c9a4e1967fe1", + "61c0e0ff11a378274b395c", + "486fd3ea0158f33daf767d", + "4cfaabac7104cbad2ed728", + "714ed5cb0027168be15142", + "ac5bf0492a63aa0bf597", + "53339d5a01f3d2e9bc8755", + "457d09be8a2a4c351b63ae", + "1892726d56d4f8f92dde20", + "236e08f8411de38e44c3cd", + "5549ebaa872068aae68ac5", + "11df54a696817409ff1164", + "7f695021b246db24a5113a", + "5267f1f68134d546ec646f", + "4ad5e4985caa0c7ee63b9f", + "3c5262912ab7e82ffd49c", + "7f9a1f8e557617163d5e82", + "31b2ef6b5163160bdce290", + "127dbd62073fb0c17b4217", + "5fe5a0fcee7c061cf49e8d", + "34ce2df12c5e0970f682d1", + "4f6148f444b84dfe82ecb2", + "740e3fa0e998e741eb97cb", + "5623f1c8e0d5c15938b2a1", + "79ef58660a06bbc22f0cce", + "35f48b300d21989b05560", + "4efe7cc856d9eef4fda470", + "43f99aac41b05d58c624b4", + "66b03ec137e6361ddf6317", + "4382f99dff4951a775fb77", + "974b1ea8fc3d4665ea11a", + "1998c4f90bb8b5465b7b1e", + "a49f38b3c0b7ca1fc5c10", + "57d421e876be8c87768c1a", + "14c79375686a30f4c21ea1", + "667b77d58f7f6b14e19bc3", + "17b5a764867bc2f176278", + "cf2bf44fe6c433cc00c9", + "61619bfea73d2a10c7a7e9", + "3908eb827c8209b96bc643", + "e859d26ac6c854731c10d", + "562d8222a0b94f5af3137c", + "780a2a5411b159d83dcb95", + "645cf2dd2735f1cbf53f1a", + "6476d594392ef9fc9a3df1", + "7df75741d3ccafb28da8e", + "526d1eb936d1a3dec6eeb3", + "1a3337bb0bc288bf44447e", + "13413811d8a8e6bc2e6cf8", + "54728697bad28cd0bcc9f", + "2e178e1cc4f997792ce1aa", + "f339d2f5ca33347ae8d13", + "24dc2302a4b77b85525bd", + "4779c6f70cb71f00e32d17", + "20866732367b425f7e5ad1", + "26c45bee1cb7e300fef593", + "4f3fe475424626758ebe24", + "3979e2b3d54a21e7e8c1cf", + "50bb1918112bad3e57d523", + "4e1bc7c2f29a2f520bcf7d", + "3b4ae8aa403abef29b052b", + "54765bab6ab2b394d9dee1", + "5e7e83070de3b07a4bc87", + "6131db76263e902f303f6e", + "2fb62f0a2e9435830411", + "57b341376c8eeb5e957326", + "7d59312cf551555c728152", + "3e13e95a38da382cdac574", + "53e3092b891267552e8471", + "ea04fd9db78a21c39b6a5", + "42cda11218a2f5a8d7bd1f", + "3aaf5736ed929c1ed0ab93", + "6e93c69a7627e1f9832a61", + "37526cf6c350fc29ecf559", + "5640578c9a2f674c097c8a", + "41ebedf12db1451af99b12", + "66db9685c97e1039f97191", + "61e21b9a255226ab8a9c03", + "4d36c683652009a273c69c", + "3e00e41664141664f70d8e", + "734cae170e5d7d8758c509", + "26c603e605263eb37ee858", + "1cb50b0700a11348f864c6", + "6b4ed91c3f4f0b25252206", + "46436019c4b35e76ea4182", + "44885049137a26d9ff4438", + "1cf7470aa8bed908f93c32", + "56d7ace10d6e046f35bc1e", + "2bc7683658e815b0850ae", + "2bd0c39ecff8d002f3a3f7", + "2848634cb8eba43423c432", + "177aa9fd51aa698c4f5d25", + "809a8bacccc204134381c", + "60483a9742002ed4918cd1", + "7544304d1b3c2594fef689", + "49ddb3e956e6fd8d65e1ed", + "3820d1fc1eab75e925dc43", + "7093b250c7b04c2c6d567c", + "16870479234b3337ddc8c9", + "18f39bb607de6b1ad183e4", + "a5d62acbaf68c52001a4b", + "65f33a2872e25c8a682f06", + "4e66ba0bc1058a3931042b", + "357eab1d6b7f6618503b3c", + "5cac3c06df31850ad70694", + "7e68cfb951ae556b15fa1", + "7de8764ca6a43c99d6a50f", + "329c1979af2fa92b25335f", + "113149ff5647e02c5d8e8c", + "5fde1fcd656f65c682e01e", + "3a2bc2968347afc3827c67", + "b7602abf832a9540b03b8", + "28434971e0ad86e87340b6", + "e24946eda2a54a4c98b6e", + "318d2300370d914ed1483a", + "776ff8d5492c149f7acf17", + "50e46147373113c54d73c2", + "59652c3042e742dab07904", + "1e74e23fb34c50dc055d0", + "3c31433d0db703e03c294d", + "64666abc6a9a2f6a1c7575", + "191da9b869e973d2fdfea7", + "6c362e17e2173449bde86a", + "1a8ed7cad7bcfca4620120", + "273beeddd87cbae01c207f", + "568f3917922fe83ad3e225", + "44e6ec408ba05ad98e759", + "32f5fb93813b0abef00c9a", + "490db50fd1ace7e8ec15ae", + "7630fa097aa2bf97cef6b9", + "6ef800332004d6cda26cdc", + "551ec7c1ae7ed078f940c0", + "455927f484bb8820a2ccf7", + "7933956672bf2e4535ee34", + "2a7311c640e7cf0ecc141", + "7242e44696c19a3a1910b7", + "3c7a2b6b58424eab86f3b4", + "359b331d03b9cc2451c1f8", + "4169ab1c6bf3f0abec6c34", + "6df855d5b158377d521892", + "3c4374002a4b05edbee285", + "209910d1159692421526c", + "31dfcfe645b46b329ee2a1", + "1e6874a8b307092ad6e72b", + "6b7e91fb5948662e3961e3", + "23966403e567312c7a8379", + "2f62056d547ebf7995c6e6", + "5fda42ececb40f359e4f0b", + "18a6b71998f6f84fd5d814", + "76f42929010d1ca7619b42", + "50e22c6cf5d6b70def807b", + "1cc96ab6764758e9cff09d", + "59aa03a25735023ef97395", + "741d91860d83d000328e76", + "a9753c820825d73c04548", + "4ed7cbd3e32dee7a40c626", + "6ce70c288bc2711b1b024f", + "59efda7d6a6d8e6aaaba46", + "6ee757629a9b68ac7e690f", + "328bf9a8c78ea2ca3388be", + "59bb325b9748e94acb6630", + "55137101093be9fb51857e", + "9c6c4ea9b05d327c6b7f3", + "77815256a969cddb479be9", + "3b0cb59bddc94e18233703", + "7a123babe2e7abafbaf8e7", + "35d6d7bb2855d9adfbf650", + "6ad95985d0ab8e8d823145", + "2133efe27b28c873f101f", + "607776583fcde0ad8e4c87", + "e2d9cdfcde324e23eda21", + "747c7a13b706fb28e46c47", + "35d310b1c9f92e46c5dccd", + "7248daa035ed0c83c2d007", + "3c8b578aed4234d875a143", + "766ac65aedf40f90341249", + "3087f959a9893769198248", + "49a34db8369186ccd3e18b", + "69b04bfb64dc28afc90f3", + "3732911ea3b78b2cc54de2", + "7dde8d7ccd2cebd1d4b943", + "66727c69de089e222307ae", + "5a67c62d60522486e9cab9", + "6acdbbcb1d87bb33b845b0", + "1f1cae187cb4e7e2d75ff5", + "1cc8bac063e7f4722cc83d", + "1f75d643fbc4ab52296f51", + "7b34f38b9d16f0d70ddae4", + "74a0eb9dfa780e171aa5bc", + "4366b19aa12542a30c1749", + "4a1404c02a58e6862d11f5", + "55e542cd768eaa4ab7eb43", + "182ed4a29e8be479e40c89", + "5eb96063b604b2d052b457", + "d755ece5c8fed1e833d4b", + "10f7a570b959918609b06f", + "656a55d45a93fac53881ab", + "60e3811062f0661e25f626", + "24a843ed6770d822f92be9", + "216b9b04319fd8da8a6d3b", + "3e41b8ea3309221756df7b", + "5a00aa930e50101d3ad458", + "260985f3992a168bc7fb3b", + "5c3df551863d0055925c95", + "28b06a5b8a2319d5d78e37", + "3567cd9077f5bb1d3115a3", + "460858d1e253129bf64e5b", + "485bb888b6979f8f201fb8", + "7aeadbfb750a598afce6ac", + "3cfed079405fd41004c118", + "3dac1d8f9e9cf46cc42204", + "2df246fe147cf6a7d9ed5f", + "1a908fcb6be810a9e1e92a", + "6c33a3a058504d48c17efb", + "66e9cba0e526f30b7b9b8f", + "757f2101d664083b2fe8c9", + "18c5643eccf2173f575420", + "7dd9082b6f5562b8d6ba91", + "389d1e8a26db35e20882fb", + "65172c59adde7fa1aa62e", + "1a7c7fe62effcf2d1a2cb5", + "392d9ae31bf22e0236e198", + "3d886ee05f1bcf69fa4f70", + "2c8f1060dc661c38044a5b", + "16eeff7e87d3caf8e58a92", + "741dd990ea20591fd9b5ff", + "39bbee3cab035e7fc68b3", + "4996f8a3f7c2c5fac02813", + "36ded179138f0e4cdf1ee7", + "f9d7db7493258ceea1a37", + "2a6c238cf5c57a2939882f", + "35dbe95730bed0669969ad", + "290fe0ae5a419909be4e2b", + "63839ba9cca448dd7fecff", + "30a8e1972ee45f3e0613d5", + "509ea21b16907067d06b82", + "7633f58adb014bb5585678", + "6c8fa526a6bdbce9f7b832", + "4a78cbf6bef93b38948e09", + "37c7b0fc4e875134c29246", + "4c996629390ea0954eeb1f", + "222dacddb6e77241cadac8", + "2df2bed0dd9ba405c8c5ce", + "3a7c703f2642b17eba0c69", + "22e8d9bc34a96264dd4caa", + "4bb8f4e111d078e3c54590", + "69efc15f2bab10979940b4", + "4e1b51392bd1ad38a51d00", + "5e82dce0d15b40d73e81bd", + "6a410e486ad693817f9d31", + "5dab9e18ce0b8340db40a2", + "2df0f496cddcc699504250", + "124c113e25b1a8153a830d", + "28d70ec040ec983aded5c7", + "7a93c6e177d746f5eb503", + "14c9d693e42997dbc96df3", + "50755ca653aac70b84b12a", + "5f72010436c71470f190d9", + "1af9124bffaade4351e990", + "5fdc8856cd703470a1e5a4", + "10b57d68a8cfe14ef3ca7c", + "245003f901ae0a356365b5", + "63dbff9398c6d2cafd1418", + "75c2ce5e2535ac7878196c", + "15c08724b1daf7a590d087", + "3dc7ec06146d405216b267", + "1fab75ef67bec61a68a277", + "711d3de6506cffb89d82c0", + "15b79d2a607e674b1df02c", + "928d2a95f60dac2e280f3", + "2db6d4b5b7a928883df97f", + "522bb592e89a78b316244d", + "cfbfcb607ba616c016fef", + "13d6f0fac0c0b9cd891715", + "12a8a0e9fe6ba5c3656149", + "4553e500c491eb2ced6e1a", + "368d20177281b04fd8018f", + "2579cde0e8d37e04167a12", + "2f4c8ebd42ef359c5ac79b", + "7afeb7314079bb05948a57", + "4dde9b7ed5a96934e4dd51", + "3cfc7a65b66e9f8c6f8cbd", + "7453e07405f19cfba93c17", + "18488f368798b8734164ca", + "532d2ff2bd9d0ca8b344ee", + "18704740809cbd3a91bcc8", + "1a91a4ef4625f7ae911f1d", + "26240f3e8816b599bb01c6", + "60749c3a015660029dacb9", + "321405882a2a0c05f7907b", + "6b85f2803d97e818e2e527", + "40d9ddb7d82d86fe4dc6d7", + "5bc9b4c686de112404ccc3", + "49e219e4b19fa82e3cdd8d", + "6b4aa7c57cecc522b32c99", + "1152ee1f6c91b44b1faa20", + "4f1b7b04b31a6d85748c8e", + "28eaec99940a1b1f563841", + "341ee0e329f6ab9da76c4a", + "8a4219421d2f55bef801a", + "25e4a83dfc2f633765d96b", + "22a17bb1e02873c944cbe3", + "4c4fa3875e78671bc1d2bc", + "79db0961906e2d46b0b349", + "68d1c5df4d9653be9c8e7b", + "7e0f7a6620c31d72d9d568", + "42af59edeafb6c79b9d208", + "3d17d279ec6a81f53cd4f8", + "2f1ba6fd01e5cf713f7991", + "5c246c8d9baad4092bd7a9", + "1c6a5fca595a1ff62b0a7b", + "5c6ce5b29bafc437eda5ce", + "709f8b4e1e81f78ecdd5bb", + "619fb115b590487fbaece5", + "5b917d89029b0850efbfd7", + "2103ca88adecbfdd3370", + "4e0f2086acba831702db59", + "cebc8496358956c6ed352", + "4aa62ab8f33741774c11af", + "55925c1c09bda33b3d0e7c", + "47b5376a6bf9ae1b5420d0", + "5f305f39404231a1ce6591", + "d0d6f30615b8f231bece9", + "851fa3652b44e57d9190b", + "4c099f907df9db8a25350c", + "48cdee08fb7cd0c828eec2", + "7399c1866bdfc2ee9d0ba4", + "7da4d79cdf3d83f0763c79", + "5de657154513d33b2dbb32", + "4057d3883ee10c31d0c5f9", + "139a5be9fe5d74b7b324f6", + "4678975ad8ef4ef63ed234", + "3a1984f88834905315728d", + "5e53c14166e301e45a1c84", + "1246f9f5df870b21bcb1e6", + "6095ebe0914ab346aaab52", + "173ef6d2228315e7fc8577", + "71a2dd2f4561ce6b25cc84", + "17f8a55fef5d58503cdf89", + "2885d88c14361dbedb4fb1", + "69cb489051468dc8b7a10d", + "6552488fb7e68b138c5691", + "3d5e0686efab87e5e7c266", + "5adfc7a0a78f6657a5960", + "65773487e5415b58fb205a", + "1aa4bb2c56ddce8ebceb39", + "1ae4174a64ea29d65c88b7", + "2af1b36e871a2152d87ea3", + "7118c95246463e79fab7c6", + "7f31009d8b384ea51f9235", + "5eb2b60c1d97e4dcdb09d3", + "5ccfa76193ddbc64186a30", + "1e31c413e16722caeb814", + "dee72e6d522c55b461f4b", + "18250945b23b28bdd1208a", + "72e90ac5d748fbd2d7aadd", + "10ad00e38092458e73fe4f", + "1144f2116d6e426f3addec", + "720179be8f54eb5c778be", + "1fe4c7d7da3eaeaae25e65", + "51a001a64a22c7bc0db3ea", + "7d40cdfed339cab397652f", + "1960ca77285b35812422e2", + "421de31b9083741c4d4c48", + "3cd3f5ea5623ce969c863a", + "4b6b8f4e6118573075d4ce", + "43ac29ece073be2a30ce86", + "217c2392122f9868740137", + "2b3dba5edc89810815d1ce", + "7a9c1df7aec04dc00e3584", + "74aed20fd8f19001dab562", + "74f8ea2aa01f3e122e9ec6", + "7f3f1310b0770a6a8ab4e6", + "7377f9449fdfa779330064", + "4d3d6fd7781e8ff3322226", + "3629587577ea6cd990a3d3", + "29ca62a9234f915c5c9715", + "5286bfcb1951cdb460fbe5", + "1b0dfe5bf791bf4d645e64", + "150cbeb75257f8eed7903", + "5ebda7b44a30093e22fee3", + "6af9f591969edf6d33a899", + "321ccac2ccfd73a0b28c6d", + "fa6bb9b4b92165346e0ff", + "603f9b3bc6733094104e23", + "2e30617b0abeb387001867", + "e419f0eced24d03400fbc", + "2057d9029cad07c3d344a3", + "1d4515e4768ff5c6b4178f", + "7b5d99de82bacb33af7ee8", + "43f53558dbb8a25ad757e", + "4265efdcec74f163498291", + "477273c36a749543489547", + "767f863c9bfc5fd6540f44", + "d8e9fae4ec5d3e7913712", + "2ea5fa6c2e19e6ee7add96", + "55fca6cb45a0501d1c50ba", + "4e94399e1765146189df5b", + "5accf03c1a20af1120832d", + "137f8e05276cc8f9180095", + "499667b1e22348ac584789", + "7b87e87e1438c6126ab1cc", + "46ea38e0c4bb849b39baee", + "d922a909e3b3afea5fe08", + "4700bc9de4804ec44122f", + "54018c8917549d050c00a8", + "5f8307f0589178f70f7238", + "45b5b538c44c73f3bf515f", + "7ad19421f012d132850842", + "7adc118469443d4f7084b2", + "2ae496e8d9399061460619", + "49e01d719bf13fd52369ee", + "e1e55a565534c74a109fc", + "72bd80f062eb130b42b044", + "1d616376b444140f9acd68", + "48082cdc2a40ccd11ae434", + "32a426cd7460f9e5c5e7", + "bb247081da09643c00d36", + "34f2e009d684c876c246fb", + "3e2cbdf24bd5900348312", + "507a6d1fd108a63234b38f", + "3253e31b47819fbcec75b4", + "3ae16fb3fb77d48c6adcc3", + "244d1131736a5aea351d17", + "682b3c7ed60ad7c985a3a", + "22d6cba0f681e23fc64382", + "14da7875e13efd461f7c10", + "1ef2f8aa8266e26254215a", + "22cd6c35ab2195c56794f9", + "1d1b1bb20ae40ee8d35505", + "66ba97928f262067fec230", + "53e99cd5ced120123b808f", + "7e698a24ee9aa726fc4b0b", + "1df3eb49ffac499fc5f3b6", + "465d9407cc9bc6456e974d", + "48938572f05f540b474485", + "ddf6be61ce9c04533277", + "15131878551adae4b04c53", + "14c7f40a28e01adc5ae1b4", + "5cf912fba9a563060d7b3f", + "1c85ed9416af845bb8e82", + "1851d531ca021ad6f2b572", + "4ad2dfbccfebf4c881dcf6", + "16d83b4ed79a537102c236", + "19e1cce82f85eff6f6b24", + "589758587c26455b22331e", + "59fdecdacfa91d60fd391e", + "1eac63084c7797618dd9f7", + "426ece55a7fd1d858414a0", + "2078bac214b712936de507", + "3e748cccf5c4b2e587b8b2", + "232c5e33740871b389c8ba", + "7b4210ea990dbb2b80bb4", + "53b453f5f30f900af808e3", + "49f7df71bb684bf5a54c61", + "1174d8cdaeecfc5b7908d0", + "6106124e06a73207e84629", + "34242d89a6cc1d4e30fa9e", + "74d978e8d6a9ce6def9aa3", + "308787b80145ee403c389d", + "36121cc69943c0f23f8a85", + "6d5d0573b2f9596b50b73b", + "5eb9037bc76a6930985737", + "2c9401cd53725f84e2c421", + "8c59c1948361c413eed8f", + "1439532a6d3fdff49361fa", + "42d71e3ed0639f1b07231a", + "29785bd232aa4bcde009aa", + "494c96ddeebc9c314fa5db", + "2e1d98165a5897b1482cbe", + "7a4b513ca25dc5d887768d", + "5197b486ae5dad9284702a", + "1d4d18f2bee14ee417596c", + "1b8c24041b5c09c2ff1c0f", + "19e87845fee8ee9d86794a", + "dcb3217133998c35879b7", + "61c60fa253a8977e213d6c", + "3df3e3ff8b5241f9f120b6", + "7e880bc1729d1783a14627", + "7ef05035c2a08e050870e7", + "3c234bbaf5da9465f9498e", + "39fc8d30c95dd0494e9be3", + "75b29426909e9c8294f365", + "68ab0ae55863c4f8044101", + "1a01c5dd382ca52c0f8a1a", + "7eaf3d6220ab7c049341fb", + "e966e5d5e80ac9dc377a2", + "38aece2fe0c1923c569603", + "296401a6101dec9b48a81a", + "a5385b7f7d2a505f37187", + "1c0a01fb60b92af636be29", + "546f06ab10360a76005c9e", + "463e980411d809a1713383", + "6247c20f5e97453bb71b09", + "7ed8ee73ca5507f25bd5aa", + "5f9fe5fab5062ae9d40550", + "d7315bcace04536b59c5c", + "700ac125ecd365c309339c", + "792ab4b2a318b2229df59", + "6e8a28f3d3f87aa2548dbc", + "53034f778656513538ce93", + "71310c65e10b4b2e1f3924", + "fca82540d3cb37cfe38de", + "324b0e59fd313b7b066991", + "ca5fc0de7c8f0742fa11a", + "436134e757c46fe077e8fd", + "3382f247e6cbcf48a8be0c", + "5714f7d7bb3f12d88adae1", + "75c3040748861ea4157368", + "1db2b63fb5b72bd2913b9b", + "5de44a501f899626f11ecb", + "4a728ba1f43b41e3c8ba7b", + "631d5fa433132c920e949d", + "49dd9e128368a6e8f31565", + "5f091c9040f8e8b4af8c6a", + "6dbec10ac45803905232cc", + "422c99318e0e012bdf3cdb", + "7499dfe49d22092ecbaacd", + "4e9b8b836aefbcc76074a3", + "23591be47ead61c7626094", + "47cb5e48534f0fa269ac37", + "45d0bbd0c4c565d517f4d9", + "58f251e3a335055f8d1702", + "e16e90086dfb42533696c", + "32bc07a00fc1c32e790cff", + "55d4eceed6862d8b7edf73", + "3bd14b5c954fd788df3e2f", + "32267a0d010a3ac60d956b", + "2dd9e647cd7caac396218d", + "786bd6b0d956c71e3d0c41", + "5a2e3e7ac883c32720fb5f", + "41824effd56ee95a25ffcf", + "df5585842155fda65c5ad", + "f0daaf67c2422477284d4", + "285121b3579e1afaecea17", + "2d0786ef10819221e8e925", + "638a87cbb628cc2744b5a", + "2e795b59317cae4c039946", + "6df756715e22975feac139", + "4299b7c55998b524a2963e", + "d73559f9e34900d6994e0", + "4356f96a535f02cd557790", + "671133a56bfab71842e1aa", + "73475afc8917dfb47ca158", + "8cecd81b395199379b860", + "6908cd3a0537e6d9de224b", + "6c4e919619ba3e8fcc083f", + "765220bfddbe009c12884", + "696a995b7f1bd2337f9c55", + "7a35b4347e2b2fcfef4e8a", + "7715808f58e52b93fbd9f4", + "35984ab233bfbbdc2149d0", + "49f6551bb5a630f7f3a91", + "260202888a368af1bf27f0", + "28c70cf1a34bf4b12fc1a1", + "74a3895c1173d1100e060", + "500de5789e46431a14b08d", + "e50ab5db695f894b26597", + "6e0d3cb0378f9f523dd7ca", + "3b890cc2ea1882c16138ef", + "623f56668cc8a093bdba7e", + "2311c97b29ff503887b251", + "5f019291ccdeabcd687ce5", + "6467af1a0f07013b2e9849", + "14a9e816ead24aab2e6645", + "6bbcfc26c4e8fa7b836095", + "775ff949792463791cf8ab", + "62658893411360a21b6bfa", + "2fc0729bbc7485664f21f9", + "784f7b46f80b03fd06242c", + "7215cad82f761314bbdd1e", + "475c6525a253fe4a455211", + "3301553132b8af815a8ed7", + "40066cef89d0c82982356c", + "36d97c131b997ecd7866ef", + "583e484be506b8efea96b4", + "4656a2b830782828314373", + "374bc74be1e4381a79910f", + "4f459e6fecc9cadb8e977", + "2a843c02b5e59799422e65", + "3910da787142c54f4f9b2f", + "ffbb4d4d7cd961d36be9b", + "38dd92596a9fd54920876d", + "6bd057cf4845772f81f71e", + "4fe62d365b58ffaa0d2201", + "1429ba4cc3fbeac84cae7b", + "403c1a7f2d528ab5d343b9", + "2175a06a641d5e8ad33646", + "25d324d633986f4baae0fd", + "63d746c096cfab5f984c70", + "5bd335a49bc5a06867e5e1", + "375f02bea7dda994d93044", + "4f754c5d3b280b20bc95d0", + "3a997ef0ad242391b526f9", + "2c30e99c7b2606982311b7", + "4d562b2b0bde307c0edc87", + "b4aa58f86a462da2ed07", + "ddd508394009eefde3ac7", + "e73b5b515611f25e496d1", + "e4ce3641fd893553aeebb", + "32765eba5563b5336b4375", + "594ab65a623ca11a1d847f", + "7a6cf71a247a9aa2ad1f3d", + "509c14f0517edd55968bc1", + "3cb90317e0fd78744bd72b", + "45f39b8c67c74dfb911f44", + "476085adcac943f7253ad3", + "658a9098281c199cd165fd", + "cd47f8baa501aac7b0989", + "3de183e6b991f7b8085160", + "a5582fe7b241700d09fbc", + "68719eec758c692aaaddb3", + "7d5f8fcc1cf99dc3131c84", + "5a2d6c9f89fb24cf28d1b3", + "7e1946c78347049b735318", + "2db5ff229cb2d0a85b8393", + "6f9024d8cdd8d69ef10bf7", + "38102211c805f10960d5ba", + "55e838d685f75c7c6b5f20", + "339fe9b069fdcbe6f3e985", + "1a939b8af79d6b9d1e57e0", + "2b1a4dba7447b02833bcc5", + "6a5c41dd17f1f090be79f9", + "6ad4c1af807487676eed8c", + "6f33938b3b060336c57082", + "1e7a055357b6580f4a7b9", + "1d51d9201dd8c5066bb7d1", + "daa197fa1e9b3068f7333", + "364b7fe165d59b5d916e2f", + "4026f1042b0f5b1e940a78", + "3501255a6a3473cf6ac042", + "73a88b6c78ebe25a0f02da", + "645d789e2ca881eb3474c9", + "6f59efef27dbd92df6f652", + "32dc0a137f654afa8bd8fc", + "4e162f9f85bd081abd7380", + "48ef84f7c351ecdc951b2d", + "69150cde40be119caa92bb", + "3b409dc537f82b36a0b80a", + "748df460f8594e0bf1ab20", + "178fa57d907fddb0fe3cca", + "6747e95b215a546a339b7", + "55247bc5a72b8d3e89234b", + "683a5c6214b92efde4aafb", + "f36396be6cc745bba9473", + "77a73ba77b4ed622a17e87", + "2c250894e17e7f4b0dd", + "24af65fef90e2f99e03cae", + "3292c0c9fda6887e4ad161", + "304cc216ed2272d07c7f80", + "5488a723f6ba5cf9800543", + "47d8e4eb9811f9d409ea40", + "7e2be12d72782db9e725dd", + "247f391e5a3b234cf19ccc", + "29f1e17550354ceae49f99", + "4edfb060e1dacbd449d726", + "4a29c3e62c947a4a1e99b9", + "4755035ba4d9924118903c", + "3d946cf498fbed2d965f70", + "260d3af59b4f3d5c208bbf", + "34b484cdb4cebe6aff839", + "7b5ec7e3346c3cb243b356", + "6b25a8073bc36b2af4c2b1", + "3665e544d5ec7ed8868a1b", + "1ccb03c008f2e822848880", + "18e83fe885c9bab518bb97", + "42e88e9f66659afa2a393", + "5533d7d78826353c79c73e", + "674fde01f6057423c31a9a", + "3a9c7a7d5782f84fd4620f", + "19b52abcac8b60d5349efc", + "23ac86fba80f09945d51d2", + "61249154ca21ee2b75deb1", + "473c4bff7362fbbd2049ff", + "923121ae3af782c934df4", + "66fecdf77d13ff6c0b25a4", + "170a54e825e33a2265d3cb", + "31be6678e513813e0e676c", + "7972b4774882051f2d85a4", + "75b09479e265b9f0ac9a5b", + "708324dd5e787ea3d43a21", + "4c67268f528ba7e8c34a0", + "51f9e6d75a3c5264312643", + "24183bf26908368eb41547", + "5e7785eebda5c8e2f0247b", + "5338be8d9f87d3f2e46b2e", + "14bde3f9984cc98dc83f60", + "62870c281778214067b40e", + "62e9a332653e1b103db5cf", + "69c96f5702ae4eecc6f341", + "3e6265ca213c1a0be64512", + "5ea38165e28694c8629ccb", + "2be59650bf9aa57c249937", + "40678fa2d309cb9417f68f", + "3459971422155f9703c78c", + "5552617d9eaca45155f490", + "18991d6f38c445ab4b38f1", + "1aee70e483c99574480349", + "277575523998439f834d3", + "692752e677cdaba7d636c2", + "298af75c2d584b01ccc6a6", + "4d7d33eaba361883277544", + "282f326b1fcbfb463ba836", + "6b0dc0d5521d21af0ccaf4", + "57f40a819546afc89fc2ce", + "6a24f8897d3040e8fb1da8", + "51e8f647af3880d2b77ccd", + "4b223517b6c7cd85cb43d1", + "745ca85c76435eb7ba81ad", + "743eb61998341a5e892884", + "5afcdfdab7a5b6864efc6d", + "39824b01dda7b8ada90cc2", + "2beed154412bd52cf1c83c", + "6b497ffe240d0867d5d7ef", + "eb947683c26db8dac2f36", + "15891c14bba25257cb14ef", + "4f540ba10fdacad19fee6f", + "5097857cdd82d2df144dda", + "6799fa1f9cffb381bd6c8c", + "5e45b3a532e82a603df12b", + "53528c9bfa6f5405d66497", + "2248d63b93978222916f1b", + "c98c97ab7b4b0cb756894", + "57d57f4721fb6be3b38e99", + "7b4ac8e7f9ffbf17f0627f", + "22af1fffca9aa4b2ba234a", + "2b913687a118d5d595277b", + "3cd72e80ffad615f09526a", + "e050d10f9ab1681fbdc06", + "36c8b1aaf274cca356ae2f", + "3d88de9f1c15bfd7b6363b", + "73e027017f2dbdbc204a16", + "6ee2946ba009641ad73037", + "522de20b2431d6ac8f42fb", + "427af6fbf5578c6104b255", + "172bc617da9e1aa348e114", + "1a5e08fda45015af7feba5", + "208fb7a4ffec7d8d1e5be6", + "3712172b56577089f4c773", + "621bfd4a39ee713781e554", + "2f0c8ecc959b7521936666", + "682583fe078ff76c962922", + "509b53b07e607cbcf6e79b", + "1b71574f7c567d707d0e82", + "572930c1df7ba238dfc9cd", + "2029341ddfdbd9f668612", + "1a54e98271fd5720e1bc63", + "62f83959d672cbfe7201a", + "2abf897aba93d347d6e2db", + "3ecd876c819b78567f7fa4", + "69714524521e343bc3692d", + "290cc13b5edc05d863546", + "26436c96779bbae9c15fae", + "32e5746a212d6238682c00", + "5e4b991cdcf27f65105596", + "4a05e03567ac78048832e8", + "658769c97f8b8945ac2878", + "4eea383bfa391bcb14540", + "4871087f3b2cd3c0f24c3e", + "5c20428f433fbf0c9ab374", + "15aba357d612d87099180d", + "73f933fe401d564be0efd3", + "6d925493d403647cc0a7ba", + "6a40f14b7a50eeca571bae", + "446d6309025414bad0aee1", + "6e388c53aaae7d287eebd5", + "3bb5af245e5d40c6fc15e3", + "66895605da5092de3d2b87", + "50774e378282fd09459eb4", + "5abf04c6f95d64b6c414", + "54dcbbc689dad12df77730", + "226c7c98f219b40ea94b66", + "6abf077f6636ceee313734", + "53cc3acdd810a96c3160cb", + "59b759ca3a67e4725b5f84", + "48e1272ba911cad7536a1", + "1d3c95c9d8462d4c467220", + "4167a3ca5253556f128ea6", + "bfe2f259223ccddac13b3", + "bf09d6ff46adc21d04951", + "4555d38c19f123cccb6fb4", + "4a5333a5e1c04b8bdfa257", + "627a4795d0c0df1d84d13a", + "122225a7053b175027361a", + "5027d58d8950e307548d14", + "76c881f1a372f21e829095", + "7f8ad9957e40808881a192", + "621edd8ea6ff7136526540", + "64adff5211c520e76cfa93", + "7b274f32f2cbfe03031cb0", + "3c71a5e6f6b431bc524a53", + "10cc655b268878a4e8e081", + "56853e4d2e614e1924d27a", + "1c72fdd679cfcd10e369be", + "1a364185d640ba1a6ed583", + "230c19482c2fdfccb6b94", + "1a9a55461554e908c4fbf0", + "48b5f18a43890f525b850c", + "779b65c66a52eeb45328d2", + "3a0a69f5624f959d85e411", + "498cac7e3100df5899cd16", + "6be91a7f057434bdea3953", + "1b0ff68c5f14ee84b37e7f", + "af86674d8a1c364331ef3", + "4fadec3b4cf5617426ac33", + "5cc79f5d12d2a991f4ebd0", + "5ca7f66678a73081bd34e5", + "5efd2121bfee3a30184816", + "6b79ef63bb66f1362d8de", + "3c4dc48e3cdfd4ce2eefe9", + "1c9f92bdf4717c6880a9ba", + "168c6919206ac6ace0f625", + "27e147bc2366e607ad99bd", + "44678fb0d784f11b21a657", + "47792007d733892284fb9b", + "636079478bd1eb493d0866", + "7450197e181adf8c4f92cf", + "65a7ac7cbfcc2f6c41c2ac", + "c92faa8d02b107a1b5d50", + "1ee8fffd33bf6223d36b95", + "203c3b480852a2154fd642", + "7ba683eab937665ca29978", + "1998245099906d42a62588", + "75d1f80628c3a1c1082c91", + "1c6bd00355516b7177a93d", + "795824804b82c5e751df2b", + "2746a28b14b19ab8d24145", + "75b3fbba0880cedfe12ea", + "dfc33dec9862e861d43cc", + "5d77b3e7e323ddd35a71a5", + "7438dcc1d87bfc73ab26", + "755d342969e9fcde9fd595", + "7bca9525e525d6ded2c76f", + "d08254f4d2d5ca1a5b877", + "4d1a97d405c026a8a5aed6", + "825e4a5dedb493626e7ba", + "26c3f6eae80009e6946697", + "59b1b4d92c6ee6432bf67c", + "705cc0331aa0195cd9f6ec", + "6d83e6632fcdd8cf940ffe", + "69699a76b55d4ca99064a0", + "76201a82e565cd9ac092ed", + "49b08f20244bc64879adcb", + "2b04a0e7492ffe108c1c00", + "4de1c0244f476f355a3a91", + "1bacdadb366134c3d1a5c0", + "755b7f3a3389c861fb2d23", + "153d48f10507702bdbbfbd", + "17ef22a6ba1fe32d3ef7c0", + "6f55491282e49ce5634ba6", + "66ac85711d7e32d731c773", + "7a45d57fdc1a44af5791fe", + "1b931cd6241fc4f484ed23", + "30ffdb4a4aa7f26e29fcc9", + "54b4dc744541c38f937102", + "4413cfa8b5666fc0af877a", + "5b18e3d2fe16a9d973b934", + "173b57e939be4a4efef880", + "102e8f3d54ced5e10227ed", + "79b27c762372e476f703f7", + "37f81f265c72ca7279eb3c", + "6b11c6506832a5a8571e85", + "5b68ba6c572a6576af79a8", + "26580ddf1efe9fe3eae4e0", + "3c015f30d95c1da9c47adc", + "54c37f5e810a7c49e7a02d", + "3b8be315926a14f8200fe4", + "5334ba131913654474693a", + "245f14c58fc2f1bd38bf6d", + "3ff0891da2c6d0cb8ab6f0", + "3e61864fd19f85bd211f70", + "493f40656c80193590d2f4", + "5dbb4f6414155050573b80", + "6afe8bc3bb8509aff3c666", + "586e1bd3806f5472b98045", + "6afc9a3033b5fed5a0c3ee", + "7969c90c819c5b0080834", + "5ee2324ad6594548cd275b", + "5c6cf60aae0cfc30048ec1", + "40e1957b3947c90dc23e89", + "5846b0049ea6f32f4b2762", + "1e5217185f433bf1233d59", + "af0b8a8f75ec961c833db", + "4f4128c0856b216db55c75", + "41d953d4dc4746ec83a1f0", + "3d55ef23d8c9f8419ff28f", + "1a5f34cedfae0cde5ea0a4", + "6517d2ae1b7ba4107ba2ed", + "4839ff83b5f2ddc41b61ee", + "30ebf17f92538a33a005c5", + "7530bbdc505d301ed9040", + "46ea2e85d6ca1966d1ada4", + "78022742d8c1b58e95d935", + "6a25d7d313e7a656aee548", + "a2c3a3cc1a5dfdc5a02b7", + "2e76f32ec68bf11c44acc8", + "54aeb8675aac1a423a7140", + "dd0623ecc7bb862ebbbac", + "61d42c0be51a3d664c8df2", + "254a37a2b407cabbf8069f", + "687346ea28caf1c87376ab", + "67b1ce8dfe00f53da9491b", + "488aa158d747df0f5cd422", + "21eb89d73161656b740b6c", + "686f17e02f2d49c0e2e48", + "dad2db631732b0506f6b1", + "72e9a5baa06d4af7c9f9da", + "1cab579a1f775fb778d900", + "3c3d137503578a98196d6d", + "2a8bb0c8c3747adf31dc91", + "1cf9608a937eea1a0bb3af", + "40a3f5ad2d4a9b33e2f67f", + "147d7e964c45ec443a24fc", + "7b9587337c3feffe6974d6", + "5839527a17db25de563064", + "1160b80ff627f607bda927", + "5aaca79690a162240db985", + "c75433d8b0423b552102a", + "f46157d09593fd6ceaef5", + "20db18e6c822f683f97989", + "3e1e43759c2fbd4596b36a", + "125d9103db1d2a83e13f71", + "28a2b96944f1b1210e6bbb", + "33fd72210da605d38ab799", + "4cada2a5056e025832015c", + "365c9be3e9c7dcc814388a", + "9f4b0dce97935ef1d9158", + "2b8d9b2da99a690e7c44a7", + "fc59307a819ae8b7a3f67", + "567dff5f6f64aa1697fa0f", + "23343ed75a8de5a22fac16", + "4c2a57eb3ff167fa077ee2", + "7a2990f262218cc62c32dd", + "210cf16be9c62f7408e63d", + "49c59a03a60b57e7bac289", + "499ab94c7bb40ba492d85c", + "67437e976a93329c5b9760", + "77c405c1030a468f5abe34", + "34363c8e2f82b5fdad8c66", + "39c91d6ca89a6fa52b3be6", + "7b2f70ff56626a3003c33d", + "416b4cd1af257e44ad03fe", + "375ec3fc3fce6eb8e8ee9d", + "4fe741cddc07d380fb6143", + "67adab05fa921650ed942f", + "601f96473a856041a89ff8", + "13fc0f6b201b7368c44178", + "6f79151ea6cbf1bbe85f5d", + "5dd15f8501fbd308a231a2", + "8ab595a01941ab4070b39", + "6ad236039c2c3e149bcca2", + "40c514f5e20e67263ea899", + "10b3ac9e35f753e3c9deb", + "2d816960b0911019df6133", + "14efaca65e59726b81dbf0", + "7d98b2bd2e9168b6d2e72f", + "49639d01a55025d5b2f6ef", + "2e1479f3781e1a48fc49de", + "7d60cbfdcc63ced7661d40", + "3ec0da959b014a91e3d171", + "6e1573decbd31bd14c0615", + "2ae83fe35c42b256590f54", + "22d68d4ed1af18d8658de4", + "3153805f294e973c493b1e", + "23270a061497f9098a49ee", + "3ed51ed7c85d68db84d78a", + "788f47c4aa1ecb9b01c1a7", + "9dfe0a1feefabb0c62643", + "7376e75fa605889898fa7a", + "578a6c67a3dea7609537e0", + "146dc1fd204e259d148dfd", + "59ff3fb267f4dcf86fd4df", + "5a081e53f2beac49d1a3e5", + "37bd7e26cf4711cd149911", + "47d814d93ff8dca3c1398b", + "132d2eb133a0383d464ad2", + "30f7be09c5f39b5532dcd3", + "83b4a6c139b7fda28fc0b", + "77e2377901111b6ba92316", + "7add5048bc0984c36294e1", + "2afa4dd2f2245b7525fdf6", + "50c4c9d0b48bd147d875cd", + "6387ce1a213d98335598c0", + "52253824741dd177a674a9", + "3195d14bda042e7057d34f", + "6b849a1f17d635cf0a773f", + "7c9cfb41c0f888d000fc52", + "7dea2305f898b6d88f6821", + "43d0ab106641bd01d72cd4", + "1d5fe04c71a377f6784338", + "207b51e97aba651825b40f", + "41327dfa41486f6b995572", + "245cbb0117ba8963db7929", + "4956d4cfa3dee8e23259eb", + "49af3dd263ef8ddc7b0303", + "76dda8edbfa5a4265a1a74", + "26b516b52794658e68ab5a", + "260f0ab9a00e1e941e404f", + "3395f092181af53bb73f3e", + "17a50483229662a578fdf3", + "30e3bf91dbc04d50a032bf", + "525362bcc006730db95180", + "6e988e80d2c29dc7542de4", + "47efed21b3657d0618e28f", + "fb85baef473def8948133", + "67afcc19d0bb557a608666", + "3e1ecaa8d0631877bfedb9", + "38a68ae5efe6ac22d3f278", + "4b2a621bcd3f244dbd1aa6", + "2432bbe72c83689ef74c85", + "1aba34eed15b418d4b7f0a", + "2d2efb8be305a05b685aa3", + "cdd3df5aba4c7ba52b4cd", + "7c38756fdad7c18ef7576", + "437e569a7451bd9bbbce87", + "614a9023303ed4dd2cdfb9", + "43c088f2eb74b96d25a4a8", + "308a1daa2779a84d4db8ac", + "59f29456bbb20b47aa046f", + "4b0f09e29272f9d49c6266", + "b03e402e64c3436818402", + "40f2e74e1048db76b72516", + "1a484afbb93898190d8d03", + "6edb305f1f8f30902439c9", + "7fd2ed81931942f0ef8d50", + "402466331777b126e4d8e2", + "52d5ea798306c9e21853b2", + "765c653014c5e4b3dc3865", + "785211217f5fa1bf82b193", + "3bcee7bc9a5ca7219edfaa", + "61b023abdf63ddd6300036", + "2f305b730466b54d50855e", + "60b46e71f1f2b8376d5d29", + "745cc1be634380e90bc82", + "208b7d3e85a97a99407a38", + "1000ca68b2a0f4790d5b97", + "2ef94456619d9728490c1d", + "18347f5ec924cf4631f292", + "26b5c49d8c4e12d4b3d157", + "15e2aab3b7b69272b3c155", + "76272e758d9f83ceea908b", + "fb87766da12e75782ca77", + "57caf75d12ec817c6cddfa", + "1a04ba76b7855a5e9c289a", + "7e5eb2a4ef3434465acdeb", + "35b964532350abcbf76d9f", + "3f14484539a427ea73a1b8", + "4d10e4408b3b6761aa225", + "235ae37d20b21074f27732", + "44dd12bd0d7f960d6bd7f6", + "196185d708583cfba757f7", + "5f8e36ec1202b0292d5945", + "47d7208165498ac04fc240", + "332ea59945a5d0e73f7dc5", + "653694fe66c257988cd02a", + "3069cb41e51edac9ec2b3f", + "17e032019f0dc1c4277c0b", + "52a44d4aac2b12a44786a4", + "33bbdb9fd9d9e6cda126be", + "520cfdeb5b65ce3df47f12", + "3746df2dcaeb2f941850af", + "34b380f57ddac800a53234", + "7116294960ec1370cfa192", + "6c02da94ff6269ebf8b68", + "528f06b90d6ea98654eb1b", + "643b1783eeff5d2d9d100e", + "14e34536d861554652fc3d", + "28da7bd48db9e867715c64", + "7b233911df67c0ffe75298", + "282425a374dcf57904fcaa", + "7f873bc8523c4931739324", + "5f1584cca489de9bdcd65b", + "6862becb8f668738ac092f", + "495ccc90a936edcdb3b175", + "71dbc0d71fbcfcf1245bc2", + "5298718820a8e285437a64", + "2a9957bb174e3a8d1169ef", + "58dbbd6f088b5ff881356c", + "67ed429f48df076df817f4", + "ba3b72d702ce311cc02a", + "6415a8a79aa0ebffb6a24d", + "5b6485b2f7f41f0abf3544", + "edea2902a199d26d75bdd", + "97bac956d2b65a51260e7", + "b2c65762784255bbebc75", + "41b1881d9704918a051695", + "3939cec4c6eb132c9146a8", + "4e4622894612a0772ab9f8", + "398cbdee468f0759c375a1", + "592a4efec7cf89e527fdb", + "79ea859ae0d9bf58c8e071", + "4786c255855f792a20f869", + "272821f07dab57e4aaf0a7", + "25e016000255df0b5c8153", + "17040e8c8be515e4ea36e", + "341181b7d4d6f4e2cf9643", + "73f8a019ddb59d3f06f049", + "cbf28251298433a3abc70", + "51edf68dda1a87c4b3af7e", + "2e78ee01fc4dbe304eaea1", + "36a98de095d312e040c903", + "1c94ea576c3cfe00e40a0c", + "2969569df7efe8c61bb461", + "2b036df33feda1ac5edb68", + "3d1dbd13d46aa7f5e4c42", + "32f17d420cb00b34cd9fc3", + "79a8e47a4d897cf6b712f", + "6be705331dd40db5a995b0", + "797e5770501b190fa5f6f1", + "21d9c50ac15f9a1fc38df4", + "639eb30656278296f2b3e0", + "4b90d5d4f791e4cafea283", + "7b4912ce2f8ea6ad90baf0", + "185c0df44a167fc9bfe948", + "4c622bd5bd26bcbd487c68", + "7c4aa256f5265e9d49e8ab", + "63f8378a4c563212109ee4", + "4ca98168d36f8ab3815a02", + "411a5d336f1cca7988f319", + "34c572dd024d37c54c5648", + "249469414e604f245a56ca", + "2e9650e328b679ea03af31", + "db07432bf40360e3df399", + "2e9fc43379988881a1b064", + "752129c2d07a536bf3bb8", + "c79d219ef793e02a9f989", + "210441f8cc9b531f88fd3a", + "6bb593df2f572a23254ed6", + "55152f253ffb05575c981d", + "40734a14dd653457e54b74", + "7fcb3af03a778d48d5ac9b", + "43e02a2659ddc4d3204fd7", + "2ab0a302ecc453de7fdbe4", + "2a68ad26b94fd25b4509aa", + "46afa6e418c9bd4065cd9d", + "517123f4920304dc75317a", + "33c3a8fe7d6e90cd610695", + "1a30afeb54dea502f0310a", + "2b5280596202f4b3ee0814", + "70b50a59ebc270bb237505", + "65f71d8c8e62cbeef07daf", + "197461e90c6b70a7dda46d", + "4053f687fd270a04d092a9", + "43d235cd54423fd6135def", + "ac0f86afb7bbca8d57c4f", + "1dd4abfd6c4ed8a3ad6bbb", + "25d3735a734b777dd960b8", + "56a6cdbd81ef505320e706", + "3c1c9492a56c8c78536095", + "31ee9d29cb2f2a7eeddbc0", + "666ea50157a2d8307a0ef8", + "1472017c713a1063411e0", + "53e73a626a5de69e43d0e0", + "dcc0bec90c531be4924ef", + "6bd3a60ce037d04a7d822c", + "3ad7e93e4ab55d402a33ea", + "10db0037fd5f7d8c49aee6", + "4d29703647563e84d6ac7f", + "2555442bf058722bf0120c", + "2e274c1905f505ef9d43c1", + "46b0509f9638e9030f5895", + "4082d11934cd3944191e6d", + "3cab0ae1036c6d43311ae4", + "218c9ea39a51618b1ce10e", + "9e1bd1e36f73d0f69f697", + "5a20607ce9679fb1f266e5", + "4ae24f235a28b7f71492ce", + "7510db776aba775075e549", + "5695db84b4c92a3d6677b2", + "74e01ea265377cb713e57a", + "768cbd11024387469f6ee1", + "61b85bccf0f4316c2cec04", + "aeeaf98aedc83e6ae6cc5", + "4e175c68ed04c585f606f8", + "1ee9410958604d03f20f1f", + "127b65c61b8c8f1b9456ee", + "3d57e0a1ef4abcae8719be", + "688ea19369341f6943063f", + "1f91eb155829f1481d6da7", + "4f34769ad379d64a27233e", + "59daf69acb0d30ef2fc5db", + "1efc90353d647b1a3dfd54", + "39965be2b1bbb3ed832fdd", + "7fd47e391981aa515116c7", + "5ca9b2680bb84ff6e98b33", + "36b7f85db80800549459bd", + "16d114b00964bdc8e2e82a", + "7c1256dceb40e2f63ca4f9", + "5b4dd88e0cfc108bdc7320", + "239e94f2e5843a6e20f1bb", + "3552a76787de4570d42693", + "6f2f55effdb76df46b548a", + "6152765b747658a14d5829", + "1778273a04ac508e342b", + "75471e22b2d84fd2fe01b9", + "5d6bf6a59488555bf1342a", + "160134aa459258ff8f6285", + "17e8af02e79e7f8d2cdf99", + "4f5e7f770a4d50c69c4028", + "51fc2c3f86b8fc46a7a221", + "70d95d23dca53184d30b4b", + "4a9b685698a7674338b188", + "4d7940ea6bfaa7b282a985", + "39baaf1f520d96bfc8c1df", + "409fc384bef4b3d255371f", + "3bac7e0675e0a9967ff7da", + "5c1544633a0bf7939343d0", + "39d71478d3005e797c6913", + "153884834dca9aae7d5d2d", + "630270f2ed4331deaf63f0", + "46323a1998a54f7e0819f6", + "61c87048ea8325590bc5b1", + "1960b3a13c6cb6acb7f489", + "3956e2767e97b7703253b0", + "1b5226354071022a104a86", + "3a7ecceb35e2e9a438dbd5", + "10c81c57aed768b3285598", + "bd499ce82d93c07477fc", + "67e11e83cb547515b53701", + "171757e72adb6abd8f440b", + "590056c647987959065bd", + "4e27f64f8732105513ad9b", + "de9896eb70f1668b87fc", + "457dc9644e5b25ae6c4291", + "5a6df4a369ed81627d4fa3", + "568fd03e0a80223cd1669a", + "1e92415029559dc3ed8283", + "1cb2dabf0298f57d15e65c", + "426541c137d269fd2e2296", + "19a439abdf3f4f5eb63683", + "482af287c71050fd03632a", + "47a080b7584194b936f712", + "20d4366552d0d83219fa0d", + "4494bc9e65c8cf2a6ea51d", + "2148939cfe2757b6666fc2", + "476ef278c257202dd01711", + "3eaa7351a72b065707e47a", + "2703e4a7969073dd381cbd", + "1badf1b7dc0b73e0bf8b67", + "47d847bd96fbfc9c221fd4", + "13637e15b786797995ba49", + "5e842bbb537167f75451a7", + "3b228f46cdc0e8a979b45e", + "2fdd94b55dd5fb9a3915f5", + "1cca04897dbffe7f26f2ec", + "67a8cdbece1aca4e55ba72", + "47ba42dd06a62256ee8c8b", + "3288681f4d08858009187c", + "69412d8563ffa7e83b0ef0", + "240e2e38e41f3b6530a267", + "12e92ef014e8d7fbb8d23e", + "45440750f90776251263b4", + "3a8965cf80aa6c4410dfab", + "559bf101b9cff724b929cd", + "280f08134d28252bd0b713" +}; + +static const char *RootsInv[] = { + "1", + "280f08134d28252bd0b713", + "559bf101b9cff724b929cd", + "3a8965cf80aa6c4410dfab", + "45440750f90776251263b4", + "12e92ef014e8d7fbb8d23e", + "240e2e38e41f3b6530a267", + "69412d8563ffa7e83b0ef0", + "3288681f4d08858009187c", + "47ba42dd06a62256ee8c8b", + "67a8cdbece1aca4e55ba72", + "1cca04897dbffe7f26f2ec", + "2fdd94b55dd5fb9a3915f5", + "3b228f46cdc0e8a979b45e", + "5e842bbb537167f75451a7", + "13637e15b786797995ba49", + "47d847bd96fbfc9c221fd4", + "1badf1b7dc0b73e0bf8b67", + "2703e4a7969073dd381cbd", + "3eaa7351a72b065707e47a", + "476ef278c257202dd01711", + "2148939cfe2757b6666fc2", + "4494bc9e65c8cf2a6ea51d", + "20d4366552d0d83219fa0d", + "47a080b7584194b936f712", + "482af287c71050fd03632a", + "19a439abdf3f4f5eb63683", + "426541c137d269fd2e2296", + "1cb2dabf0298f57d15e65c", + "1e92415029559dc3ed8283", + "568fd03e0a80223cd1669a", + "5a6df4a369ed81627d4fa3", + "457dc9644e5b25ae6c4291", + "de9896eb70f1668b87fc", + "4e27f64f8732105513ad9b", + "590056c647987959065bd", + "171757e72adb6abd8f440b", + "67e11e83cb547515b53701", + "bd499ce82d93c07477fc", + "10c81c57aed768b3285598", + "3a7ecceb35e2e9a438dbd5", + "1b5226354071022a104a86", + "3956e2767e97b7703253b0", + "1960b3a13c6cb6acb7f489", + "61c87048ea8325590bc5b1", + "46323a1998a54f7e0819f6", + "630270f2ed4331deaf63f0", + "153884834dca9aae7d5d2d", + "39d71478d3005e797c6913", + "5c1544633a0bf7939343d0", + "3bac7e0675e0a9967ff7da", + "409fc384bef4b3d255371f", + "39baaf1f520d96bfc8c1df", + "4d7940ea6bfaa7b282a985", + "4a9b685698a7674338b188", + "70d95d23dca53184d30b4b", + "51fc2c3f86b8fc46a7a221", + "4f5e7f770a4d50c69c4028", + "17e8af02e79e7f8d2cdf99", + "160134aa459258ff8f6285", + "5d6bf6a59488555bf1342a", + "75471e22b2d84fd2fe01b9", + "1778273a04ac508e342b", + "6152765b747658a14d5829", + "6f2f55effdb76df46b548a", + "3552a76787de4570d42693", + "239e94f2e5843a6e20f1bb", + "5b4dd88e0cfc108bdc7320", + "7c1256dceb40e2f63ca4f9", + "16d114b00964bdc8e2e82a", + "36b7f85db80800549459bd", + "5ca9b2680bb84ff6e98b33", + "7fd47e391981aa515116c7", + "39965be2b1bbb3ed832fdd", + "1efc90353d647b1a3dfd54", + "59daf69acb0d30ef2fc5db", + "4f34769ad379d64a27233e", + "1f91eb155829f1481d6da7", + "688ea19369341f6943063f", + "3d57e0a1ef4abcae8719be", + "127b65c61b8c8f1b9456ee", + "1ee9410958604d03f20f1f", + "4e175c68ed04c585f606f8", + "aeeaf98aedc83e6ae6cc5", + "61b85bccf0f4316c2cec04", + "768cbd11024387469f6ee1", + "74e01ea265377cb713e57a", + "5695db84b4c92a3d6677b2", + "7510db776aba775075e549", + "4ae24f235a28b7f71492ce", + "5a20607ce9679fb1f266e5", + "9e1bd1e36f73d0f69f697", + "218c9ea39a51618b1ce10e", + "3cab0ae1036c6d43311ae4", + "4082d11934cd3944191e6d", + "46b0509f9638e9030f5895", + "2e274c1905f505ef9d43c1", + "2555442bf058722bf0120c", + "4d29703647563e84d6ac7f", + "10db0037fd5f7d8c49aee6", + "3ad7e93e4ab55d402a33ea", + "6bd3a60ce037d04a7d822c", + "dcc0bec90c531be4924ef", + "53e73a626a5de69e43d0e0", + "1472017c713a1063411e0", + "666ea50157a2d8307a0ef8", + "31ee9d29cb2f2a7eeddbc0", + "3c1c9492a56c8c78536095", + "56a6cdbd81ef505320e706", + "25d3735a734b777dd960b8", + "1dd4abfd6c4ed8a3ad6bbb", + "ac0f86afb7bbca8d57c4f", + "43d235cd54423fd6135def", + "4053f687fd270a04d092a9", + "197461e90c6b70a7dda46d", + "65f71d8c8e62cbeef07daf", + "70b50a59ebc270bb237505", + "2b5280596202f4b3ee0814", + "1a30afeb54dea502f0310a", + "33c3a8fe7d6e90cd610695", + "517123f4920304dc75317a", + "46afa6e418c9bd4065cd9d", + "2a68ad26b94fd25b4509aa", + "2ab0a302ecc453de7fdbe4", + "43e02a2659ddc4d3204fd7", + "7fcb3af03a778d48d5ac9b", + "40734a14dd653457e54b74", + "55152f253ffb05575c981d", + "6bb593df2f572a23254ed6", + "210441f8cc9b531f88fd3a", + "c79d219ef793e02a9f989", + "752129c2d07a536bf3bb8", + "2e9fc43379988881a1b064", + "db07432bf40360e3df399", + "2e9650e328b679ea03af31", + "249469414e604f245a56ca", + "34c572dd024d37c54c5648", + "411a5d336f1cca7988f319", + "4ca98168d36f8ab3815a02", + "63f8378a4c563212109ee4", + "7c4aa256f5265e9d49e8ab", + "4c622bd5bd26bcbd487c68", + "185c0df44a167fc9bfe948", + "7b4912ce2f8ea6ad90baf0", + "4b90d5d4f791e4cafea283", + "639eb30656278296f2b3e0", + "21d9c50ac15f9a1fc38df4", + "797e5770501b190fa5f6f1", + "6be705331dd40db5a995b0", + "79a8e47a4d897cf6b712f", + "32f17d420cb00b34cd9fc3", + "3d1dbd13d46aa7f5e4c42", + "2b036df33feda1ac5edb68", + "2969569df7efe8c61bb461", + "1c94ea576c3cfe00e40a0c", + "36a98de095d312e040c903", + "2e78ee01fc4dbe304eaea1", + "51edf68dda1a87c4b3af7e", + "cbf28251298433a3abc70", + "73f8a019ddb59d3f06f049", + "341181b7d4d6f4e2cf9643", + "17040e8c8be515e4ea36e", + "25e016000255df0b5c8153", + "272821f07dab57e4aaf0a7", + "4786c255855f792a20f869", + "79ea859ae0d9bf58c8e071", + "592a4efec7cf89e527fdb", + "398cbdee468f0759c375a1", + "4e4622894612a0772ab9f8", + "3939cec4c6eb132c9146a8", + "41b1881d9704918a051695", + "b2c65762784255bbebc75", + "97bac956d2b65a51260e7", + "edea2902a199d26d75bdd", + "5b6485b2f7f41f0abf3544", + "6415a8a79aa0ebffb6a24d", + "ba3b72d702ce311cc02a", + "67ed429f48df076df817f4", + "58dbbd6f088b5ff881356c", + "2a9957bb174e3a8d1169ef", + "5298718820a8e285437a64", + "71dbc0d71fbcfcf1245bc2", + "495ccc90a936edcdb3b175", + "6862becb8f668738ac092f", + "5f1584cca489de9bdcd65b", + "7f873bc8523c4931739324", + "282425a374dcf57904fcaa", + "7b233911df67c0ffe75298", + "28da7bd48db9e867715c64", + "14e34536d861554652fc3d", + "643b1783eeff5d2d9d100e", + "528f06b90d6ea98654eb1b", + "6c02da94ff6269ebf8b68", + "7116294960ec1370cfa192", + "34b380f57ddac800a53234", + "3746df2dcaeb2f941850af", + "520cfdeb5b65ce3df47f12", + "33bbdb9fd9d9e6cda126be", + "52a44d4aac2b12a44786a4", + "17e032019f0dc1c4277c0b", + "3069cb41e51edac9ec2b3f", + "653694fe66c257988cd02a", + "332ea59945a5d0e73f7dc5", + "47d7208165498ac04fc240", + "5f8e36ec1202b0292d5945", + "196185d708583cfba757f7", + "44dd12bd0d7f960d6bd7f6", + "235ae37d20b21074f27732", + "4d10e4408b3b6761aa225", + "3f14484539a427ea73a1b8", + "35b964532350abcbf76d9f", + "7e5eb2a4ef3434465acdeb", + "1a04ba76b7855a5e9c289a", + "57caf75d12ec817c6cddfa", + "fb87766da12e75782ca77", + "76272e758d9f83ceea908b", + "15e2aab3b7b69272b3c155", + "26b5c49d8c4e12d4b3d157", + "18347f5ec924cf4631f292", + "2ef94456619d9728490c1d", + "1000ca68b2a0f4790d5b97", + "208b7d3e85a97a99407a38", + "745cc1be634380e90bc82", + "60b46e71f1f2b8376d5d29", + "2f305b730466b54d50855e", + "61b023abdf63ddd6300036", + "3bcee7bc9a5ca7219edfaa", + "785211217f5fa1bf82b193", + "765c653014c5e4b3dc3865", + "52d5ea798306c9e21853b2", + "402466331777b126e4d8e2", + "7fd2ed81931942f0ef8d50", + "6edb305f1f8f30902439c9", + "1a484afbb93898190d8d03", + "40f2e74e1048db76b72516", + "b03e402e64c3436818402", + "4b0f09e29272f9d49c6266", + "59f29456bbb20b47aa046f", + "308a1daa2779a84d4db8ac", + "43c088f2eb74b96d25a4a8", + "614a9023303ed4dd2cdfb9", + "437e569a7451bd9bbbce87", + "7c38756fdad7c18ef7576", + "cdd3df5aba4c7ba52b4cd", + "2d2efb8be305a05b685aa3", + "1aba34eed15b418d4b7f0a", + "2432bbe72c83689ef74c85", + "4b2a621bcd3f244dbd1aa6", + "38a68ae5efe6ac22d3f278", + "3e1ecaa8d0631877bfedb9", + "67afcc19d0bb557a608666", + "fb85baef473def8948133", + "47efed21b3657d0618e28f", + "6e988e80d2c29dc7542de4", + "525362bcc006730db95180", + "30e3bf91dbc04d50a032bf", + "17a50483229662a578fdf3", + "3395f092181af53bb73f3e", + "260f0ab9a00e1e941e404f", + "26b516b52794658e68ab5a", + "76dda8edbfa5a4265a1a74", + "49af3dd263ef8ddc7b0303", + "4956d4cfa3dee8e23259eb", + "245cbb0117ba8963db7929", + "41327dfa41486f6b995572", + "207b51e97aba651825b40f", + "1d5fe04c71a377f6784338", + "43d0ab106641bd01d72cd4", + "7dea2305f898b6d88f6821", + "7c9cfb41c0f888d000fc52", + "6b849a1f17d635cf0a773f", + "3195d14bda042e7057d34f", + "52253824741dd177a674a9", + "6387ce1a213d98335598c0", + "50c4c9d0b48bd147d875cd", + "2afa4dd2f2245b7525fdf6", + "7add5048bc0984c36294e1", + "77e2377901111b6ba92316", + "83b4a6c139b7fda28fc0b", + "30f7be09c5f39b5532dcd3", + "132d2eb133a0383d464ad2", + "47d814d93ff8dca3c1398b", + "37bd7e26cf4711cd149911", + "5a081e53f2beac49d1a3e5", + "59ff3fb267f4dcf86fd4df", + "146dc1fd204e259d148dfd", + "578a6c67a3dea7609537e0", + "7376e75fa605889898fa7a", + "9dfe0a1feefabb0c62643", + "788f47c4aa1ecb9b01c1a7", + "3ed51ed7c85d68db84d78a", + "23270a061497f9098a49ee", + "3153805f294e973c493b1e", + "22d68d4ed1af18d8658de4", + "2ae83fe35c42b256590f54", + "6e1573decbd31bd14c0615", + "3ec0da959b014a91e3d171", + "7d60cbfdcc63ced7661d40", + "2e1479f3781e1a48fc49de", + "49639d01a55025d5b2f6ef", + "7d98b2bd2e9168b6d2e72f", + "14efaca65e59726b81dbf0", + "2d816960b0911019df6133", + "10b3ac9e35f753e3c9deb", + "40c514f5e20e67263ea899", + "6ad236039c2c3e149bcca2", + "8ab595a01941ab4070b39", + "5dd15f8501fbd308a231a2", + "6f79151ea6cbf1bbe85f5d", + "13fc0f6b201b7368c44178", + "601f96473a856041a89ff8", + "67adab05fa921650ed942f", + "4fe741cddc07d380fb6143", + "375ec3fc3fce6eb8e8ee9d", + "416b4cd1af257e44ad03fe", + "7b2f70ff56626a3003c33d", + "39c91d6ca89a6fa52b3be6", + "34363c8e2f82b5fdad8c66", + "77c405c1030a468f5abe34", + "67437e976a93329c5b9760", + "499ab94c7bb40ba492d85c", + "49c59a03a60b57e7bac289", + "210cf16be9c62f7408e63d", + "7a2990f262218cc62c32dd", + "4c2a57eb3ff167fa077ee2", + "23343ed75a8de5a22fac16", + "567dff5f6f64aa1697fa0f", + "fc59307a819ae8b7a3f67", + "2b8d9b2da99a690e7c44a7", + "9f4b0dce97935ef1d9158", + "365c9be3e9c7dcc814388a", + "4cada2a5056e025832015c", + "33fd72210da605d38ab799", + "28a2b96944f1b1210e6bbb", + "125d9103db1d2a83e13f71", + "3e1e43759c2fbd4596b36a", + "20db18e6c822f683f97989", + "f46157d09593fd6ceaef5", + "c75433d8b0423b552102a", + "5aaca79690a162240db985", + "1160b80ff627f607bda927", + "5839527a17db25de563064", + "7b9587337c3feffe6974d6", + "147d7e964c45ec443a24fc", + "40a3f5ad2d4a9b33e2f67f", + "1cf9608a937eea1a0bb3af", + "2a8bb0c8c3747adf31dc91", + "3c3d137503578a98196d6d", + "1cab579a1f775fb778d900", + "72e9a5baa06d4af7c9f9da", + "dad2db631732b0506f6b1", + "686f17e02f2d49c0e2e48", + "21eb89d73161656b740b6c", + "488aa158d747df0f5cd422", + "67b1ce8dfe00f53da9491b", + "687346ea28caf1c87376ab", + "254a37a2b407cabbf8069f", + "61d42c0be51a3d664c8df2", + "dd0623ecc7bb862ebbbac", + "54aeb8675aac1a423a7140", + "2e76f32ec68bf11c44acc8", + "a2c3a3cc1a5dfdc5a02b7", + "6a25d7d313e7a656aee548", + "78022742d8c1b58e95d935", + "46ea2e85d6ca1966d1ada4", + "7530bbdc505d301ed9040", + "30ebf17f92538a33a005c5", + "4839ff83b5f2ddc41b61ee", + "6517d2ae1b7ba4107ba2ed", + "1a5f34cedfae0cde5ea0a4", + "3d55ef23d8c9f8419ff28f", + "41d953d4dc4746ec83a1f0", + "4f4128c0856b216db55c75", + "af0b8a8f75ec961c833db", + "1e5217185f433bf1233d59", + "5846b0049ea6f32f4b2762", + "40e1957b3947c90dc23e89", + "5c6cf60aae0cfc30048ec1", + "5ee2324ad6594548cd275b", + "7969c90c819c5b0080834", + "6afc9a3033b5fed5a0c3ee", + "586e1bd3806f5472b98045", + "6afe8bc3bb8509aff3c666", + "5dbb4f6414155050573b80", + "493f40656c80193590d2f4", + "3e61864fd19f85bd211f70", + "3ff0891da2c6d0cb8ab6f0", + "245f14c58fc2f1bd38bf6d", + "5334ba131913654474693a", + "3b8be315926a14f8200fe4", + "54c37f5e810a7c49e7a02d", + "3c015f30d95c1da9c47adc", + "26580ddf1efe9fe3eae4e0", + "5b68ba6c572a6576af79a8", + "6b11c6506832a5a8571e85", + "37f81f265c72ca7279eb3c", + "79b27c762372e476f703f7", + "102e8f3d54ced5e10227ed", + "173b57e939be4a4efef880", + "5b18e3d2fe16a9d973b934", + "4413cfa8b5666fc0af877a", + "54b4dc744541c38f937102", + "30ffdb4a4aa7f26e29fcc9", + "1b931cd6241fc4f484ed23", + "7a45d57fdc1a44af5791fe", + "66ac85711d7e32d731c773", + "6f55491282e49ce5634ba6", + "17ef22a6ba1fe32d3ef7c0", + "153d48f10507702bdbbfbd", + "755b7f3a3389c861fb2d23", + "1bacdadb366134c3d1a5c0", + "4de1c0244f476f355a3a91", + "2b04a0e7492ffe108c1c00", + "49b08f20244bc64879adcb", + "76201a82e565cd9ac092ed", + "69699a76b55d4ca99064a0", + "6d83e6632fcdd8cf940ffe", + "705cc0331aa0195cd9f6ec", + "59b1b4d92c6ee6432bf67c", + "26c3f6eae80009e6946697", + "825e4a5dedb493626e7ba", + "4d1a97d405c026a8a5aed6", + "d08254f4d2d5ca1a5b877", + "7bca9525e525d6ded2c76f", + "755d342969e9fcde9fd595", + "7438dcc1d87bfc73ab26", + "5d77b3e7e323ddd35a71a5", + "dfc33dec9862e861d43cc", + "75b3fbba0880cedfe12ea", + "2746a28b14b19ab8d24145", + "795824804b82c5e751df2b", + "1c6bd00355516b7177a93d", + "75d1f80628c3a1c1082c91", + "1998245099906d42a62588", + "7ba683eab937665ca29978", + "203c3b480852a2154fd642", + "1ee8fffd33bf6223d36b95", + "c92faa8d02b107a1b5d50", + "65a7ac7cbfcc2f6c41c2ac", + "7450197e181adf8c4f92cf", + "636079478bd1eb493d0866", + "47792007d733892284fb9b", + "44678fb0d784f11b21a657", + "27e147bc2366e607ad99bd", + "168c6919206ac6ace0f625", + "1c9f92bdf4717c6880a9ba", + "3c4dc48e3cdfd4ce2eefe9", + "6b79ef63bb66f1362d8de", + "5efd2121bfee3a30184816", + "5ca7f66678a73081bd34e5", + "5cc79f5d12d2a991f4ebd0", + "4fadec3b4cf5617426ac33", + "af86674d8a1c364331ef3", + "1b0ff68c5f14ee84b37e7f", + "6be91a7f057434bdea3953", + "498cac7e3100df5899cd16", + "3a0a69f5624f959d85e411", + "779b65c66a52eeb45328d2", + "48b5f18a43890f525b850c", + "1a9a55461554e908c4fbf0", + "230c19482c2fdfccb6b94", + "1a364185d640ba1a6ed583", + "1c72fdd679cfcd10e369be", + "56853e4d2e614e1924d27a", + "10cc655b268878a4e8e081", + "3c71a5e6f6b431bc524a53", + "7b274f32f2cbfe03031cb0", + "64adff5211c520e76cfa93", + "621edd8ea6ff7136526540", + "7f8ad9957e40808881a192", + "76c881f1a372f21e829095", + "5027d58d8950e307548d14", + "122225a7053b175027361a", + "627a4795d0c0df1d84d13a", + "4a5333a5e1c04b8bdfa257", + "4555d38c19f123cccb6fb4", + "bf09d6ff46adc21d04951", + "bfe2f259223ccddac13b3", + "4167a3ca5253556f128ea6", + "1d3c95c9d8462d4c467220", + "48e1272ba911cad7536a1", + "59b759ca3a67e4725b5f84", + "53cc3acdd810a96c3160cb", + "6abf077f6636ceee313734", + "226c7c98f219b40ea94b66", + "54dcbbc689dad12df77730", + "5abf04c6f95d64b6c414", + "50774e378282fd09459eb4", + "66895605da5092de3d2b87", + "3bb5af245e5d40c6fc15e3", + "6e388c53aaae7d287eebd5", + "446d6309025414bad0aee1", + "6a40f14b7a50eeca571bae", + "6d925493d403647cc0a7ba", + "73f933fe401d564be0efd3", + "15aba357d612d87099180d", + "5c20428f433fbf0c9ab374", + "4871087f3b2cd3c0f24c3e", + "4eea383bfa391bcb14540", + "658769c97f8b8945ac2878", + "4a05e03567ac78048832e8", + "5e4b991cdcf27f65105596", + "32e5746a212d6238682c00", + "26436c96779bbae9c15fae", + "290cc13b5edc05d863546", + "69714524521e343bc3692d", + "3ecd876c819b78567f7fa4", + "2abf897aba93d347d6e2db", + "62f83959d672cbfe7201a", + "1a54e98271fd5720e1bc63", + "2029341ddfdbd9f668612", + "572930c1df7ba238dfc9cd", + "1b71574f7c567d707d0e82", + "509b53b07e607cbcf6e79b", + "682583fe078ff76c962922", + "2f0c8ecc959b7521936666", + "621bfd4a39ee713781e554", + "3712172b56577089f4c773", + "208fb7a4ffec7d8d1e5be6", + "1a5e08fda45015af7feba5", + "172bc617da9e1aa348e114", + "427af6fbf5578c6104b255", + "522de20b2431d6ac8f42fb", + "6ee2946ba009641ad73037", + "73e027017f2dbdbc204a16", + "3d88de9f1c15bfd7b6363b", + "36c8b1aaf274cca356ae2f", + "e050d10f9ab1681fbdc06", + "3cd72e80ffad615f09526a", + "2b913687a118d5d595277b", + "22af1fffca9aa4b2ba234a", + "7b4ac8e7f9ffbf17f0627f", + "57d57f4721fb6be3b38e99", + "c98c97ab7b4b0cb756894", + "2248d63b93978222916f1b", + "53528c9bfa6f5405d66497", + "5e45b3a532e82a603df12b", + "6799fa1f9cffb381bd6c8c", + "5097857cdd82d2df144dda", + "4f540ba10fdacad19fee6f", + "15891c14bba25257cb14ef", + "eb947683c26db8dac2f36", + "6b497ffe240d0867d5d7ef", + "2beed154412bd52cf1c83c", + "39824b01dda7b8ada90cc2", + "5afcdfdab7a5b6864efc6d", + "743eb61998341a5e892884", + "745ca85c76435eb7ba81ad", + "4b223517b6c7cd85cb43d1", + "51e8f647af3880d2b77ccd", + "6a24f8897d3040e8fb1da8", + "57f40a819546afc89fc2ce", + "6b0dc0d5521d21af0ccaf4", + "282f326b1fcbfb463ba836", + "4d7d33eaba361883277544", + "298af75c2d584b01ccc6a6", + "692752e677cdaba7d636c2", + "277575523998439f834d3", + "1aee70e483c99574480349", + "18991d6f38c445ab4b38f1", + "5552617d9eaca45155f490", + "3459971422155f9703c78c", + "40678fa2d309cb9417f68f", + "2be59650bf9aa57c249937", + "5ea38165e28694c8629ccb", + "3e6265ca213c1a0be64512", + "69c96f5702ae4eecc6f341", + "62e9a332653e1b103db5cf", + "62870c281778214067b40e", + "14bde3f9984cc98dc83f60", + "5338be8d9f87d3f2e46b2e", + "5e7785eebda5c8e2f0247b", + "24183bf26908368eb41547", + "51f9e6d75a3c5264312643", + "4c67268f528ba7e8c34a0", + "708324dd5e787ea3d43a21", + "75b09479e265b9f0ac9a5b", + "7972b4774882051f2d85a4", + "31be6678e513813e0e676c", + "170a54e825e33a2265d3cb", + "66fecdf77d13ff6c0b25a4", + "923121ae3af782c934df4", + "473c4bff7362fbbd2049ff", + "61249154ca21ee2b75deb1", + "23ac86fba80f09945d51d2", + "19b52abcac8b60d5349efc", + "3a9c7a7d5782f84fd4620f", + "674fde01f6057423c31a9a", + "5533d7d78826353c79c73e", + "42e88e9f66659afa2a393", + "18e83fe885c9bab518bb97", + "1ccb03c008f2e822848880", + "3665e544d5ec7ed8868a1b", + "6b25a8073bc36b2af4c2b1", + "7b5ec7e3346c3cb243b356", + "34b484cdb4cebe6aff839", + "260d3af59b4f3d5c208bbf", + "3d946cf498fbed2d965f70", + "4755035ba4d9924118903c", + "4a29c3e62c947a4a1e99b9", + "4edfb060e1dacbd449d726", + "29f1e17550354ceae49f99", + "247f391e5a3b234cf19ccc", + "7e2be12d72782db9e725dd", + "47d8e4eb9811f9d409ea40", + "5488a723f6ba5cf9800543", + "304cc216ed2272d07c7f80", + "3292c0c9fda6887e4ad161", + "24af65fef90e2f99e03cae", + "2c250894e17e7f4b0dd", + "77a73ba77b4ed622a17e87", + "f36396be6cc745bba9473", + "683a5c6214b92efde4aafb", + "55247bc5a72b8d3e89234b", + "6747e95b215a546a339b7", + "178fa57d907fddb0fe3cca", + "748df460f8594e0bf1ab20", + "3b409dc537f82b36a0b80a", + "69150cde40be119caa92bb", + "48ef84f7c351ecdc951b2d", + "4e162f9f85bd081abd7380", + "32dc0a137f654afa8bd8fc", + "6f59efef27dbd92df6f652", + "645d789e2ca881eb3474c9", + "73a88b6c78ebe25a0f02da", + "3501255a6a3473cf6ac042", + "4026f1042b0f5b1e940a78", + "364b7fe165d59b5d916e2f", + "daa197fa1e9b3068f7333", + "1d51d9201dd8c5066bb7d1", + "1e7a055357b6580f4a7b9", + "6f33938b3b060336c57082", + "6ad4c1af807487676eed8c", + "6a5c41dd17f1f090be79f9", + "2b1a4dba7447b02833bcc5", + "1a939b8af79d6b9d1e57e0", + "339fe9b069fdcbe6f3e985", + "55e838d685f75c7c6b5f20", + "38102211c805f10960d5ba", + "6f9024d8cdd8d69ef10bf7", + "2db5ff229cb2d0a85b8393", + "7e1946c78347049b735318", + "5a2d6c9f89fb24cf28d1b3", + "7d5f8fcc1cf99dc3131c84", + "68719eec758c692aaaddb3", + "a5582fe7b241700d09fbc", + "3de183e6b991f7b8085160", + "cd47f8baa501aac7b0989", + "658a9098281c199cd165fd", + "476085adcac943f7253ad3", + "45f39b8c67c74dfb911f44", + "3cb90317e0fd78744bd72b", + "509c14f0517edd55968bc1", + "7a6cf71a247a9aa2ad1f3d", + "594ab65a623ca11a1d847f", + "32765eba5563b5336b4375", + "e4ce3641fd893553aeebb", + "e73b5b515611f25e496d1", + "ddd508394009eefde3ac7", + "b4aa58f86a462da2ed07", + "4d562b2b0bde307c0edc87", + "2c30e99c7b2606982311b7", + "3a997ef0ad242391b526f9", + "4f754c5d3b280b20bc95d0", + "375f02bea7dda994d93044", + "5bd335a49bc5a06867e5e1", + "63d746c096cfab5f984c70", + "25d324d633986f4baae0fd", + "2175a06a641d5e8ad33646", + "403c1a7f2d528ab5d343b9", + "1429ba4cc3fbeac84cae7b", + "4fe62d365b58ffaa0d2201", + "6bd057cf4845772f81f71e", + "38dd92596a9fd54920876d", + "ffbb4d4d7cd961d36be9b", + "3910da787142c54f4f9b2f", + "2a843c02b5e59799422e65", + "4f459e6fecc9cadb8e977", + "374bc74be1e4381a79910f", + "4656a2b830782828314373", + "583e484be506b8efea96b4", + "36d97c131b997ecd7866ef", + "40066cef89d0c82982356c", + "3301553132b8af815a8ed7", + "475c6525a253fe4a455211", + "7215cad82f761314bbdd1e", + "784f7b46f80b03fd06242c", + "2fc0729bbc7485664f21f9", + "62658893411360a21b6bfa", + "775ff949792463791cf8ab", + "6bbcfc26c4e8fa7b836095", + "14a9e816ead24aab2e6645", + "6467af1a0f07013b2e9849", + "5f019291ccdeabcd687ce5", + "2311c97b29ff503887b251", + "623f56668cc8a093bdba7e", + "3b890cc2ea1882c16138ef", + "6e0d3cb0378f9f523dd7ca", + "e50ab5db695f894b26597", + "500de5789e46431a14b08d", + "74a3895c1173d1100e060", + "28c70cf1a34bf4b12fc1a1", + "260202888a368af1bf27f0", + "49f6551bb5a630f7f3a91", + "35984ab233bfbbdc2149d0", + "7715808f58e52b93fbd9f4", + "7a35b4347e2b2fcfef4e8a", + "696a995b7f1bd2337f9c55", + "765220bfddbe009c12884", + "6c4e919619ba3e8fcc083f", + "6908cd3a0537e6d9de224b", + "8cecd81b395199379b860", + "73475afc8917dfb47ca158", + "671133a56bfab71842e1aa", + "4356f96a535f02cd557790", + "d73559f9e34900d6994e0", + "4299b7c55998b524a2963e", + "6df756715e22975feac139", + "2e795b59317cae4c039946", + "638a87cbb628cc2744b5a", + "2d0786ef10819221e8e925", + "285121b3579e1afaecea17", + "f0daaf67c2422477284d4", + "df5585842155fda65c5ad", + "41824effd56ee95a25ffcf", + "5a2e3e7ac883c32720fb5f", + "786bd6b0d956c71e3d0c41", + "2dd9e647cd7caac396218d", + "32267a0d010a3ac60d956b", + "3bd14b5c954fd788df3e2f", + "55d4eceed6862d8b7edf73", + "32bc07a00fc1c32e790cff", + "e16e90086dfb42533696c", + "58f251e3a335055f8d1702", + "45d0bbd0c4c565d517f4d9", + "47cb5e48534f0fa269ac37", + "23591be47ead61c7626094", + "4e9b8b836aefbcc76074a3", + "7499dfe49d22092ecbaacd", + "422c99318e0e012bdf3cdb", + "6dbec10ac45803905232cc", + "5f091c9040f8e8b4af8c6a", + "49dd9e128368a6e8f31565", + "631d5fa433132c920e949d", + "4a728ba1f43b41e3c8ba7b", + "5de44a501f899626f11ecb", + "1db2b63fb5b72bd2913b9b", + "75c3040748861ea4157368", + "5714f7d7bb3f12d88adae1", + "3382f247e6cbcf48a8be0c", + "436134e757c46fe077e8fd", + "ca5fc0de7c8f0742fa11a", + "324b0e59fd313b7b066991", + "fca82540d3cb37cfe38de", + "71310c65e10b4b2e1f3924", + "53034f778656513538ce93", + "6e8a28f3d3f87aa2548dbc", + "792ab4b2a318b2229df59", + "700ac125ecd365c309339c", + "d7315bcace04536b59c5c", + "5f9fe5fab5062ae9d40550", + "7ed8ee73ca5507f25bd5aa", + "6247c20f5e97453bb71b09", + "463e980411d809a1713383", + "546f06ab10360a76005c9e", + "1c0a01fb60b92af636be29", + "a5385b7f7d2a505f37187", + "296401a6101dec9b48a81a", + "38aece2fe0c1923c569603", + "e966e5d5e80ac9dc377a2", + "7eaf3d6220ab7c049341fb", + "1a01c5dd382ca52c0f8a1a", + "68ab0ae55863c4f8044101", + "75b29426909e9c8294f365", + "39fc8d30c95dd0494e9be3", + "3c234bbaf5da9465f9498e", + "7ef05035c2a08e050870e7", + "7e880bc1729d1783a14627", + "3df3e3ff8b5241f9f120b6", + "61c60fa253a8977e213d6c", + "dcb3217133998c35879b7", + "19e87845fee8ee9d86794a", + "1b8c24041b5c09c2ff1c0f", + "1d4d18f2bee14ee417596c", + "5197b486ae5dad9284702a", + "7a4b513ca25dc5d887768d", + "2e1d98165a5897b1482cbe", + "494c96ddeebc9c314fa5db", + "29785bd232aa4bcde009aa", + "42d71e3ed0639f1b07231a", + "1439532a6d3fdff49361fa", + "8c59c1948361c413eed8f", + "2c9401cd53725f84e2c421", + "5eb9037bc76a6930985737", + "6d5d0573b2f9596b50b73b", + "36121cc69943c0f23f8a85", + "308787b80145ee403c389d", + "74d978e8d6a9ce6def9aa3", + "34242d89a6cc1d4e30fa9e", + "6106124e06a73207e84629", + "1174d8cdaeecfc5b7908d0", + "49f7df71bb684bf5a54c61", + "53b453f5f30f900af808e3", + "7b4210ea990dbb2b80bb4", + "232c5e33740871b389c8ba", + "3e748cccf5c4b2e587b8b2", + "2078bac214b712936de507", + "426ece55a7fd1d858414a0", + "1eac63084c7797618dd9f7", + "59fdecdacfa91d60fd391e", + "589758587c26455b22331e", + "19e1cce82f85eff6f6b24", + "16d83b4ed79a537102c236", + "4ad2dfbccfebf4c881dcf6", + "1851d531ca021ad6f2b572", + "1c85ed9416af845bb8e82", + "5cf912fba9a563060d7b3f", + "14c7f40a28e01adc5ae1b4", + "15131878551adae4b04c53", + "ddf6be61ce9c04533277", + "48938572f05f540b474485", + "465d9407cc9bc6456e974d", + "1df3eb49ffac499fc5f3b6", + "7e698a24ee9aa726fc4b0b", + "53e99cd5ced120123b808f", + "66ba97928f262067fec230", + "1d1b1bb20ae40ee8d35505", + "22cd6c35ab2195c56794f9", + "1ef2f8aa8266e26254215a", + "14da7875e13efd461f7c10", + "22d6cba0f681e23fc64382", + "682b3c7ed60ad7c985a3a", + "244d1131736a5aea351d17", + "3ae16fb3fb77d48c6adcc3", + "3253e31b47819fbcec75b4", + "507a6d1fd108a63234b38f", + "3e2cbdf24bd5900348312", + "34f2e009d684c876c246fb", + "bb247081da09643c00d36", + "32a426cd7460f9e5c5e7", + "48082cdc2a40ccd11ae434", + "1d616376b444140f9acd68", + "72bd80f062eb130b42b044", + "e1e55a565534c74a109fc", + "49e01d719bf13fd52369ee", + "2ae496e8d9399061460619", + "7adc118469443d4f7084b2", + "7ad19421f012d132850842", + "45b5b538c44c73f3bf515f", + "5f8307f0589178f70f7238", + "54018c8917549d050c00a8", + "4700bc9de4804ec44122f", + "d922a909e3b3afea5fe08", + "46ea38e0c4bb849b39baee", + "7b87e87e1438c6126ab1cc", + "499667b1e22348ac584789", + "137f8e05276cc8f9180095", + "5accf03c1a20af1120832d", + "4e94399e1765146189df5b", + "55fca6cb45a0501d1c50ba", + "2ea5fa6c2e19e6ee7add96", + "d8e9fae4ec5d3e7913712", + "767f863c9bfc5fd6540f44", + "477273c36a749543489547", + "4265efdcec74f163498291", + "43f53558dbb8a25ad757e", + "7b5d99de82bacb33af7ee8", + "1d4515e4768ff5c6b4178f", + "2057d9029cad07c3d344a3", + "e419f0eced24d03400fbc", + "2e30617b0abeb387001867", + "603f9b3bc6733094104e23", + "fa6bb9b4b92165346e0ff", + "321ccac2ccfd73a0b28c6d", + "6af9f591969edf6d33a899", + "5ebda7b44a30093e22fee3", + "150cbeb75257f8eed7903", + "1b0dfe5bf791bf4d645e64", + "5286bfcb1951cdb460fbe5", + "29ca62a9234f915c5c9715", + "3629587577ea6cd990a3d3", + "4d3d6fd7781e8ff3322226", + "7377f9449fdfa779330064", + "7f3f1310b0770a6a8ab4e6", + "74f8ea2aa01f3e122e9ec6", + "74aed20fd8f19001dab562", + "7a9c1df7aec04dc00e3584", + "2b3dba5edc89810815d1ce", + "217c2392122f9868740137", + "43ac29ece073be2a30ce86", + "4b6b8f4e6118573075d4ce", + "3cd3f5ea5623ce969c863a", + "421de31b9083741c4d4c48", + "1960ca77285b35812422e2", + "7d40cdfed339cab397652f", + "51a001a64a22c7bc0db3ea", + "1fe4c7d7da3eaeaae25e65", + "720179be8f54eb5c778be", + "1144f2116d6e426f3addec", + "10ad00e38092458e73fe4f", + "72e90ac5d748fbd2d7aadd", + "18250945b23b28bdd1208a", + "dee72e6d522c55b461f4b", + "1e31c413e16722caeb814", + "5ccfa76193ddbc64186a30", + "5eb2b60c1d97e4dcdb09d3", + "7f31009d8b384ea51f9235", + "7118c95246463e79fab7c6", + "2af1b36e871a2152d87ea3", + "1ae4174a64ea29d65c88b7", + "1aa4bb2c56ddce8ebceb39", + "65773487e5415b58fb205a", + "5adfc7a0a78f6657a5960", + "3d5e0686efab87e5e7c266", + "6552488fb7e68b138c5691", + "69cb489051468dc8b7a10d", + "2885d88c14361dbedb4fb1", + "17f8a55fef5d58503cdf89", + "71a2dd2f4561ce6b25cc84", + "173ef6d2228315e7fc8577", + "6095ebe0914ab346aaab52", + "1246f9f5df870b21bcb1e6", + "5e53c14166e301e45a1c84", + "3a1984f88834905315728d", + "4678975ad8ef4ef63ed234", + "139a5be9fe5d74b7b324f6", + "4057d3883ee10c31d0c5f9", + "5de657154513d33b2dbb32", + "7da4d79cdf3d83f0763c79", + "7399c1866bdfc2ee9d0ba4", + "48cdee08fb7cd0c828eec2", + "4c099f907df9db8a25350c", + "851fa3652b44e57d9190b", + "d0d6f30615b8f231bece9", + "5f305f39404231a1ce6591", + "47b5376a6bf9ae1b5420d0", + "55925c1c09bda33b3d0e7c", + "4aa62ab8f33741774c11af", + "cebc8496358956c6ed352", + "4e0f2086acba831702db59", + "2103ca88adecbfdd3370", + "5b917d89029b0850efbfd7", + "619fb115b590487fbaece5", + "709f8b4e1e81f78ecdd5bb", + "5c6ce5b29bafc437eda5ce", + "1c6a5fca595a1ff62b0a7b", + "5c246c8d9baad4092bd7a9", + "2f1ba6fd01e5cf713f7991", + "3d17d279ec6a81f53cd4f8", + "42af59edeafb6c79b9d208", + "7e0f7a6620c31d72d9d568", + "68d1c5df4d9653be9c8e7b", + "79db0961906e2d46b0b349", + "4c4fa3875e78671bc1d2bc", + "22a17bb1e02873c944cbe3", + "25e4a83dfc2f633765d96b", + "8a4219421d2f55bef801a", + "341ee0e329f6ab9da76c4a", + "28eaec99940a1b1f563841", + "4f1b7b04b31a6d85748c8e", + "1152ee1f6c91b44b1faa20", + "6b4aa7c57cecc522b32c99", + "49e219e4b19fa82e3cdd8d", + "5bc9b4c686de112404ccc3", + "40d9ddb7d82d86fe4dc6d7", + "6b85f2803d97e818e2e527", + "321405882a2a0c05f7907b", + "60749c3a015660029dacb9", + "26240f3e8816b599bb01c6", + "1a91a4ef4625f7ae911f1d", + "18704740809cbd3a91bcc8", + "532d2ff2bd9d0ca8b344ee", + "18488f368798b8734164ca", + "7453e07405f19cfba93c17", + "3cfc7a65b66e9f8c6f8cbd", + "4dde9b7ed5a96934e4dd51", + "7afeb7314079bb05948a57", + "2f4c8ebd42ef359c5ac79b", + "2579cde0e8d37e04167a12", + "368d20177281b04fd8018f", + "4553e500c491eb2ced6e1a", + "12a8a0e9fe6ba5c3656149", + "13d6f0fac0c0b9cd891715", + "cfbfcb607ba616c016fef", + "522bb592e89a78b316244d", + "2db6d4b5b7a928883df97f", + "928d2a95f60dac2e280f3", + "15b79d2a607e674b1df02c", + "711d3de6506cffb89d82c0", + "1fab75ef67bec61a68a277", + "3dc7ec06146d405216b267", + "15c08724b1daf7a590d087", + "75c2ce5e2535ac7878196c", + "63dbff9398c6d2cafd1418", + "245003f901ae0a356365b5", + "10b57d68a8cfe14ef3ca7c", + "5fdc8856cd703470a1e5a4", + "1af9124bffaade4351e990", + "5f72010436c71470f190d9", + "50755ca653aac70b84b12a", + "14c9d693e42997dbc96df3", + "7a93c6e177d746f5eb503", + "28d70ec040ec983aded5c7", + "124c113e25b1a8153a830d", + "2df0f496cddcc699504250", + "5dab9e18ce0b8340db40a2", + "6a410e486ad693817f9d31", + "5e82dce0d15b40d73e81bd", + "4e1b51392bd1ad38a51d00", + "69efc15f2bab10979940b4", + "4bb8f4e111d078e3c54590", + "22e8d9bc34a96264dd4caa", + "3a7c703f2642b17eba0c69", + "2df2bed0dd9ba405c8c5ce", + "222dacddb6e77241cadac8", + "4c996629390ea0954eeb1f", + "37c7b0fc4e875134c29246", + "4a78cbf6bef93b38948e09", + "6c8fa526a6bdbce9f7b832", + "7633f58adb014bb5585678", + "509ea21b16907067d06b82", + "30a8e1972ee45f3e0613d5", + "63839ba9cca448dd7fecff", + "290fe0ae5a419909be4e2b", + "35dbe95730bed0669969ad", + "2a6c238cf5c57a2939882f", + "f9d7db7493258ceea1a37", + "36ded179138f0e4cdf1ee7", + "4996f8a3f7c2c5fac02813", + "39bbee3cab035e7fc68b3", + "741dd990ea20591fd9b5ff", + "16eeff7e87d3caf8e58a92", + "2c8f1060dc661c38044a5b", + "3d886ee05f1bcf69fa4f70", + "392d9ae31bf22e0236e198", + "1a7c7fe62effcf2d1a2cb5", + "65172c59adde7fa1aa62e", + "389d1e8a26db35e20882fb", + "7dd9082b6f5562b8d6ba91", + "18c5643eccf2173f575420", + "757f2101d664083b2fe8c9", + "66e9cba0e526f30b7b9b8f", + "6c33a3a058504d48c17efb", + "1a908fcb6be810a9e1e92a", + "2df246fe147cf6a7d9ed5f", + "3dac1d8f9e9cf46cc42204", + "3cfed079405fd41004c118", + "7aeadbfb750a598afce6ac", + "485bb888b6979f8f201fb8", + "460858d1e253129bf64e5b", + "3567cd9077f5bb1d3115a3", + "28b06a5b8a2319d5d78e37", + "5c3df551863d0055925c95", + "260985f3992a168bc7fb3b", + "5a00aa930e50101d3ad458", + "3e41b8ea3309221756df7b", + "216b9b04319fd8da8a6d3b", + "24a843ed6770d822f92be9", + "60e3811062f0661e25f626", + "656a55d45a93fac53881ab", + "10f7a570b959918609b06f", + "d755ece5c8fed1e833d4b", + "5eb96063b604b2d052b457", + "182ed4a29e8be479e40c89", + "55e542cd768eaa4ab7eb43", + "4a1404c02a58e6862d11f5", + "4366b19aa12542a30c1749", + "74a0eb9dfa780e171aa5bc", + "7b34f38b9d16f0d70ddae4", + "1f75d643fbc4ab52296f51", + "1cc8bac063e7f4722cc83d", + "1f1cae187cb4e7e2d75ff5", + "6acdbbcb1d87bb33b845b0", + "5a67c62d60522486e9cab9", + "66727c69de089e222307ae", + "7dde8d7ccd2cebd1d4b943", + "3732911ea3b78b2cc54de2", + "69b04bfb64dc28afc90f3", + "49a34db8369186ccd3e18b", + "3087f959a9893769198248", + "766ac65aedf40f90341249", + "3c8b578aed4234d875a143", + "7248daa035ed0c83c2d007", + "35d310b1c9f92e46c5dccd", + "747c7a13b706fb28e46c47", + "e2d9cdfcde324e23eda21", + "607776583fcde0ad8e4c87", + "2133efe27b28c873f101f", + "6ad95985d0ab8e8d823145", + "35d6d7bb2855d9adfbf650", + "7a123babe2e7abafbaf8e7", + "3b0cb59bddc94e18233703", + "77815256a969cddb479be9", + "9c6c4ea9b05d327c6b7f3", + "55137101093be9fb51857e", + "59bb325b9748e94acb6630", + "328bf9a8c78ea2ca3388be", + "6ee757629a9b68ac7e690f", + "59efda7d6a6d8e6aaaba46", + "6ce70c288bc2711b1b024f", + "4ed7cbd3e32dee7a40c626", + "a9753c820825d73c04548", + "741d91860d83d000328e76", + "59aa03a25735023ef97395", + "1cc96ab6764758e9cff09d", + "50e22c6cf5d6b70def807b", + "76f42929010d1ca7619b42", + "18a6b71998f6f84fd5d814", + "5fda42ececb40f359e4f0b", + "2f62056d547ebf7995c6e6", + "23966403e567312c7a8379", + "6b7e91fb5948662e3961e3", + "1e6874a8b307092ad6e72b", + "31dfcfe645b46b329ee2a1", + "209910d1159692421526c", + "3c4374002a4b05edbee285", + "6df855d5b158377d521892", + "4169ab1c6bf3f0abec6c34", + "359b331d03b9cc2451c1f8", + "3c7a2b6b58424eab86f3b4", + "7242e44696c19a3a1910b7", + "2a7311c640e7cf0ecc141", + "7933956672bf2e4535ee34", + "455927f484bb8820a2ccf7", + "551ec7c1ae7ed078f940c0", + "6ef800332004d6cda26cdc", + "7630fa097aa2bf97cef6b9", + "490db50fd1ace7e8ec15ae", + "32f5fb93813b0abef00c9a", + "44e6ec408ba05ad98e759", + "568f3917922fe83ad3e225", + "273beeddd87cbae01c207f", + "1a8ed7cad7bcfca4620120", + "6c362e17e2173449bde86a", + "191da9b869e973d2fdfea7", + "64666abc6a9a2f6a1c7575", + "3c31433d0db703e03c294d", + "1e74e23fb34c50dc055d0", + "59652c3042e742dab07904", + "50e46147373113c54d73c2", + "776ff8d5492c149f7acf17", + "318d2300370d914ed1483a", + "e24946eda2a54a4c98b6e", + "28434971e0ad86e87340b6", + "b7602abf832a9540b03b8", + "3a2bc2968347afc3827c67", + "5fde1fcd656f65c682e01e", + "113149ff5647e02c5d8e8c", + "329c1979af2fa92b25335f", + "7de8764ca6a43c99d6a50f", + "7e68cfb951ae556b15fa1", + "5cac3c06df31850ad70694", + "357eab1d6b7f6618503b3c", + "4e66ba0bc1058a3931042b", + "65f33a2872e25c8a682f06", + "a5d62acbaf68c52001a4b", + "18f39bb607de6b1ad183e4", + "16870479234b3337ddc8c9", + "7093b250c7b04c2c6d567c", + "3820d1fc1eab75e925dc43", + "49ddb3e956e6fd8d65e1ed", + "7544304d1b3c2594fef689", + "60483a9742002ed4918cd1", + "809a8bacccc204134381c", + "177aa9fd51aa698c4f5d25", + "2848634cb8eba43423c432", + "2bd0c39ecff8d002f3a3f7", + "2bc7683658e815b0850ae", + "56d7ace10d6e046f35bc1e", + "1cf7470aa8bed908f93c32", + "44885049137a26d9ff4438", + "46436019c4b35e76ea4182", + "6b4ed91c3f4f0b25252206", + "1cb50b0700a11348f864c6", + "26c603e605263eb37ee858", + "734cae170e5d7d8758c509", + "3e00e41664141664f70d8e", + "4d36c683652009a273c69c", + "61e21b9a255226ab8a9c03", + "66db9685c97e1039f97191", + "41ebedf12db1451af99b12", + "5640578c9a2f674c097c8a", + "37526cf6c350fc29ecf559", + "6e93c69a7627e1f9832a61", + "3aaf5736ed929c1ed0ab93", + "42cda11218a2f5a8d7bd1f", + "ea04fd9db78a21c39b6a5", + "53e3092b891267552e8471", + "3e13e95a38da382cdac574", + "7d59312cf551555c728152", + "57b341376c8eeb5e957326", + "2fb62f0a2e9435830411", + "6131db76263e902f303f6e", + "5e7e83070de3b07a4bc87", + "54765bab6ab2b394d9dee1", + "3b4ae8aa403abef29b052b", + "4e1bc7c2f29a2f520bcf7d", + "50bb1918112bad3e57d523", + "3979e2b3d54a21e7e8c1cf", + "4f3fe475424626758ebe24", + "26c45bee1cb7e300fef593", + "20866732367b425f7e5ad1", + "4779c6f70cb71f00e32d17", + "24dc2302a4b77b85525bd", + "f339d2f5ca33347ae8d13", + "2e178e1cc4f997792ce1aa", + "54728697bad28cd0bcc9f", + "13413811d8a8e6bc2e6cf8", + "1a3337bb0bc288bf44447e", + "526d1eb936d1a3dec6eeb3", + "7df75741d3ccafb28da8e", + "6476d594392ef9fc9a3df1", + "645cf2dd2735f1cbf53f1a", + "780a2a5411b159d83dcb95", + "562d8222a0b94f5af3137c", + "e859d26ac6c854731c10d", + "3908eb827c8209b96bc643", + "61619bfea73d2a10c7a7e9", + "cf2bf44fe6c433cc00c9", + "17b5a764867bc2f176278", + "667b77d58f7f6b14e19bc3", + "14c79375686a30f4c21ea1", + "57d421e876be8c87768c1a", + "a49f38b3c0b7ca1fc5c10", + "1998c4f90bb8b5465b7b1e", + "974b1ea8fc3d4665ea11a", + "4382f99dff4951a775fb77", + "66b03ec137e6361ddf6317", + "43f99aac41b05d58c624b4", + "4efe7cc856d9eef4fda470", + "35f48b300d21989b05560", + "79ef58660a06bbc22f0cce", + "5623f1c8e0d5c15938b2a1", + "740e3fa0e998e741eb97cb", + "4f6148f444b84dfe82ecb2", + "34ce2df12c5e0970f682d1", + "5fe5a0fcee7c061cf49e8d", + "127dbd62073fb0c17b4217", + "31b2ef6b5163160bdce290", + "7f9a1f8e557617163d5e82", + "3c5262912ab7e82ffd49c", + "4ad5e4985caa0c7ee63b9f", + "5267f1f68134d546ec646f", + "7f695021b246db24a5113a", + "11df54a696817409ff1164", + "5549ebaa872068aae68ac5", + "236e08f8411de38e44c3cd", + "1892726d56d4f8f92dde20", + "457d09be8a2a4c351b63ae", + "53339d5a01f3d2e9bc8755", + "ac5bf0492a63aa0bf597", + "714ed5cb0027168be15142", + "4cfaabac7104cbad2ed728", + "486fd3ea0158f33daf767d", + "61c0e0ff11a378274b395c", + "5e195ccf98c9a4e1967fe1", + "3eecfda3b4d92af2b7e5ae", + "62af499c078af038905758", + "38d987fd4b450ee5a69286", + "5f9563c7ca70d6e5061bfa", + "ad64cff4b4763a7fda09f", + "26554ee3e9bedb1a3a09fd", + "42c5d2d1082dd2375a4ef3", + "7e05b7c7d54cfa1fc7b525", + "118d29d91686683483dea8", + "2c56fdcda56f78dcda9b60", + "d92cf9efd7d12c62f0dfe", + "11b77783f411c457cf909e", + "2cd33d1f501e268643d591", + "1ebddbaa72ad1a2b1cdc49", + "73f4373aa0c46a1ae61409", + "64b1dd5abc6713a8f53d0c", + "3aef6b8ad8d4f116a27e4a", + "13f9a309c929439a91df6c", + "401a3ed45557939fa7eea", + "1d1aa15ce7c8c15f051ba9", + "398764fa3e177502af4d3b", + "48edf77c0fc298b0491c2a", + "1c5b7d2b84cbc7b29bf542", + "78873bb7282961108e63a", + "16ad879cfcd3e458301dc9", + "28b06d6b1f993702509e4a", + "45242101d43b276b34115c", + "783d012e8b928ea14eaad8", + "5afe15c1524eda9627e183", + "42b636bc4126dddf74cb00", + "5cd8f782abb8b60cbf36f8", + "1c5d10301fcf4a14c82adb", + "52d3cdd253b64a03c5885b", + "31416a7f09913059dc251d", + "46bafe88322c67f3b90507", + "4cb6253df884020966d27b", + "2948eda7d7c508918c3056", + "543222604f067afa3e7558", + "3ae99fca89d15abe091160", + "140aa7412f6488f5404826", + "16b6721ea95f55ef631d25", + "133606f2fed41ffd77b999", + "4d075c933e4b93da3a33d9", + "4ed1311eae64f9e834ee7b", + "f920b02af1e3bd673512e", + "312518f9c1ce1e690c003d", + "44bd0de2094b8b3759356", + "3d40b56764f7765513d13", + "6b5da25417070642e0ba4c", + "6bd995ef31bcfd22d52d9f", + "3eedab106a435ef32b9e48", + "534c1a3b25194e8cd66e6c", + "28a37e042abf70a7cb137d", + "76fbf6732402bc76e061d1", + "3b66491ccee4801a4e3673", + "5ef7fbdbf498c8684625f6", + "3305f9d7ac9bc35ded571d", + "6aaafc0107575bd9b70723", + "5eb217461cfa46d5694397", + "7f5140ee63b60e0a33058a", + "3fe61d12a0b09791925ccd", + "591749051e47ee7b49cf82", + "33440d7d3472a4b6e2f627", + "4dedb1ba2a6a4abde67337", + "30485371efc19b50bbafe6", + "3566f7f67e026f0278dfd5", + "201e678f30ea96fd17615f", + "4a2580e03d81912089d88d", + "68e88d3bc4e8d390ae4b13", + "46986d0da7a2c17dd1dc22", + "174fdf0bcfc8d0f4e77e83", + "7a75be28b1e93e4e0c9342", + "11081f4b8fb8f0a9abf772", + "3245bbf080c6731fee74dc", + "57bf13241507b812b9a904", + "50c915d40aeb9e4ec78789", + "530f4c391aa2b0938eb272", + "4e0326164785519414d07e", + "389d9fa841750626db108d", + "5eec1e56c0a2d0e34dfc8a", + "3e8986648fb4053520276a", + "2db6e61499c9393946b57f", + "1b2e283bc4ff40366c744f", + "95d86ded4a7b26a1ad331", + "4818fb8f958698b6e9c9d9", + "21e39ab39cd96423900120", + "27476789fbe89ef5fe00c0", + "1b67e56d8c8f6656eac86d", + "28e33efab89fb4f64d6498", + "18eb41f414dd28e8ff3a1b", + "4a648c611ef0b3b0e318e0", + "3ab4982748b8f986192588", + "1eacd91eb3938b38f0210f", + "5227913634dbd4b19ffe95", + "1d5b0385650d2d81754f72", + "7351e32ddd53c7465f65e8", + "202d04fcffa7e3a0ae0585", + "6b77b6d06b93487730de2b", + "2f635c018151dfffc38ed7", + "7d83ba89b9f89b55497937", + "d1c5eeefb8bb620c573fa", + "322d1e939066766f918e43", + "3ea29dc49c06d64c187862", + "7f64ec3ee1d6fd7b5f9352", + "749ebfb4005c94ed288c4", + "6f3d0d822d1a27088df8e4", + "17b1690a9c9f4fba9154e2", + "142aa17e315b2096d3470c", + "5778dc2f1465daeafbf88f", + "3135a042ca5b8873367081", + "26f3f960b2ba725c83b706", + "156e3560db5a642c108333", + "3adf2b6aaf40f5dcdffdf2", + "4ecbf2559411992397d1ba", + "5e3402a24a307a945167f7", + "553a48facee35f17214327", + "57c6f0c9d94e02524b4029", + "44867f919f39bbc1ac8a53", + "7b1e254e6050240b36eede", + "7fb445fb34908201d41b44", + "5a49a0430b2145ead2e9a5", + "22d9fd1638450186756413", + "60a177acbb4aeba955e6a6", + "23a7a59b35972768b71627", + "ea9789ae096da5bedc410", + "38419b7c213432cd42f4bd", + "4024c6847ce50a93fefd10", + "1f15e66f6c5b160801ec4b", + "26fb73843bff3e4d17aa10", + "212d386743b2c2069ec4b7", + "59377c70bed9cccb346cff", + "5a80f23e82161bfd2caa8a", + "21532161ecdbdaac15b68a", + "5cd8f904c6a0e1c85597c4", + "2ad8c773fcdf92009db9b6", + "1df80784a603cde2e8573c", + "41127c781a5dd07b6ea357", + "6152b40d63a55e1ef6e750", + "3161bea37fcc040c6f6494", + "112bfdedc3401ff20ffcf6", + "6a3afde1cc784aefb925c8", + "47a38df2df7f516ac35f8d", + "6dafdbef06e817ec42991d", + "72059eace3671c76d67005", + "a209dce8856336ebd97f2", + "695d060b1aceccfdfa96c2", + "17445a9a60b0dfca9df354", + "249f5358017ada6567b747", + "b7347a4820635a5852b61", + "2bb74459adcd7029c9c35f", + "3684bf3ee3a2b8635ca0e1", + "600de685f1a4c2f4a236d9", + "68ae7d3832d31bce57eaf3", + "7a75b868e9fb50140bd203", + "1105d3c71c59dedcb33f", + "6234ffe0f938a25ce0f5a8", + "41858e467a21a3938d60aa", + "7332b41a9fe9dfbe59f71f", + "313ef612f2fd65f39c2e3e", + "49ce8855b52dfbb878b2d3", + "46b1961304e45b428bd48", + "1740e5e9a57a4e80eed5c8", + "7f035a794c44a6a57abf00", + "6eb090e9b1df79f4d2226", + "7f26a6c99362d1126b6773", + "14e47840962745e9f2bba8", + "28670ba592cd5a2625df3d", + "5c00c9ce80be32396ca075", + "4cc8bba01b6788222eb375", + "581f2a492a4fe468c3971b", + "6aacfa3617f47dce14015a", + "3988842f76572373c3459b", + "3146d29fae3f74014572cf", + "27216bcb23514df00030b1", + "36baace22f2d7a2014dd1e", + "20b11d38582bb81886466a", + "5aa25b718982092494e872", + "3f0eb0b9bdbbe37f40dc5f", + "5c4dc3dd9138eb7169302d", + "503bee64726b7b32815f44", + "7175ce67c0c74c440327c2", + "3fc3680285719ed4f7e7fe", + "7fc9fec9506aa1a0661240", + "122e1cf4ba920fb923d0e1", + "5570385cc742f16a21edc9", + "2a8b319bb90a064d3cc523", + "797bc83e9789b064b51c92", + "124aa58a7e2a882689ba12", + "5ee825c795f457b727b9e8", + "475c02da59260b083fa105", + "5f427b13d8351db71dc75e", + "7dca64fefd065e0893d874", + "88658ceb2447416239af", + "75ea3318a1054593eca8e6", + "21b1555bb331b89f928e6d", + "7e558ced95c8a49312174c", + "71f02d980dd943488cbefc", + "23e36a6e12831353ac1afd", + "1073f10b92dd8a202017b2", + "a0ac3885d2cb22aeb977f", + "2ac1793993d045ec4ea0ab", + "4e33cc0d26d44c2394c8d2", + "5430c091f416778afc3f3e", + "55f3bd5a345801aa67f91c", + "18bd8096de042467441c8c", + "1dfe68dd4d69d0d5368782", + "a69b0e544c08336c9606b", + "405224a222d42397ca18d2", + "5ca40898d5d325e557e04e", + "73e9dbd2873c27040a215d", + "56efa25eac0d5f675af6b6", + "460f5f98b19a4d353358fb", + "28593d93a1a2159e16cc13", + "1eae59f579b122f18b84d1", + "7f29a05b16052f06eff50a", + "2ac52045b3b592dfbeeaaa", + "6003c83a8ae5ae42a0956a", + "3af2323baa99fc6ef534e0", + "b3a488e23273b8e74aa2e", + "dde95ff1403621e1e9c39", + "8b93e9e7ea54df6ea61e0", + "382238b03129ae3a8cb2e2", + "7be85a588e4f01b973f9a4", + "3428c448a20f463714e16e", + "46c829e7e1980bc26c13f9", + "20573b178651610a410e89", + "16c1a9b3bcba979d2fb250", + "46bc67034da17d5b7c72cf", + "abe7e5169767e92b8517c", + "10a7cb0c646bfbfaf6b1db", + "3e27d166777ab6af4a4b75", + "560bc3397e1eecda48e8d6", + "153d46a7ad0d4c7b81a83d", + "7b625b197eb76a08b19ecf", + "58ab9a24dbad2ee2c0942", + "6b463071583d5d51119c18", + "58d985a1111ffbdece42a", + "772853e9593804a23d0c9f", + "3566ae3cffa53b48308a5c", + "3253a13971cf24cc306f4e", + "161741a6fabf2be3cb74a", + "72492bafc7adaedde393c7", + "4d17bed73f2032142b03a3", + "43ad0b393a7c2a4d667efc", + "5bdacc4f0e9a9f3c5eb7f", + "3fc330d82c00c3c98129ad", + "2287f22a43e09d12b5fed1", + "113203b24e05e4ff03bfc7", + "386903ad1ff043a2a203ff", + "6efc437814b1b1a8db77d5", + "60d1cb028fdf2f7506480f", + "5c08c8490ead830327cfc3", + "56d1b28a25e58905b948d1", + "6473a7fe7461369e02b551", + "43240f690e895ee2ce6199", + "217e1d11ab05e37175e942", + "115af287df30e3b9382159", + "3d01c0ebec513aebdf049d", + "3b607643718a1436cbf93f", + "392447173660d27311fc56", + "7fcabd5ff8d8321877d09d", + "773e49f5dd28ab9abcc4f3", + "333e4709f384c49fba280e", + "1a5a69890d5f080ad27aee", + "142700479fca005e365a5", + "16c859dc1504abc8bebb3e", + "8e1dc29eaa3429a93416f", + "3d2c4d19f97ec14b7f9a20", + "b80a7edd7c5745e63c50d", + "7eacc570a117e3d2c4ad3b", + "5a4b0bdbb9a3eba57ecafc", + "2bbb60823308802716b002", + "60de98af5b2e9794ccddda", + "43f106dd9b706c7cbad455", + "247aa73439f114a2bae1f5", + "404518992cad409d30e138", + "483592c4cf34d97823b087", + "303e55cf5d940fa1eb0863", + "27cf1a1e36d6b6fbf673f1", + "753e3ffd723c55ffaa57eb", + "527df835ccce3d0d8dc6be", + "501c73bb8897e8a9b644da", + "2c748923f66e9b836e2956", + "252a9565fc2ed88c83afe5", + "53ee027a60ac6b8703b4c4", + "11e3b65e520ccb94e0f28b", + "1d82fef6b5daac184a21bb", + "34f1c6d5946b4f8e9c34f2", + "78c36b7a1a1ac86080796c", + "3c2561b4603673cde220ff", + "347e522bb35549d788adad", + "c5eb765e74f7ea6040509", + "6b91d4c08bfb155d85a09d", + "1d345a329131e03407a9ae", + "7656e2bcd13769bc7d3690", + "18af2f7c66ebae2215b225", + "5c0b858603efe861d8e554", + "3a948a48ee72242647aeee", + "5eb549dbd9b640a1018c4c", + "39395b9f947ccce230cc1d", + "2983f80020a9f6532ba834", + "599c6bd84b32b97e000cad", + "494a8aca14d077b143ca10", + "5514a9f97c736ef89e2558", + "22a2f494120b7469421488", + "6bbfc916f60c65ff6069ae", + "988dfd270fa06d78d9fba", + "65e3000fa520e5bd8bfdc3", + "d79412155f3d978866277", + "540f6a5d04324cc6ed1398", + "5193e0be567990b2818200", + "5527257327c4eade309a67", + "6a6ceb53a9e08bce60e22f", + "3bc0b4b12c4e0d37097319", + "6446d75a31a4956c235943", + "70089a05ca7765b8ef62a5", + "78050a04d755b7008433fa", + "4cf40ea87be0baab3f0a23", + "421f5a540df5b7ba309bc8", + "22aca8e5833c97719ebb51", + "595eaf076defb81f21236", + "324340f1f7ccc9eff05524", + "490df281db25788739ca0c", + "7cdb727ae2bfeeed50af45", + "8fdbca74c18894d421e52", + "266efd2e0daff29e309d38", + "2d3baa252f4d982bd2ad11", + "26246e8fdf408dac8fd2a5", + "4dae59d140c542483e12a9", + "7e37627adf10efb14adf13", + "7059a8ae14b27b87ae7942", + "5d0b6fe03f574db311d01d", + "4450b05b160d8c53288cd5", + "5628eeca86bc4f505da4a8", + "59d6c2db6f995cfebbccc9", + "32c247d46291051243da8b", + "29ecceda91e2de99bded7a", + "697bd2294052d067eed5b", + "35d846be55b3952e278ab9", + "3846b043ea9479616ae948", + "460dae8d89d7708b43a1c7", + "6ecd91e762474ea500bb02", + "78386c3f2bea1d92b0136f", + "5d36dd2a4f038c91a8e525", + "2567685d25fd668a9a024e", + "484fed0412b66b4ad6689b", + "11e987960e92f0cfe9e7d", + "48457eaf5bfbcca641689", + "5e89ffa159d58051edf13c", + "ad8ecaa59795b2101aeb", + "4cd6b5c75a375bce549db5", + "17a8f2f3a036b54c467b7b", + "456d747923e7fcbd260fae", + "38b2a18fa105ae1a1e82c8", + "36b718d293f968b4388def", + "6d15e33dfd91b0adf65ea8", + "6a47915604a062b94c626c", + "63f2b709d7c6ba1ce60255", + "73da067d52334a718631ff", + "68c11de19f57751aa11e9b", + "1b50ac3c3f5269c1d7aa40", + "51f56cb5201bdd22f49e70", + "245ff16a71eb8c45257fd0", + "7dcfee63c4d594e4583601", + "604b2e853911ce83225aba", + "5bb6095d45a0253a5e3e2d", + "14b7709b903167ca33c0bd", + "6e6871265fe9883143d121", + "453649c203cf983e439d84", + "5819cdbf42afd2334f96", + "3450478bbaf1db9aae9e0e", + "35a56ed2078e145e9b5d42", + "15e468fec0387d9dcde2e9", + "1f098e306099d97f37bcee", + "108be849403d8b9e0adadd", + "432bf33542ea8f8c0e1cab", + "1fe772e91ad75a2d2792c4", + "2aaf602c5ad427702561f0", + "66c37766a09f2454161188", + "7c91adf751ba7b800072a4", + "587965194057ffad1ed72d", + "6b189bed3e1ee805a7089f", + "656e0aaff42e8f100df7e1", + "50d8060a4c81ac0d9dcc9a", + "3b142ae3f666b5a458fd6", + "11216382d02fa8a680f2c", + "640821dda0f544b159e25f", + "60ad8426c5228781a660d2", + "50b259ce6ef7786ad19380", + "617907260cf1e3612508c0", + "2020839307f0a0b2a66465", + "6c9aa8a230f91d4e6f84c2", + "479f0a9b95b8f0e630df10", + "74e8524ea4276a1585abc9", + "1832f7608c30377f8a27c1", + "468227ba06af62fa70d6b", + "46ae03b83630be869f3f67", + "1c429a8aad032b85e815c6", + "784a6ea72c75433fa2c1c0", + "521255c27009b10aeef14", + "6de250d6d96fba0a4a2df6", + "1a38abc6055dcfc6f54cd3", + "459fc4d70a1a8040309b48", + "5206d5cc4cf74b102b511e", + "1621052353e1bb38663f44", + "6869e474162fccd5e6ce8a", + "265a6fe3ade48b79bb704f", + "1683c065332572cac40e7f", + "40fe888eb50954f82f8f41", + "5ccb3321bf79805e3743ec", + "6904f88af6eea4b3f91bbf", + "a70e6c0e6da7b5bd943d0", + "7b7c35dbf0dd6b94d050c5", + "4ee9fe013ba8fc6ac8d470", + "1825a2f6c03df8e89a424f", + "6495ff035413be2b53c45f", + "745f8230228fe0e913a537", + "57ca180b4c6f8c3a63ae46", + "5963fe850d852bb19cdfe3", + "430a7ef273c75f6860a9e2", + "28c8b8ba9341ac37c38695", + "88d1f466f33239ebbee3e", + "7bfb517a9a7064f7f0b9cf", + "222ad5a5eecaf564928d05", + "31f4e6b45c1cedb6d4c94", + "9d0d5139d46e4d9db3662", + "46ea372cc256b25d8bedb8", + "1177a186084a0188e6b25c", + "79973f898e87ee6433e53e", + "17f90d7760ace90b4281fa", + "4d06acabc42f8f6c6561a2", + "297ac6d1d91b19c8ceb3ad", + "76930d75187c32e1c0855c", + "ef9f73cc5ae815a32ca63", + "3ca5432d73f30360d5e251", + "2eb29dd03203d9dedca2ed", + "3f719d970328ab86444133", + "671a35180c429ed6cd73d6", + "1a5a3601f9e5c757413d21", + "1207f0afa9b17ee1e3a14c", + "64c773513b07ac7be226c5", + "645491f7754448588100c4", + "6803ba4d96f3cea5b5b619", + "3e8f3fee79b0aa7d3158c9", + "7c4c5a07ab45db64032f8c", + "471e19dff79f0bf8dd75e4", + "736e4111350ab36a2be4ca", + "70eda2a92c3f3d551052fc", + "4be7ae42a1b71df0fdbed2", + "38e1136120c0a50e7c1942", + "34de10a25d48bbec6bc310", + "45fae251151688f6948ec3", + "a5803d95905530efe4cbc", + "29c81a2bbc75ee65e40fbe", + "5d0e736ad9b0e048c53cb9", + "62a6ac9d0c5e4b3890d61a", + "16587b1213183c74388d6a", + "30455197024dac28f22ad9", + "5c96c4bf9c30f05dfa52bf", + "2e14fbc2ca9b056ee6a0e6", + "544e247e73028cc23b1f51", + "7569e0846a7c92c5b07e91", + "2e37e64613e6e49f75ff6b", + "75393667821938c0e5a628", + "2db4889991fd96d5a3dbfa", + "6b628f924b031ff396258b", + "5c721c1e9f943f1e44c526", + "4845e19f6384ed5724d8ce", + "451cf4e4a6ce149cfc4095", + "69cf5ded5037b0fc848b28", + "2144bb26c3488be851e3b2", + "2582d22d55dfd72b2d70bf", + "67fe64c68be6372b30260", + "b5ea9188a76cbd4490c2c", + "2f9195fa1721a36e6f5198", + "371b6d93bf32954a1ed005", + "2d248bd8de364598100d1", + "3476974a3a56c244bcd4ac", + "7d10d41f081cc53194454d", + "9ae11d1f0b2cb73496a44", + "3c11b4ca34c3237b362a26", + "3b62b01334bf25d1f5d560", + "4a9dee0a96c91e7cd6d7ca", + "2d8ba9bb83d8b7dc77cc32", + "394242cd2ce4d5c927b1f7", + "13ef893fe161bb05038778", + "210aaed4cc7b55edc4255b", + "72bad07fa5d3ca19811efa", + "1856ece5542adaa42b18cf", + "2f775dce855cb22a4ce4b4", + "1b3d8a50e5425c7a4550f6", + "3fd38eb64df431878b817e", + "1f372d16a7c783f301d859", + "2e99bf2a9cfd14eb01e4dc", + "739d86f4db437bd59681d0", + "91782b2d8bf1ec8b6e4db", + "13089f86ddae7614e1f733", + "4374fb07e1eb1efc714a7f", + "34026c0467a5bb1302960d", + "1316737cef6e8d73f98c46", + "308b1811fe8c7d6801df6e", + "3b6333c6dc16d5f4351c47", + "30151eaad7aef0e79d5e07", + "6d5ce69503f658697314d0", + "13022f601d429947abd201", + "278331e342f211746f0d9f", + "44fd7c4168c2a61413dbd2", + "77747c8e4550378570ec0d", + "31934713e4ff1d0d7cc583", + "5ca455ab52339850752f94", + "cc47e7e925da6c91fe510", + "18932d3a50056ecbd4c0", + "594820c775fd57d86cf9af", + "4ad8d4214e4fe01b143d8", + "179c67b2886cbf8a80171f", + "60e1157dceceaecc3a16c9", + "507a197204651599300f85", + "1da6208947854d10119a62", + "2fd395d2076e94e7f79f79", + "3326fb026bfe153a5a80e5", + "214b26c5cc4d2d1d455254", + "2a5beeac5cc34b9b70fc5c", + "73037907fb5b7e20bf7973", + "622155e1a7c16eb9e6f098", + "47eef469d5e96dff3b60f7", + "31b42ccc858ccceae34d5", + "68c711e371efbf9b278db8", + "71e107fc4c98b40c6f7b53", + "2a2840d0a8db4a22fdfb53", + "557e56b5a5dcf30ae5f48", + "5451512089afcff74e1bd9", + "6a44a264bb1144d86619f3", + "72316f1be6172c06994a4d", + "d5835b5723a9063a2dd80", + "232ce65586f95692d89383", + "2a8c9eedadb6f6d58c06cf", + "f5eef843bd404a6869b17", + "720851fb976798365a6829", + "6e8b7f0e9607e44c1f9f65", + "3860366ed3637eead94b8d", + "30d33e090854573dfd98f5", + "682291bfd680e2cd8f9d70", + "7c1fdd60de643e750fa1d", + "774b9d1f08bb74ab682979", + "7b5f04e933b2e4204cdc65", + "2c36a4d87847724f9fdecf", + "2c941d4c1c7d68ef593ae6", + "4576a87293566d06f5b643", + "86148c3559c855d7a4785", + "2d0a5221661bafe1bae3a0", + "4eabe0db8ac5d733acae29", + "1dff7b3a25d6efec89d4f1", + "93ecdd9b52d588b62ae9d", + "4a5c54b88c3afab5d73bb4", + "50873f081856faa7b0c6c0", + "7a4c62248fb05a7ec5f894", + "6297ed8d827bde2f27c592", + "4f88d842683a24f7a78b4e", + "6543f2ea86c39aa319b565", + "1711e7c4ddf7dd725f454a", + "6e925cc1e63747fc8301d9", + "428c02c3c8bb1613aad2fd", + "1b12fc1c7d3ee5cd24b30d", + "38618fda51c023d44b41df", + "75ecb6eacac31eec1c8d24", + "363495385d4023abd7fffb", + "52a170878e73d2b9a73398", + "40afd831d872bbb5ba2dbe", + "6a2bde70b440f36a3a69b8", + "6cdde5dc50cfba13ab15cc", + "6102d4b92b578db1756028", + "1d72e71f6a57243468bc42", + "4f100cd2b63ef0cdac7165", + "56441a020eb196f9ab47f5", + "520d75e4874b90e95d0ac6", + "4ad5b5ec9142810d730c91", + "6369f366be6b5ec99ddddf", + "4ae3a5f46681ba13e649ed", + "33e094a7802d99ab1d9620", + "58ca4d190a0f756173e746", + "4afa034c14d96f077cc41e", + "3277a60ca85c986d50dee2", + "61df6c089b8a0a75da0288", + "3a9ec75af3c8e86b8c1b73", + "7ca8eb46f6df31902607b1", + "7a283d5e2ed98485e2d260", + "78ab001943d18ada1f6d03", + "56f539741375576aac816a", + "75fa74ccac539d6f2e079d", + "7108a03a28803eb91e8a0a", + "3756665d23e5dc56d35905", + "da96dc29f77c98efd9a65", + "54ec1fbecc620b2a62de33", + "2e564f6ba5f6f74e33f2dd", + "86aa65ac1949dd8af6918", + "605ccf0922a0c35f768933", + "4348b708829c7eddd56237", + "19d3eafc75447dbc2ce4d", + "764156f5d90616c8c45669", + "51e2ff830fcf99b4147ec", + "2d30342ea20393b89b038b", + "6745627963b760ee39ad1a", + "76c344db7c98c1b1fa25d1", + "5b872486f12a68a939069d", + "274cbe37d4fe65732936f", + "27b48290f4bc222f54681d", + "1f7e1880120c76703199fa", + "2bf0a5cc2a5150523d2e64", + "2d3b2e3d52eac5c09743f7", + "46b7638024bbab6f336734", + "71f7ff7f6245492bf4ba4d", + "6ac96f98fa78ffb692afd9", + "1c63d031374620336f8c7a", + "5eb0e751f365585e4f3fd3", + "24716274d6f1761a2e503e", + "3b663e3e9013cab9326fc5", + "231a1fa6a52f8377b2ca86", + "464063c0e0f5e5eae1bad1", + "4f588ef825e26e596e160c", + "4adc76f7cd88044421953e", + "228eebf60c055615805405", + "3d32a6b665f10a829cfff8", + "ce584760ca84047b25a4f", + "982362cb3f64fc2535f18", + "2cbb69d06f0ba3051ce433", + "2fb2d651d1a5fde2dc4d89", + "116822d6715118a8643140", + "52e4d0f780530e040b8198", + "4d84d472f48a1f27cda4fd", + "23675569b6f74cecec658", + "7273cb20026d3e5dfa9567", + "5e5c9c54f1f75bcc98d1bd", + "37150fd6c06a98e84f0fb9", + "1cae4d5a0b88eed0b2d97e", + "5e6c438c53b4bfbeab6a4c", + "7ec0ec060d3788349445a5", + "394ca6d6650a3a703c8f0", + "76a4bcdffe1207b9c84c3", + "413062fa329dcbe3b8887d", + "137786296b1e5f466871bf", + "1bff1788b61c434292f278", + "67ae16da8f876a2c8dc80f", + "4f0b0a9e8338cbca398b3f", + "7fe713df2e65b878c1edc6", + "46dbd89f4ae0d06c0ab8e0", + "3ad2c2000ee1db409ffcab", + "235057c5ef06d64b0093a1", + "2b1199cb9ff7848ec581", + "16a7968fcf87b51aa207b", + "7593ab2f13aa524b76e104", + "569b68c3d77231282d1705", + "54f01285acb2da9689a386", + "7c50148337071a44808f27", + "157e5726ec48e98ea5652c", + "a0b14921f2ca115669309", + "540974d1b3361c5ccd3a2", + "30927374f464c892c53b50", + "5c0de6f6c164f44c52de84", + "25f3d9fd234440b97c9821", + "659ccea55ad34dab51a321", + "308d7af9cf09073e61779f", + "48dd5aa0d80d3fd4d31225", + "18d28f7c13bdb1a27fc315", + "37c639bab06813135e6962", + "716be1338eb9fa3160de8a", + "306cc735643548c81d480", + "15dc7895737fd27e2fc2d8", + "ff910ecf2ce1ed443b3a7", + "26e45399ef9d09b479c0d5", + "5a3548ae1dc271964cafb9", + "1e0b5aa4ebf1898b7232a8", + "65b1a43ebc40ff17757bfe", + "35ab264ca762acbf67e1de", + "67fe63e894b36bad057249", + "901282766f87bc24e50af", + "3f8ccc4c495c412c1876e1", + "2c958c952c5c886c2a60ad", + "21a95826890e5cccb8a83e", + "190017f50befaddece16d2", + "64f3d838badcddd9bfdd0e", + "7a7cdf214176b6d3191883", + "30436781bd712f316b4895", + "f5d2bac49777fc8f10242", + "66de0cd9d504d0c8a10caa", + "11ff8e8d5e956398c99ca4", + "2d83b4eaa1c8f768e56c30", + "58689766e836a562c78c53", + "1644cc3e7fe80220ef2f70", + "69a00aca76ae6e660be7bb", + "68e1a6376fdb4eb7b4b0e6", + "5c37d517c640ac7f62a532", + "3aa36ece405e3ccd9341ca", + "345343979af3beadfaced5", + "63ca1ec0700483b8f859e5", + "14b8d711e9732dc1d81b85", + "5d1cdedac3c1f047923b22", + "1f88577ebb6a87d8478dfc", + "3cf63e3a65a7e509ca6dd4", + "64e35a2939773b306ebb74", + "4e5afb2e233daef8a9bbcb", + "5dce9f322e405cdd3dc195", + "49fee8b58237dc40ba3c5b", + "125c7d70d2b6d99ae885da", + "7f821b6d896942293448e9", + "44b0628f84b11c5e71888", + "4bc252b0fa653478344f1f", + "31afe414b9e841f105214d", + "46bc16d9041c2bda07b158", + "34ca1ca17d4004b63727d1", + "1adfa664cf45ca975af0f8", + "55b727631edd20582945d2", + "6649997ef28c919c6cae0f", + "6332e8b1655b1a7193eb45", + "7b8a17b08fccb33f4b7d6f", + "46c01f4170feea6c601e12", + "68d895a65569cf3ef3e3ea", + "782fa87576f745d6c5a644", + "3561d1a2752f1d17dd5823", + "1c1f24204ec4b044c10ff5", + "4ef1c6a1bd63bb6b6207b1", + "33fee942f43e9b7d2118f", + "1cbb8749de080f5bb23b75", + "4680ebb5e7e7fa1e676838", + "2cfe955ebd8c7e4615715c", + "93d0f45c8e78eed19b2b4", + "5411d9720f633bf7a356ea", + "7ae4ce9746d1a251afde2", + "6b6195f4939abc517ea1fa", + "622e4bcd237f601b3f864e", + "552dab94d8fab803e3abe6", + "5fea5590381b705c4ba54c", + "47a6912faf0eba695a3f82", + "62d4635d0bbd6bf8fab17b", + "488702c5b90021b8b24933", + "b44a774aaac3d4d335389", + "7c2eeaa3b5ac7ca26ee5f2", + "4a79a4d35e92cbac8fe0c0", + "145ecffc8b532b7855ca8a", + "409705e5654888d8af2f47", + "4f5cb9e29c3567f8c1b22b", + "2ad535a50fda15e1835526", + "4d55039bf17366425f055a", + "504e8f5ee0e51320af92dc", + "ae1614cb7437dc6311ee9", + "3d433adb4bcd914fcfc4", + "633dad9eec0d451652bf40", + "15bc81dd36a0393963bb64", + "720d9e52c4aea85ae24480", + "16f5569ecf073acc30831d", + "50a70d2086b5ca78a90368", + "7e688d1cbe7e0a84a0f408", + "1f9e8bffcac3e1471f7cd6", + "78ec94c22ee912eded5499", + "336a41277b427813eaa191", + "1705c133c7ba24a2b5c528", + "7b7e71610f1589da383c31", + "58137399c99866772aed9a", + "282774a1f4bcb14e6723f9", + "7b85e0b99eff408f2aa978", + "2a5043ae183d338b7ebd55", + "af99b9d024438cfe9df66", + "d4a270719a348af6d6c29", + "47262fa06b9c5ac8138f4f", + "50c65d8772a3d5db269535", + "20b1838f00aa00d07f70fc", + "ca30526530b6f6f0c8fca", + "158e9251ef94651015ecc3", + "636f015a0c62753b283d5e", + "4573a56ada0a29d31dd6b4", + "367efb55edcaadbb5e4f2b", + "3eb189e2bfcbe180703cfd", + "692adfabb87ce969422961", + "434a5edb31a9c3c6a0243e", + "77664e53908d00007d1205", + "4b11585991700c233f6773", + "207ff6a0da7f13b316c4b0", + "328a9932d6b08a41a1df0e", + "2f927b360b2b43bff822dc", + "257564a39a648e17d015e9", + "73e92ea015629e3728aee0", + "4585b77fea18a0113ff609", + "101d83882a81d0147b4342", + "3addce3c43218484acf509", + "9f0c9a93eecf4de349628", + "465f3b1e25cde0e446d90d", + "4ceae8c6ea35dc274647ed", + "63137369b8d47b6c9c43df", + "438f5c0f163a4dfa04e5ce", + "313d62eb5f1104de5421a", + "9f20b6fedc099ec575691", + "24086a392ab75e649d3cc1", + "7aa96a9fbe718c006a48f8", + "8000000000000000080000", + "57f0f7ecb2d7dad43748ee", + "2a640efe463008db4ed634", + "45769a307f5593bbf72056", + "3abbf8af06f889daf59c4d", + "6d16d10feb1728044f2dc3", + "5bf1d1c71be0c49ad75d9a", + "16bed27a9c005817ccf111", + "4d7797e0b2f77a7ffee785", + "3845bd22f959dda9197376", + "1857324131e535b1b2458f", + "6335fb7682400180e10d15", + "50226b4aa22a0465ceea0c", + "44dd70b9323f17568e4ba3", + "217bd444ac8e9808b3ae5a", + "6c9c81ea487986867245b8", + "3827b84269040363e5e02d", + "64520e4823f48c1f48749a", + "58fc1b58696f8c22cfe344", + "41558cae58d4f9a9001b87", + "38910d873da8dfd237e8f0", + "5eb76c6301d8a849a1903f", + "3b6b43619a3730d5995ae4", + "5f2bc99aad2f27cdee05f4", + "385f7f48a7be6b46d108ef", + "37d50d7838efaf03049cd7", + "665bc65420c0b0a151c97e", + "3d9abe3ec82d9602d9dd6b", + "634d2540fd670a82f219a5", + "616dbeafd6aa623c1a7d7e", + "29702fc1f57fddc3369967", + "25920b5c96127e9d8ab05e", + "3a82369bb1a4da519bbd70", + "7f216769148f0e997c7805", + "31d809b078cdefaaf45266", + "7a6ffa939b86786a779a44", + "68e8a818d524954278bbf6", + "181ee17c34ab8aea52c900", + "7f42b66317d26c3f938805", + "6f37e3a85128974cdfaa69", + "45813314ca1d165bcf242c", + "64add9cabf8efdd5f7b57b", + "46a91d898168488fd5ac51", + "669f4c5ec3934953500b78", + "1e378fb7157cdaa6fc3a50", + "39cdc5e6675ab081ffe60b", + "1cfd8f0d12bcce21589c11", + "6ac77b7cb23565518aa2d4", + "4628eb872cffa1868b96ee", + "23eabb9cc5f4086c74bc31", + "445381f98a1f5669880827", + "3f603c7b410b4c2db2c8e2", + "464550e0adf269403f3e22", + "3286bf159405584d85567c", + "356497a9675898bccf4e79", + "f26a2dc235ace7b34f4b6", + "2e03d3c0794703b9605de0", + "30a18088f5b2af396bbfd9", + "681750fd18618072db2068", + "69fecb55ba6da700789d7c", + "2294095a6b77aaa416cbd7", + "ab8e1dd4d27b02d09fe48", + "7fe887d8c5fb53af79cbd6", + "1ead89a48b89a75ebaa7d8", + "10d0aa100248920b9cab77", + "4aad58987821ba8f33d96e", + "5c616b0d1a7bc591e70e46", + "24b22771f303ef742b8ce1", + "3eda92314bf1d09cb5b08", + "692eeb4ff69b42372517d7", + "494807a247f7ffab73a644", + "23564d97f447b0091e74ce", + "2b81c6e67e55aeb6e93a", + "4669a41d4e444c1284d024", + "61036fcac29b84e5ca02ad", + "2625096534f2cf10d83a26", + "30cb89652c8629b5e0dcc3", + "606e14eaa7d60eb7ea925a", + "17715e6c96cbe096c4f9c2", + "42a81f5e10b5435180e643", + "6d849a39e47370e473a913", + "6116bef6a79fb2fc15f0e2", + "31e8a39712fb3a7a11f909", + "7511506751237c1959933c", + "1e47a4330f0bce93db13fd", + "97342eefdbc78b9689120", + "b1fe15d9ac88348f41a87", + "296a247b4b36d5c2a1884f", + "aef2488954588af921ab8", + "351db0dca5d74808f36d33", + "25df9f831698604e15991c", + "761e42e1c908c2f09e096a", + "5e73615c65ae9e74eb1ef3", + "4354f51efc9392bcd6e51d", + "3f7d2ee6cb32c6bbeee194", + "394faf6069c716fcf8a76c", + "51d8b3e6fa0afa106abc40", + "5aaabbd40fa78dd417edf5", + "32d68fc9b8a9c17b315382", + "6f24ffc802a08273be511b", + "452816c1b54aa2bfddcc17", + "142c59f31fc82fb58a7dd5", + "7233f4136f3ace41bedb12", + "2c18c59d95a21961c42f21", + "7eb8dfe838ec5ef9d3ee21", + "19915afea85d27cf8df109", + "4e1162d634d0d5811a2441", + "43e36b6d5a937387b49f6c", + "295932427e10aface718fb", + "5a2c8ca58cb488822e9f49", + "622b540293b1275c5a9446", + "753f0795048443573283b2", + "3c2dca32abbdc029f4a212", + "3fac097802d8f5fb376d58", + "668b9e16f3948f582a5b94", + "1a08e273719d3411178252", + "f4af5a6143d8f44e48afc", + "54ad7fa69dfd0b4c19f7ed", + "65cf5014ab215afd17cef7", + "4c3c570182916f32a6f96c", + "2e8edc0b6dfcfb2392ce87", + "3950591be73642bfa23264", + "559752d946b02da4c2f657", + "554f5cfd133bac2188241d", + "3c1fd5d9a6223b2ce7b02a", + "34c50fc58872b7325366", + "3f8cb5eb229acba822b48d", + "2aead0dac004faa8ab67e4", + "144a6c20d0a8d5dce2b12b", + "5efbbe073364ace07f02c7", + "73862de61086c1fd5e0678", + "78aded63d2f85ac948c449", + "51603bcc8667777e664f9d", + "724f8bcd40bfc9f1ca0c68", + "5169af1cd74986160450d0", + "5b6b96beb19fb0dbada937", + "4b3a8d22fdb2c83abba9b9", + "3ee5a2cc90e335867f0ce8", + "33567e972c90754c86a5ff", + "1c07c875b3a9cdedf7611d", + "3b55da90ad9a162be1756", + "339dd42a42d94342bf8399", + "67a3f20bb5e980364816b9", + "4b6ed31d0715952774511", + "346f2a2b086e1b35095d7e", + "1c614cf9a9d87d69154c21", + "5e263af53ea065e044720d", + "681a88fafe4e6f0620910", + "1418facce22bf24a5e6a51", + "786571b85b2768309c8ed2", + "4d0e82bdf34ff4cb3a603e", + "7c2e242ec2b95580a9b3bf", + "54fc920cc0125e53a92499", + "5696a96208101739ec4ba0", + "636b15a893c301ff23f5f5", + "4956721f6a2ced1fc736fe", + "518711fe03b241cfb95160", + "2e12097225e5783b545083", + "7340d7daed67bcc5cd4391", + "c075fe6224a62c1010fb8", + "4bee7e482b290b1d3869be", + "7e8fbf173741aea1b95c93", + "5a1fe9fffdaa20f4ab7eae", + "58d7de0f8254a81b5d0f5a", + "38793daa7aa086d5e70798", + "6157a651f2640a73f1f90", + "7a6d5b1013830761b58026", + "46734211b970f8a6448a60", + "31b9dd76b9ed5f88dd4609", + "46c6313b3914ecd376b959", + "3e4e77e268fb6e7602e96c", + "74d39a89d87bdaa449438c", + "7684536a92d49a5af59f1a", + "71215d6fd5e662d930a424", + "249b7a4d080be0f548cabd", + "1bea5758655f1400515db4", + "7f45c48d28fd31ceeb3fd7", + "1812bd60b720f8920fe80d", + "27244290f774a00786ca95", + "5566a844e8b1c572f69612", + "2d678e77df571d7ac4859d", + "e243f28e043030ee3a43f", + "36a3336f56c91232544e8c", + "179d4134709978c75bf6d2", + "20ea7b335b7621642b29a6", + "78c437adc3b6ce946cdd", + "57dbda5c8b230a87030357", + "4dcc6ee20983f0020ad69", + "5725842b7246179896a39d", + "6b1cbac9279eaab9b503c4", + "1bc4e87c1100a2d26aeff3", + "2d70f946f2915679b314e6", + "793fd256b009d961487499", + "ee9d6b69f13ec8f385e6f", + "4b4c7f0a822537ff62cdcd", + "48b920d23514d06befaf52", + "2df30214a49a31c21380ef", + "4c4424602626193266d943", + "2d5bb2b553d4ed5bc0795d", + "681fcdfe60f23e3be083f6", + "4f9634be1ae125361bd4c2", + "1ac96b01993da8677b2fd7", + "4cd15a66ba5a2f18c8823c", + "3828df7e9ab6753fb83dc1", + "2071c913edfd4fd6daa6bc", + "669e7a28f7a7c30460a80a", + "3b22ed42f28069f29c280b", + "5ca51c82df4def8b1588cf", + "7b2ef1bbf74c4989ed5ddc", + "40ebb7bac65bd815945e49", + "4a469bacdcaf5434109262", + "1a14d5b10cbcbb9ad3216", + "65fb4589487aa5a16bd767", + "283508a2ed137e839b2207", + "7047889925ed18a885358a", + "9d8d18a72607c311d6f76", + "6a1d554c48496d8d543eac", + "594a3b6273b1ed2b542eaa", + "67cb80a136db30b9d60d6f", + "5106bba99e6268d7bef3e4", + "6fff35974d5f0b86faa46a", + "5f7482c17a568566c785c9", + "78ba33e419cbc7f177437f", + "1f4b918e0e0d47c89aa2d8", + "50cfa48cfb994ab2b77aa3", + "1e4fdc54209c2229d7ffcb", + "4431184365a358de692057", + "7adeede80a05e40854e6e", + "9a39acfeb3a1b4c2bc79c", + "2d2a15867cf9361defac4f", + "3fdb99cce8884ed923271f", + "2d127e6ce6bd0f1872b1", + "1124cfa0e070cf6fe3c638", + "65b7b50446c767e6fa72fe", + "3f0d18b1efb7248950daeb", + "74fc1bfd19b3cbc9867bff", + "34f0f61d6d8d062b6b9d9b", + "260d6ba9444df4b85dfb92", + "4f75e255d88657b2ba4755", + "3c3f770d148b4692e25b59", + "1eb56fdccfc12b22db2048", + "3c81a9658bae42644c317a", + "783c78a9025283e7188a8b", + "7322c20a545b3845b54b34", + "52d104741cfa5fa49fa55e", + "6545cb112ea4be72bc80f7", + "5bcd4418d37c976110b37c", + "34d59de432c0dbb24ae55b", + "4759751a101953dd340d89", + "41e135572f9ce788481248", + "185033e62f44aa85a7799b", + "7047a4510b8c2107737ece", + "381012de4c9a82f9ef1d72", + "1167717f2d3d6238b3d21d", + "2dac9d433ff98cf24eae81", + "4f1c406e243fb2af67cd42", + "685afb7cdd699d5a8f020e", + "4c6a0f6de7e50ac450c0c3", + "59f0f5465ff1e16be9bfb2", + "594ae94ad86b9a719f54a7", + "9225712405a5bd9ade58d", + "3650c22d9c1072238cfcfe", + "36a92b305c21171dd5a616", + "5ba344fee845769c2c86d8", + "3ecd8205beb790946eaa8f", + "5f84ae1685459ae7e24bf2", + "62a01fb38e5c88098fbcc9", + "3c2f54ef99be42fe30d32d", + "215dcfa076749277897e0", + "36304be3f0777300703af", + "147b65e0e829ca30fd88c2", + "4e6a2eb425fbd18fb02cb2", + "2ddac7db8be22e88618b58", + "1c7831e5dec267ccb26741", + "2f3b362f4b742eb82f8a34", + "5505b22d0ddba48ae2020b", + "522afb743f67b3ca56b20", + "81dc886feeee4945edceb", + "77c4b593ec648025df03f6", + "4f0841f63a0c64aad5232e", + "6cd2d14ecc5fc7c2c1b52f", + "3827eb26c007235c46c676", + "484281d930b8ee32f366f0", + "25f7e1ac0d4153b6365c1c", + "2600c04d980b2307982b22", + "6b923e02dfb1da62f37204", + "287593985c21589f72c821", + "c8918a059fa77676f0587", + "76201f5e0110544f41d9be", + "770b83b55e13465063e5a", + "412ae12837a29724832877", + "5cd8f5f9eb6806f67db613", + "4eac7fa0d6b168c3bec4e3", + "5d2972b12e50e727a2721d", + "5517c01ca3bd4da9aef0ad", + "11ea8c21342ce42ebbf9ec", + "413f256a64feb56e242e90", + "29f3402339c3128a1e2c1", + "51eb860c87e1e5b70bb623", + "369c62fe5aafda2a550912", + "2674d42d16e97493518d2", + "6b105359a1a68d94862411", + "527e969f4f6eefe6289ece", + "7ef4c5361ca08ac1cb6216", + "3f3aeb0a1df198d9c95768", + "152dc9fc63d3c1eb6c335f", + "7754a6a5fe6be54c00f4c8", + "222ea07afe042cf765ce5f", + "1086eae159340e441fa0a4", + "6c03f094dfe48c9743be89", + "1fe069b8c57a9fbe5f6009", + "185254fa056de9af1a6bd2", + "3018be3223f82c7f0c9ebe", + "48a13c03c03191471f1164", + "3e94b32e50da81bb5afc03", + "4d08f00a99d95d0043cc4", + "4636e2935765905adcc41b", + "4bc9c371d07d4a025a739b", + "83bfa3efcf5b970ad41cd", + "18bc8168956ccd63ac68a1", + "366546b3844bf45b7527a5", + "363a65fc59f4a8184d3d78", + "5ef30e941639d08bff19c4", + "5d66f0d9dde7339dbcd24", + "33d5a814c00e980600811f", + "5ccbc128a5721a5dd853eb", + "298200a0909b55e97005f2", + "703a6cf857e651748dc09a", + "547264d2566596f18bbb5a", + "760b4f231686ca10ea6ea9", + "49a3641c16382337f3c777", + "33525d5afa91fda7d5fea5", + "4c028ddef259fa2c7d4868", + "575d4696bb0e4edef99446", + "6da26efc24e2d57c26c090", + "41e1bc8a63d042ba714c97", + "5f24e71937dd097c0e8678", + "70b9ea82f6a6c02939510c", + "738abcc274fbdc4ab5efd7", + "255358696f5e9ddbfa467c", + "6e9f47f009d809f84a56da", + "27c6ad85e824da21b1cf9d", + "46a78cc83c010019e8b2b", + "6b828169b3ba13bbcddb05", + "3f5c0a52d2b564cc250982", + "63069f756c8115e5fc4c52", + "55744f373c8b8520d62370", + "43c2ec8afca87567ee9294", + "6354a865e088a0488f2701", + "d165a455f92b5083e0627", + "7252d249ce8cd4fb010950", + "79790e81fd0d2b63f9d1b9", + "5e147628ce9e9a9493f495", + "37755ea728b820f0ab2bdf", + "184e317201ff0ac25eb6e6", + "178cb915d7350e37948956", + "5ab5c85d4bf835440ff962", + "1e2bd3f41ae5c299bb720f", + "722f9dc13384479d1c4455", + "2b514798a553e5bdcd8ec1", + "51890cd139740ee3c35339", + "75d3c5c33e5a2023adfd4a", + "15da282cec1859a9591ab9", + "7fdd8bd273e4a717226cc", + "3915d17a2935e69936525d", + "78acf4423afa2cfe1a6fc1", + "4f140e806dac75cc67fa3c", + "37c6007c4a0d223bec9e13", + "1ae82d51e4845bef8c5d14", + "65a0cb312051f321a95f5d", + "42aa10dc273607be680d72", + "3e26ac2b23b8b913845e11", + "30bed73f7a94de9252a38c", + "750f475708a1369e3fcc26", + "61ade8e7a0bcc40ee4c2a8", + "27b94ffb61590cd0bcd89f", + "3f1e6a84c6b836f245c178", + "239309f551f303d0037140", + "211dcdb529a6bab73ad8a6", + "7869636f37e63a4ffff7cd", + "150365cfcc4a012a673c13", + "2791e42c7f90ab8d4e7fbc", + "1501743c447af65014399b", + "2244b09bebeaafafb0c481", + "36c0bf9a937fe6ca772d0d", + "419e79b02e607a42e6e091", + "400f76e25d392f347d4911", + "5ba0eb3a703d0e42cf4094", + "2ccb45ece6ec9abb9396c7", + "44741cea6d95eb07e7f01d", + "2b3c80a17ef583b6205fd4", + "43fea0cf26a3e256438525", + "59a7f220e101601c1d1b21", + "24974593a8d59a89588659", + "14ee39af97cd5a57b0e17c", + "4807e0d9a38d358d8e14c5", + "64d8389dc8d1b8910fc0a", + "6fd170c2ab312a1f05d814", + "68c4a816c641b5b1090781", + "24e71c2d01e956269446cd", + "3bec30574a99903f587887", + "2b4b238bbabe3c70748eff", + "4f0024b5b5580d91de0338", + "646ce329dbe03b0b8312de", + "5ba2a8023e5bb50b06e03", + "19537a8ee281cd28d6388e", + "10aab6ed7d1b631aa4b45b", + "6810dd5945e01cd2c90841", + "6ac2b70efaf88fd42c4044", + "aa480c5cc76379e0cd2de", + "64532524c99ecb3c365a41", + "321e3fdbb0b890caadc570", + "54fb5f18b6d001ef7be401", + "364f70dfdbb439b78e5236", + "9dfe57d1a9a3265476d14", + "169665894aa2b356779b61", + "127c199cd032273073f003", + "fa33fcce55fe6a32e0915", + "264e4b26d39119bcdc0985", + "593c091517fff61973996a", + "77da1b5a2124b6c9e11847", + "32e5682bfa3fd95762512b", + "72f7dab0b2d2a35e62478a", + "4356ada1ada2921353892", + "aa2cbd696160321682a6c", + "7f8bc7233e2784039454db", + "22884c181cdc222cad8e5c", + "7203cc213679d179eabc35", + "78a4c0445f77f31209ed17", + "58b95d74eb4e654735bebc", + "6a7db7fb47d3a18b620d6", + "63942ffcaaae948e9056c4", + "a2e07f9d73c5e3effd370", + "6667dbaf666f92bd61da79", + "4597c1546c899a3656689", + "5fc3c4b7f7ad5deab829bf", + "61170002cc409ddc34946c", + "736d05572fd4ef85eca2b1", + "1a5853834033d093c63d55", + "bafe681e7e52073b86d32", + "1c9f86b8742e14b6caf79b", + "3886dff828cc76dd830466", + "3b98704f287b0ee4e659aa", + "581eb843dc9919f85a6644", + "697396e6df9539532709dc", + "63606d420b8e8397875647", + "43b23b71c3202b31d91018", + "79486109c44990eca52723", + "2102dede4011c5cfefb7eb", + "235809998758cf7e4acb1c", + "233860a2ed2d566e131431", + "305213c4b30a9e8be153ce", + "7507998b275e3c9bd4e10e", + "64f00973a0eb117b548182", + "1416e580fa8bcb421dc6ae", + "36735381ceff20a76e32eb", + "45f5960a9db06a62821bf0", + "8649a3995ad114bb4d72f", + "374a0e75bc76f0adac7af5", + "6565aab9eaab16f7430411", + "7dcf3e6b7d3d02033c946d", + "65c9be7a29bf45e5992a7e", + "638d0229863032ef249643", + "297ac1b2d19eb1e6e32d87", + "6f339aa4d977875b1f1f80", + "438e5a19094bce43b5b5ae", + "4d8b0cd0d3401fd04e351", + "1b5200adee3adf189b056e", + "1de1227159008ec9b59ac1", + "75266a81bf7f77865e6f", + "9377e0e5c8d0de1856f6c", + "2fd82a7276af1cf8b372ed", + "6dddda58fac4e8afe0c9e7", + "1d85b86a2f3f20e2832ec7", + "35accc5a1e3fb474285daa", + "3aaa2c73e60edc333c904d", + "740f62900b9523de37b6b0", + "7401d0da6ddc33225bec4e", + "3e985c35adacaa90f5715b", + "62c36a3627b9d2b3c18de1", + "7b71ed8d456ee35292c960", + "2648a635c5981b8daca07d", + "2c33c53227ef5693d69f36", + "1540f88099c93111d6c8cd", + "5d9383670de64bf15eb49b", + "2b23443976252ed21088d1", + "7fa540fb3906a29b513bed", + "2f88b1c87d7d02f6c2614d", + "1976a9fa25af6d21cad47a", + "444a50dba1a2bf390bea1e", + "11c773ac555182d789142c", + "3b929cf6fdabeb45375120", + "15bf0eb485af1135b0e453", + "126dab6c2bfc9b83475847", + "c06cc01bfe2a9b427102e", + "6a545ca829ed278f6ee7f4", + "23dfbd70bcc040f36d4c8d", + "378ef780c4d32c3f15b3c3", + "7b115c7c405c6e4356bac1", + "1a789636807476ba5bd789", + "35fa1fca985387fb7fcd19", + "21b466e3230d809af7aa6b", + "4d1a8b95ded29dc79fd401", + "59bc93698864451646a053", + "7d6f33ec4a123fa281cabb", + "168ebadbade1cbc44496d4", + "413278937e6487a988805d", + "55407685456c2cb8311d26", + "79d07c6a6298d34020dfe7", + "65ab167d8e02a8df26439e", + "7dfd6cbe22024260a179ef", + "28d6cf3e20845dc7283634", + "648ea8b083a9828f8af17f", + "2f64ac4f819f8343111866", + "17da7c01f870089371d6df", + "50f371336a648ade74999b", + "1de402b5c6118ec8861aad", + "48ede8d4a9a88f7613388e", + "5f70485b00138272e9a41b", + "65a1f7025bafea5088145c", + "68d439e82561e55cbf1eed", + "3d8509040aa8739f034dac", + "2dd21df4dbce295378bd06", + "111d6b945ff69be530cfca", + "c1fd8fe80d24243e7b5eb", + "42772160e3ea402851c9c6", + "49374e550d8b335cb151d2", + "71faf2ef0654e97e0c23fb", + "4328d17f00529ea0fead97", + "546ec9785ee72a2a72d886", + "5d50e00035655b4d4ddcb7", + "4b53718060040e8179d82", + "282a80b8de04941c547168", + "73673685484b4f3492976d", + "5db729c46c687ddd7690e6", + "2cad73640590abfa319b6a", + "21ba4c5acd17d59fca0ed6", + "186605e063004c7e4a9375", + "2f687a83227d2d20f3b227", + "30abf45ef025352e681192", + "6a76e3eb445dada83ceb12", + "7146b897c3d924725bd0cb", + "14b68001dbf2f798322812", + "54112eabbed42ad31637c5", + "467db4fe225847525ef33f", + "25032025485a4979b90394", + "bc149e667cbe5a17ed77d", + "ba357a389bca1484d7e54", + "34ddcae84938327a3cbc30", + "2e1709b850c77f2d508334", + "15db077682cfbf170ce259", + "280bf57e6ab95037683d33", + "14f23f2aade2de50fb350d", + "57d0cd94e03404b9cc57cb", + "3282cc1545c9e77ce08abd", + "567508a3d2a7b4fe3b395b", + "16d8ad198832545831c93f", + "7d88a8aadc667bc60fcb2e", + "65118f1b7c366a8bbffcb8", + "6766e290c73bba54bcc710", + "2aad9e8261535baeb20b71", + "4ba668ebddeaa069043875", + "3f98705d2cf6346bf00972", + "541a69af40655a83e366ca", + "215c7e9a1d796b37a56336", + "419d9a35dec3e5f421baef", + "163690a8fd51b113410cc0", + "1d165ccd9ac1e4efca4a32", + "1d78f3d7e887debfa04bf3", + "6b421c0667b336723fc0a1", + "2cc7417260782c0d2394d3", + "21887a11425a371d17db86", + "5be7c40d96f7c97153eaba", + "2e061928a5c3ad9bd6d9be", + "7b398d970ad745817bcb61", + "f7cdb22a187815c33c5e0", + "a4f6b861d9a460f5b65a6", + "68d4b88b77dfae0da7a5d", + "4e4199871aec7ec1f99895", + "68f5ab17da1cc5dda22c36", + "1901320882ec0093fcda5d", + "76dcede51c5087d374b20d", + "38c3b4008c9d0442e7b602", + "1edb6eab35de11d4922150", + "5c53790457f0f66baaae2f", + "664ad54353749f2ad36105", + "45638582a87d07b0339df2", + "18b021fe09fa8bdc44e567", + "2acc282877d9cac38e38c3", + "7bd177160999a650655c6e", + "6717c0177a36454aef446a", + "6334fc3ff70d17dd837781", + "499a1abb2a1381278175e6", + "14da57f8c43c94d5133d50", + "4a1381ccb93c34dc44cab", + "7cb4b7b324b314195807c8", + "59f2c50a64b0c2a3e77442", + "426b930b670412d271a091", + "38aafca45b266dbeef6fc5", + "35d63c19d36b85b5e96648", + "31204f9f1e25342bbe28db", + "560e1e8aafcab315236068", + "5b80c6e1a5c4dcb3166335", + "1d41ed28d87d24620da24", + "38271b1467ee062bfe15c1", + "2b7758dc0945a30687fabe", + "4fb33de912dd8d2f8b8081", + "4d6d3f3602597781bd2ea0", + "5b509a0106f1d06627c353", + "7ffd3daf76b1e818134f24", + "858c45884b129dd66817a", + "70c9c69419338ba44d6b8e", + "17c5a39deb46d102235506", + "2adb843a58d472c17edcb6", + "798b816a4dea5ab964c64a", + "68705a826f80224f09c337", + "b720b9f07a6b1f41654e1", + "44bf623ac807d4c96747f7", + "16eaf321bf41ee635d6d46", + "37107b083cae132372e4d4", + "31e9d0607a42f7e54a8c81", + "4d23f5ec809ab5057c2705", + "10a61010d82426d21109af", + "1ba28761d3577e14d38b38", + "c57749387141da5f8fd27", + "4afedaa595cb8c309d3fbf", + "3fd90efbd4f0a4e173f589", + "49b4801e9a2a64a27691d2", + "7255e6805e164cf9788cce", + "62ae26dfe2273af99c4830", + "7e185faaca849a7f135848", + "10cc6c74c4f9fcc9428f7f", + "152b3e507f8b7898991275", + "15a3be22e80e0f6f498608", + "54e5b2458bb84fd7d4433c", + "656c647508629462e9a821", + "4c60164f9602341914167c", + "2a17c7297a08a3839ca0e1", + "47efddee37fa0ef6a72a47", + "106fdb273227296116f40a", + "524a00dd634d2f57ac7c6e", + "1e6b9387cb8fb6494ace9", + "25d293607604db30df2e4e", + "2a07033e306623cf4e37d", + "178e61138a7396d55d224e", + "75aa7d0184dbe8ff376045", + "421e7c19466e0847ffaea1", + "732b807455afe5538cf678", + "1a756f67d7e3e663369a04", + "389f7a523536bc08e2c52e", + "3a0c64739838b20476e0bd", + "4346fce81f02878bbc28d6", + "2f63eb0fae8122aa717440", + "59308e5db85655d5ae0c4", + "26b549a59dc35ee5ea7b82", + "4d89a145aa9c4acc9cbc8c", + "71b31c9be0276caacd1146", + "718c4a4aea9ee0da236930", + "7222af7c6bff611029c53a", + "7f4b55a70795b9d26512fa", + "32a9d4d4f421cf83f9237a", + "53cf166384d9f967e4ee4a", + "4566810f52dbdc6e52d908", + "308ab3a2c4d7f4df4b6a31", + "48a0fd415822566b2ecfbd", + "242cca5b643a5f97a01a20", + "1c28b93f693054a06fb391", + "5a2cdb29cc6790b45d1f04", + "5e8a5f959be2a17534c9bb", + "3fc3e580d2ad754a34bc48", + "6bd645b33c041537bb5186", + "3019d2c9a4a70055fade00", + "142fa830b7ba88d08608e3", + "47226da695602ab6e77894", + "70044b2b283269e2d14166", + "46ef25878ebd3ab0b864d2", + "557bc3fd4a1a6866c5d19c", + "7b0ba619013363524f168a", + "48b438b41e1bc7e58e6ef2", + "39a95d47cf87d7d7d6bc8e", + "27c1b7b41af947101d694d", + "492683ece46681328f9912", + "3ff99310762f37d685ca95", + "4cfeaacecd47507ead712a", + "38a39ada5dac01b5c2adf0", + "dea3527d089eceb4c22e3", + "7b084b907f4fc0301dbd5", + "503f8d64438b7a99b8de08", + "1d9a776cbeec9f5dec9407", + "8a006b686db9c86eb0756", + "144303d93b170584849f6c", + "6b5617e9152db554d999bc", + "1b9850e5f0f8fec4d967b8", + "20fe6d6e332154329f831c", + "5cee3684d600afc7804db0", + "1dc0a99973375f6c4a4583", + "4476f33d15e77d3ea6c712", + "11f2c34fc87060adca2837", + "71af54a2496a076b559a6a", + "2ff21a8761b9bce5f34f74", + "78b5c76a3ee8c2ef071fa1", + "5738f30e5cb40b4ed83e60", + "59fdfd7775c9750e48d811", + "7b609aae44a59cf088c570", + "4a67b54dcc404423e6b631", + "8ea7f70a71ad46c0c260d", + "5ca4bcb81d4d03018b177", + "169566a480e42dcc8863ac", + "789addf402241ff646d77d", + "13b16e69e645c1703bf7c2", + "16f732c5fac8192629ddb6", + "7731327e4c6ae66c8e47a1", + "cb8a50376e8204b8b5ea9", + "18eecc5a940548e7c51e57", + "3ca90695aca0fd32b28871", + "728caa6061cb6ff29e6b21", + "3d66483aa6674adb6569c3", + "1208a98ea1dd68a01d3ec8", + "5186a4a6ce8351b40466bb", + "79c75783449d733d93b4a7", + "52f87910ef7e6dde1f16dc", + "57aede4ca861e5051b15ea", + "70f2550983dbddb8957b2d", + "720aa7a7bdeaa025a23a54", + "3e7db1002a9116a5e20032", + "25d1c185377c3cd8e704a2", + "794294f26a938e1caf3c0", + "522619b83283553c71de74", + "4dd985f2fef5c539fa6a96", + "442eb4a36ab0287728c1d2", + "2a2b13112979d27489208e", + "4d43f85ff03e3cd18ef302", + "71e916ff79204bdad49695", + "270dae1c5ccafaa07ae8ff", + "3a2f442f3b3a9a2af00b28", + "3834a1b7acb0f05d9e53ca", + "5ca6e41b81529e38a59f6d", + "3164747c95104338a78b5e", + "b66201b62ddf6d13c5534", + "3dd366ce71f1fed428c326", + "12413ef53ba7fc6fb5cd35", + "20f6e36fbf07174b587397", + "362261ed7c97591714ea9c", + "1ce2a05bccecd36df96b64", + "358d745e0bc4be1c3f4586", + "221bb5afe07669d916e136", + "624d49c04a48d42d76c466", + "a3cfbf8b779e15bf28c99", + "28eb082844c0ed277d2520", + "4c7d0db8193430b75f41f5", + "3c9ecb18a83b901f901704", + "735a03f218370f8bd85ee7", + "4db4f1a602cec485019670", + "70357dabf2c34c8309c723", + "ecef39a1ef4b4d1e8c6dd", + "2cfcb08879a9aecacf316e", + "1175d70c2c07855db37245", + "786d54b4d5ce74ddde20a8", + "ff53eda132c9a3cfecc65", + "728cea43531fbac95263a5", + "20601a054af9d51633fab1", + "127118c35aaf80dac2a57", + "1db83df0a168bac450e4f8", + "39c167fbee27f65e96cc7e", + "2b90f954efc9f58a07a363", + "63f5fe049f46d509d141d8", + "75ac7a48082d5afa148e7a", + "569bfe59efe21364bf57e7", + "475131d01f3e6dc3b169fe", + "716991a2a17f536244885f", + "150c29ddf5483fb74be06", + "65fe3a22c7d35ad3f875e7", + "1754f51aa79c3b0803bf00", + "a4d6bd96f61637d730c9c", + "460372cf36a22fb6b9641e", + "43dcb4450a256b9a0eb673", + "10fafca3d5f71faff8f1a", + "177f43e8d62e87c66b9da", + "420c1c0074adbe0616df4b", + "1e39f05dac576881e6c295", + "7234cde8ecc6673caf864a", + "661787ba011711628186b7", + "6473dbfbe4a3f63d08e3f2", + "62b2e70d411eb11bf0a695", + "2e684b7951a2526d838fd7", + "5b4aec35da23a27808974", + "51e267e9a5a7684ebfd343", + "36b36922114363ceb85a26", + "5687a42dcd55b43227f657", + "3d28e1c12f9c60e500dce7", + "6bc6acd592c0200b749e07", + "773a63e6b7c9e3bec91272", + "536bfe32ac8da07b253be0", + "2146fc84389596cf6fa8ca", + "12a2fa8c4d06a694b748c6", + "49ede33966bc3f0dc8757c", + "4f787847feba11bfcbc764", + "b2687172956319218655e", + "4bdbd2765933e2b1d70563", + "1ef9edb1f958cdf81fb9d8", + "6e8b2732511303a48ef731", + "3608208e4497b40a62b3a0", + "2c4bac0a0cf06ff50ff71e", + "784bdef1566f244d4ff44d", + "5cd3a1cc8bf78e4c7e3747", + "418b73330a3b4d1a80474f", + "5f87453deb48ed6c9a1afa", + "3d9131aa5802e27a83eb61", + "61539cf7b388689e7a260a", + "260213253056e29f0ac6e3", + "2768a7a783d9baa4e5cce3", + "7e61e3317d07a1009894dd", + "6927c4b12865ac8f053dcb", + "352d204330140b3786230b", + "67ae2ace35fde529154a8f", + "7e37a126be9507ba4c717f", + "2306ed04565a9cf9fa84c2", + "6b380bf5d71fe523ad1e4d", + "6aece787aae5251b57b3ae", + "7f2209419e3163fbb4cd8a", + "376c7a8d0fa0abf4c0bb7c", + "39a26bf8336439ba9968b4", + "620c14b60053b660420c4b", + "19675db116558d90bb4f6", + "2c16632a312edfedcc7f72", + "1945686d70d9df98093dd1", + "62e4e44df51bf11734aafc", + "5d3293ca54de6a3aa06b08", + "610d07557d991d9db3dea7", + "6b25878a1ec102b9e883f1", + "5d29345f097e1dc041bc7f", + "797d4c38129f52836fa5c7", + "5bb2eece8c95a515d2e2ea", + "451e904c04882b739d233e", + "4dac1ce4b87e60431b8a4d", + "2f8592e02ef759cdd34c72", + "7c1d3420db42a6ffd37cef", + "4b0d1ff6297b378945b906", + "744db8f7e25f69bc47f2cb", + "7fcd5bd9328b9f06223a1a", + "37f7d323d5bf332eed1bcd", + "629e9c894bbbebf06d3299", + "d427f0f9d14ecf4c54fbd", + "71e1aa5a9aacb38b66f605", + "361fe28e640ec02ae49613", + "551b691726c66f9ec1f9e8", + "523ee7b96bbc2b0977b4f", + "52e6bde0fed2ecd82f7bf", + "3a4a4ac73bb38c0c48aea2", + "207cf80fa76e8708f88dc9", + "2bfe7376e8ab62fafbff59", + "7b8ff43621b7fb13c3edd2", + "726dd56f61c4c5016201f9", + "3915c71f3b447b64ce4513", + "4781781ebc739ed9d4e35", + "3669984e1ddcb753afb878", + "6c8071fad8933706efff6c", + "25330fc3e5df50eee77cd4", + "316bc661e89aeb9e7e20a6", + "2a035934ba5fafe2ebaf47", + "515a0593d1e619118d226b", + "72716051b13a2c1876c8ef", + "98079c36403a029b3f0bd", + "388d8c3c958b6abcbf6aba", + "3d9a1023138b0e9cbe7d70", + "7bc0acaa724475da5a8a83", + "4a266217d4534cc588119", + "62baea1b89700a3953e872", + "5fa826fd6352f83c34bb5e", + "71be60f1312db2fcc7f045", + "51cf9e84f5414c7907e79a", + "1fc064c4398ccf6bf7b1de", + "70594464b46de9acc11f02", + "4de3353d33028c5f557394", + "15060a6e69612092d45768", + "2142584bb5cff6c1e5011e", + "7eaf34148ada80711a86fe", + "64f201a4086e40b2a3a19d", + "2d794034e6ae324ba7041c", + "56359d56dcb06ea3ab68ec", + "49d6a78a88159326775c2e", + "32c2902887e1700cd5dddb", + "c8806bb60205886d4ff9d", + "c0ecef4f88f5957d4b1b", + "b0715d55fe0c1edd9613b", + "b512df0270e6ffe2d4a9f", + "563e208513fb23ff9ca7d", + "54c245a123767ef7f22e33", + "5e83dc6dedd0679793feca", + "3c53d6131f8c41d5d7317b", + "349470b19ee7a8cf922b33", + "432c0a15a9dc31696b79c7", + "3de21ce46f7c8be3bab3b9", + "669f3588d7a4ca7ee3dd1f", + "2bf32012cc6354c709ad2", + "2e5ffe59b5dd3843fa4c17", + "601b382825c1515525a19c", + "78dfe864170ab14a408743", + "6ebb0dee9291bd90cd2215", + "6f52ff1c7f6dba719401b2", + "d16f53a28b7042d305524", + "67daf6ba4dc4d74236df77", + "72118d192add3aa4c1e0b6", + "7e1ce3bec1e98dd35947ed", + "2330589e6c22439bef95d1", + "214d49f3e2681b232cf62e", + "ceff6274c7b15ae86dcc", + "ee736adb9b9c1860d483b", + "550e4c9178e5dead2f815e", + "651be8b59b15d629ab774a", + "655b44d3a92231714b14c8", + "1a88cb781abea4a70cdfa7", + "7a520385f587099a8da6a1", + "42a1f9791054781a203d9b", + "1aadb770481974ec7ba970", + "1634b76faeb97237505ef4", + "577a2773ebc9e2412cb050", + "68075aa010a2a7afcb2078", + "e5d22d0ba9e3194e2337d", + "68c1092ddd7cea180b7a8a", + "1f6a141f6eb54cb95d54af", + "6db9060a2078f4de4b4e1b", + "21ac3ebe991cfe1bade37d", + "45e67b0777cb6facf28d74", + "398768a52710b109c92dcd", + "6c65a41601a28b4854db0b", + "3fa82c77c11ef3ce373a08", + "2219a8eabaec2cc4da44cf", + "25b286320c27c0f91c388", + "c663e7994203d116af45d", + "373211f704832f37df113f", + "33f6606f82062475e2caf5", + "77ae05c9ad4bb1a82ee6f6", + "72f290cf9ea470dcec1318", + "20cfa0c6bfbdce5e399a70", + "384ac895940651e4b3df31", + "2a6da3e3f6425cc4caf185", + "3559d5470cc8be88bbee52", + "731437b69ca76a93992caf", + "31f0df7953457ce90524a8", + "7fdefc35775213402acc91", + "246e8276fd64f7af18402a", + "1e604eea4a6fb7804d131c", + "f6074b1e17e08713a2a46", + "23931a4d64503bc81a5a33", + "6395a035a6a5e009dcf586", + "23db937264552bf6dc2858", + "50e45902fe1a308ec88670", + "42e82d8613957e0acb2b09", + "3d50a612150493864e2df9", + "1f08599df3ce28d2e2a99", + "172e3a20b269ac416b7186", + "624f69e6f91d2b9574cb8", + "33b05c78a18798e4462d45", + "5d5e844e1fd78c36c3341e", + "5a1b57c203d09cc8a22696", + "775bde6bde2d0aa4187fe7", + "4be11f1cd60954626093b7", + "571513666bf5e4e0b1c7c0", + "30e484fb4ce5927a937373", + "6ead11e0936e4bb4e855e1", + "14b5583a83133add54d368", + "361de61b4e6057d1cb2274", + "24364b397921eedc03333e", + "3f26224827d27901ba392a", + "147a0d7fc26817e7251ada", + "4debfa77d5d5f3fa106f86", + "1f8b63c5fea99ffd6a5348", + "59dbf0c177e94a664cfe3b", + "656e5b10b9da085176e0e4", + "678fb8bf7f6342c5764339", + "2cd2d00d4262f35754bb13", + "67b770c97867478cc69b37", + "bac1f8bfa0e63045ec3ea", + "4303859a49916073987344", + "322164812a5696cb2322b0", + "50148cebf8644fa7375aa", + "50b37142bd10ca63ad3866", + "5a86321f172c81fbf185ef", + "4972dfe88d7e4fb02ffe72", + "3aac1aff3b6e14d31a91e7", + "6d575f1601945a3ca29eb8", + "6c290f053f3f46327ee8ec", + "73040349f8459e94069012", + "2dd44a6d1765874cf1dbb4", + "52492b4a4856d777ca0682", + "76d72d56a09f253d257f0e", + "6a4862d59f8198b4ea0fd5", + "ee2c219af9300476a7d41", + "60548a10984139e59f5d8a", + "423813f9eb92bfadf14d9a", + "6a3f78db4e25085a772f7a", + "a3d31a1daca53878fe695", + "1c24006c67392d350aebe9", + "5baffc06fe51f5caa49a4c", + "6f4a829757301eb1143585", + "202377a9328fcb8f661a5d", + "6506edb4005521bcb61671", + "208dfefbc938eb8f166f28", + "2f8aa359ac5538f4834ed7", + "6b36296c1bd668243e920e", + "7856c391e8828b90a94afe", + "5728f13fbf1367c5292a3a", + "6db3eec1da4e57eacd7cf4", + "520f0b6932233966b7bdb1", + "225461e731f47cbf2cbf5f", + "15bef1b795296c7e8862d0", + "217d231f2ea4bf28c97e44", + "31e4aec6d42e52c762e301", + "16103ea0d454ef686ebf4d", + "34470b1eee2f871c42ba71", + "5d172643cb569d9b2ab357", + "45838fc0d9bd4e814df398", + "520d412f22645bfa3f3a33", + "5dd2532249188dbe3d2539", + "336699d6c6f15f6ab914e2", + "48384f03b178aecb456dbb", + "358734094106c4c77371f8", + "13705ad9594243161047cf", + "9cc0a7524feb44aafa989", + "2f615de4e96f8f9837947f", + "4f571e68d11ba0c201ec2c", + "1c7c6456335bb722881302", + "56f01f51a5be66f649b1d6", + "4a2416a8cf412f996e9654", + "5593dc730a3a85d6ce77d2", + "70628248b6cda7311de5ca", + "49212e86ec70f1b328e11a", + "3669075c083d3a0547d7ee", + "7c64411c354fca180b974e", + "be2266f15dfa6e02e4a02", + "69110081782c350722756f", + "5370ef9f2399e3c803b5a6", + "4277911fa0e430960db091", + "46d2651ce40dd1fdd11e69", + "65838019d10030d2edd34c", + "79ae8d3a65221805ed59d3", + "4762e175d924ca1dff7d06", + "226f7d490aa9d47314570", + "673a9bc1330de8c0b0abe1", + "a80defe299bf7c4d81738", + "1916345f1ad90cf48c6472", + "13cc5c5fa7afb2b7468106", + "656f70349417ef562616d7", + "520db901eb8309582e12a2", + "4253e27061630b9343ddfd", + "43012f86bfa02bf0033ee9", + "51524048af5a6750b1955", + "37a4477749686070e7e049", + "39f7a72e1daced6411b1a6", + "4a98326f880a44e2d6ea5e", + "574f95a475dce62a3071ca", + "23c20aae79c2ffaa75a36c", + "59f67a0c66d5e9744004c6", + "25ff556cf1afefe2cd2ba9", + "41be4715ccf6dde8b12086", + "5e9464fbce6027257d92c6", + "5b57bc12988f27dd0ed418", + "1f1c7eef9d0f99e1e209db", + "1a95aa2ba56c053acf7e56", + "6f085a8f46a66e79fe4f92", + "728aa131a37012e184c2b6", + "21469f9c49fb4d2fb54baa", + "67d12b5d61741b8623f378", + "2a1abd32897155b55014be", + "35ebfb3fd5a71979daee0c", + "3c994e655edabd5cfbe8b8", + "b5f14620587f1e8ed5a45", + "4cb0c7462e90f28fa251d", + "608a29bc043b54adde90b0", + "6337453f9c180b8ddb37c4", + "60e351e7834b181d30a00c", + "15324434e27844cc4fba51", + "259839d29faddb791e3548", + "198d839621f761dde4f853", + "221728332d3142e3346be", + "48cd6ee15c4874d342b21f", + "7964fb4049b23d750b6f0e", + "365cb247c96e7933341e76", + "4f7806a65676c896ee7db9", + "99539a5120bf06fd3edb8", + "4374a87512bdcb27925ebe", + "db7255fca12f37c452ffa", + "4a2cef4e3606d1b9422334", + "b8385ec48f904d72393ba", + "71d26320321cdb1dc925e0", + "1f8889a7c0321f5279b37a", + "7decc101d84d7378c8efe2", + "1526a67a2f54717285cebc", + "4a292844d7aa26520c09b1", + "5edc4541d1854504d071a", + "44f34a642236b1e7e4c8fe", + "87eada956963224c06418", + "76393b1564fa2cd841480e", + "2aec8efef6c41604b67a83", + "2644cda468b716b53c99d1", + "4d74065738715d35d47743", + "1118a89d656497538996f2", + "26102582959271955d45bb", + "1318f3d7743d8ee4ecfdb2", + "3128342c1cd21185c739db", + "7568ac37df7da28c47bab9", + "be26e79f27c2fffd5718b", + "2655fc5da8cafdc10e8c6c", + "6336954989b8a716380f64", + "2f1dd3930a2948f2187f86", + "90bd6d6fef2e358a664bf", + "675948e6670907b03227ed", + "2025bd13134bf0ca69b0f6", + "509dfa92ab81408672391b", + "5c699bfc1a98ced38d7c88", + "14816e04a6b799d1ce9e1e", + "61978b574cf8f6d53118d6", + "4e203019ba4b94cd691d60", + "7df66ef2eea696dbe6ad95", + "43bc8bffd5b4fa12491d7c", + "1207aa2a4ea7c882b5e76f", + "3e9654e3940c0f541b93cd", + "4a64cce2fc4633dbb63e09", + "4385d494a7bdb154810c4d", + "dbd1bb9693e65c5eeef4a", + "7d58cee39bf1830f1b3ec0", + "6cc6a998d40d1bad211cd", + "3aa6d80b7b4477df65330a", + "2ae1383e51812f870ebf41", + "1107ffccdffb2932659325", + "9cf05f6855d4068390948", + "36f24af02e5318171bea53", + "4d0a046c7ec4f54117f367", + "7bb1913bf745fa526f18a8", + "2970c6e86dd017c5341ddc", + "58c411222783451febdf82", + "657128352843035ba5fee1", + "13c9d1e81de8cbb64a1797", + "66e2564796168c2d0a015a", + "1b9995439565d095eb8a8c", + "43cebcc2f248fc1fcbd6b4", + "7e18b1dc04cb3af247aa31", + "269ad3cfbd18bd255786fd", + "2f1b9eb8c8ceec3aba8c3f", + "890072ab6d3eb608d30ea", + "4e72dcffc8f26eb136b7c7", + "71db6b9125d5ab5b3e7493", + "57bcb68e1f52791794bf4b", + "7489fd5407cd56abfcfc49", + "45d43d697cb8503c85839a", + "2021e0329a909a39851fe3", + "6eceb600a9b81fd3aa7175", + "4d63e68650d056d4e2cca2", + "21789b3595bc366315af2", + "781973046ae51aa956a060", + "2353c3f920ce7af530f96d", + "4a8154e2948099e7b7c4c5", + "319945f43efa75c6d6fbd6", + "1a0cc5d78d1da3759fd0fb", + "75a29d53450973ae07e5b6", + "670c6449f82194e5367c1d", + "6978fb86dcb4ccc82a3738", + "f6c4daf384fb3d39aa985", + "47df2e03e1548a16e223be", + "36224c16a9190272a21e14", + "abbcfb2e4c3da6b090978", + "1fb7c568bdffd12b767330", + "77f657453333dfbed3c7e5", + "68855602ae559673b8a2dc", + "57b79cb347145bcbe43bcf", + "542f3c6130072ffd145c0a", + "7d43897c9a717ea4ffaf53", + "2928531ef291fb90d243e3", + "6308b8f5574126f70ec3cf", + "3b77afb6ec85d92608bbc9", + "39bc9fe63b4ca1891dbe7f", + "14b126e3c0b0f4dae2ddfb", + "634af4f8ff5eecb70f9b3b", + "5939fc19fad9c14c8917a9", + "cb351e8f1a28278af3af8", + "41ff1be99bebe99b10f273", + "32c9397c9adff65d943965", + "1e1de465daadd9547d63fe", + "1924697a3681efc60e8e70", + "3e14120ed24ebae50e64ef", + "29bfa87365d098b3fe8377", + "48ad93093caf03d61b0aa8", + "116c396589d81e0684d5a0", + "4550a8c9126d63e137546e", + "3d325eede75d0a573042e2", + "715fb02624875de3ce495c", + "2c1cf6d476ed98aad97b90", + "41ec16a5c725c7d32d3a8d", + "2a6ced30aaeaaa3957eaf", + "284cbec8937114a1728cdb", + "7fd049d0f5d16bca84fbf0", + "1ece2489d9c16fd0d7c093", + "7a1817cf8f21c4f863437a", + "2b89a454954d4c6b2e2120", + "44b51755bfc5410d6cfad6", + "31e4383d0d65d0adfc3084", + "2f44e6e7eed452c1b02ade", + "46861d4c2ab5de181f3e32", + "30c01b8abdb9d98a7941dd", + "593ba411e3481cff090a6e", + "5f7998cdc984bda089a530", + "38863908f348e0ff24d2ea", + "7db23dcfd5b48847b2da44", + "70cc62d0a35cccb85972ee", + "51e871e33b066886db1e57", + "7ab8d7968452d732fc3362", + "6cbec7ee27571943d99309", + "65ccc844f43d7740c3bb83", + "2d92e146c92e5c2141114e", + "78208a8be2c33504df2573", + "1b892a6bc6d106036dc210", + "1ba30d22d8ca0e3412c0e7", + "7f5d5abee4ea627ca346c", + "29d27ddd5f46b0a514ec85", + "717a62d953937ab8d63ef4", + "46f7147d837df6469c39be", + "1e9e640158c2d5ef405818", + "7f30d40bb0193bcc3bff38", + "7e84a589b79843d0f09d89", + "1984882a708094eb26643e", + "6b386c8a9795cf0b45e160", + "282bde17894173789173e7", + "75b60c74c3f4835e0ba3f1", + "66673b06f4474ab9ac84e3", + "768b4e15703c2b99a95ee7", + "3c7d066200b6ae5892048a", + "194fc13ec819c9e2289cea", + "3c066553be4fa2a741db4d", + "31018337a926110b0a5b91", + "7ca0b74cff2de67657aaa1", + "610a799f5f9443dd8f333", + "29dc0e371f2a3ea6cf4d60", + "bf1c05f166718be1c6836", + "309eb70bbb47b20185134f", + "4b31d20ed3a1f68f117d30", + "201a5f031183f9e3136174", + "6d82429df8c04f3e8cbdea", + "4e4d1094ae9ce9f42b1d71", + "65e071aa89e8e9caa17f", + "7c3ad9d6ed54817d082b65", + "352a1b67a355f38121c462", + "2d980e097ecb2ab91b9b92", + "96afde4db924db62eec7", + "6e20ab59697e8bf608ee9d", + "2ab6145578df975521753c", + "5c91f707bee21c71c33c34", + "676d8d92a92b0706da21e1", + "3a82f64175d5b3caec9c53", + "2ccc62a5fe0c2d164b78ac", + "7f53a40fb6d59c55fc0a6a", + "eb12a34ffd8e97426aebf", + "330554538efb3452d928d9", + "37902c15fea70cc2588984", + "1e3f1f00ee5c87d8bcc6a5", + "21e6a33067365b1e718020", + "4113025c4b26d50d501a53", + "1d50b663f8750fc777a8a9", + "47267802b4baf11a616d7b", + "206a9c38358f291b01e407", + "7529b300b4b89c580a5f62", + "59aab11c164124e5cdf604", + "3d3a2d2ef7d22dc8adb10e", + "1fa48382ab305e0404adc", + "6e72d626e97997cb842159", + "53a902325a9087232d64a1", + "726d30610282ed39d8f203", + "6e48887c0bee3ba8386f63", + "532cc2e0afe1d979c42a70", + "614224558d52e5d4eb23b8", + "c0bc8c55f3b95e521ebf8", + "1b4e22a54398ec5712c2f5", + "45109475272b0ee96581b7", + "6c065cf636d6bc65762095", + "7bfe5c12baaa86c60d8117", + "62e55ea318373ea102e458", + "46789b05c1e88afd58b2c6", + "37120883f03d674fbee3d7", + "63a482d47b34384d6c0abf", + "78778c448d7d69eeff19c7", + "69527863032c1ba7d7e238", + "574f9294e066c8fdb761b7", + "3adbdefe2bc4d894d3eea5", + "7c2fed1746d715eb95529", + "2501ea3eadb12569e01e7e", + "3d49c943bed92220933501", + "2327087d544749f348c909", + "63a2efcfe030b5eb3fd526", + "2d2c322dac49b5fc4277a6", + "4ebe9580f66ecfa62bdae4", + "39450177cdd3980c4efafa", + "3349dac2077bfdf6a12d86", + "56b71258283af76e7bcfab", + "2bcddd9fb0f98505c98aa9", + "45166035762ea541feeea1", + "6bf558bed09b770ac7b7db", + "69498de156a0aa10a4e2dc", + "6cc9f90d012be002904668", + "32f8a36cc1b46c25cdcc28", + "312ecee1519b0617d31186", + "706df4fd50e1c42994aed3", + "4edae7063e31e196fbffc4", + "7bb42f21df6b474c926cab", + "7c2bf4a989b0889ab6c2ee", + "14a25dabe8f8f9bd2745b5", + "14266a10ce4302dd32d262", + "411254ef95bca10cdc61b9", + "2cb3e5c4dae6b173319195", + "575c81fbd5408f583cec84", + "904098cdbfd4389279e30", + "4499b6e3311b7fe5b9c98e", + "210804240b673797c1da0b", + "4cfa062853643ca21aa8e4", + "155503fef8a8a42650f8de", + "214de8b9e305b92a9ebc6a", + "aebf119c49f1f5d4fa77", + "4019e2ed5f4f686e75a334", + "26e8b6fae1b81184be307f", + "4cbbf282cb8d5b492509da", + "32124e45d595b542218cca", + "4fb7ac8e103e64af4c501b", + "4a99080981fd90fd8f202c", + "5fe19870cf156902f09ea2", + "35da7f1fc27e6edf7e2774", + "171772c43b172c6f59b4ee", + "396792f2585d3e823623df", + "68b020f430372f0b20817e", + "58a41d74e16c1b1fb6cbf", + "6ef7e0b470470f565c088f", + "4dba440f7f398ce0198b25", + "2840ecdbeaf847ed4e56fd", + "2f36ea2bf51461b1407878", + "2cf0b3c6e55d4f6c794d8f", + "31fcd9e9b87aae6bf32f83", + "47626057be8af9d92cef74", + "2113e1a93f5d2f1cba0377", + "4176799b704bfacae7d897", + "524919eb6636c6c6c14a82", + "64d1d7c43b00bfc99b8bb2", + "76a279212b584d95ed2cd0", + "37e704706a7967491e3628", + "5e1c654c63269bdc77fee1", + "58b898760417610a09ff41", + "64981a92737099a91d3794", + "571cc10547604b09ba9b69", + "6714be0beb22d71708c5e6", + "359b739ee10f4c4f24e721", + "454b67d8b7470679eeda79", + "615326e14c6c74c717def2", + "2dd86ec9cb242b4e68016c", + "62a4fc7a9af2d27e92b08f", + "cae1cd222ac38b9a89a19", + "5fd2fb0300581c5f59fa7c", + "1488492f946cb788d721d6", + "509ca3fe7eae200044712a", + "27c4576460764aabe86ca", + "72e3a111047449df428c07", + "4dd2e16c6f9989907671be", + "415d623b63f929b3ef879f", + "9b13c11e290284a86caf", + "78b61404bffa36b135773d", + "10c2f27dd2e5d8f77a071d", + "684e96f56360b04576ab1f", + "6bd55e81cea4df6934b8f5", + "288723d0eb9a25150c0772", + "4eca5fbd35a4778cd18f80", + "590c069f4d458da38448fb", + "6a91ca9f24a59bd3f77cce", + "4520d49550bf0a2328020f", + "31340daa6bee66dc702e47", + "21cbfd5db5cf856bb6980a", + "2ac5b705311ca0e8e6bcda", + "28390f3626b1fdadbcbfd8", + "3b79806e60c6443e5b75ae", + "4e1dab19fafdbf4d11123", + "4bba04cb6f7dfe33e4bd", + "25b65fbcf4deba1535165c", + "5d2602e9c7bafe79929bee", + "1f5e885344b51456b2195b", + "5c585a64ca68d89750e9da", + "715687651f6925a41a3bf1", + "47be6483decbcd32c50b44", + "3fdb397b831af56c0902f1", + "60ea199093a4e9f80613b6", + "59048c7bc400c1b2f055f1", + "5ed2c798bc4d3df9693b4a", + "26c8838f41263334d39302", + "257f0dc17de9e402db5577", + "5eacde9e13242553f24977", + "232706fb395f1e37b2683d", + "5527388c03206dff6a464b", + "6207f87b59fc321d1fa8c5", + "3eed8387e5a22f84995caa", + "1ead4bf29c5aa1e11118b1", + "4e9e415c8033fbf3989b6d", + "6ed402123cbfe00df8030b", + "15c5021e3387b5104eda39", + "385c720d2080ae9544a074", + "12502410f917e813c566e4", + "dfa61531c98e389318ffc", + "75df623177a9cc914a680f", + "16a2f9f4e53133020d693f", + "68bba5659f4f20356a0cad", + "5b60aca7fe85259aa048ba", + "748cb85b7df9ca5a82d4a0", + "5448bba652328fd63e3ca2", + "497b40c11c5d479cab5f20", + "1ff2197a0e5b3d0b65c928", + "175182c7cd2ce431b0150e", + "58a47971604afebfc2dfe", + "7feefa2c38e3a6212b4cc2", + "1dcb001f06c75da3270a59", + "3e7a71b985de5c6c7a9f57", + "ccd4be560162041ae08e2", + "4ec109ed0d029a0c6bd1c3", + "363177aa4ad204478f4d2e", + "7b94e69ecfb1ba4bdf42b9", + "68bf1a165a85b17f192a39", + "fca586b3bb595a8d4101", + "7914f6f164e20860badddb", + "d959366c9d2eed9c988e", + "6b1b87bf69d8ba16154459", + "5798f45a6d32a5d9e220c4", + "23ff36317f41cdc69b5f8c", + "3337445fe49877ddd94c8c", + "27e0d5b6d5b01b974468e6", + "155305c9e80b8231f3fea7", + "46777bd089a8dc8c44ba66", + "4eb92d6051c08bfec28d32", + "58de9434dcaeb21007cf50", + "4945531dd0d285dff322e3", + "5f4ee2c7a7d447e781b997", + "255da48e767df6db73178f", + "40f14f4642441c80c723a2", + "23b23c226ec7148e9ecfd4", + "2fc4119b8d9484cd86a0bd", + "e8a31983f38b3bc04d83f", + "403c97fd7a8e612b101803", + "360136af955e5fa1edc1", + "6dd1e30b456df046e42f20", + "2a8fc7a338bd0e95e61238", + "5574ce6446f5f9b2cb3ade", + "68437c168764f9b52e36f", + "6db55a7581d577d97e45ef", + "2117da386a0ba848e04619", + "38a3fd25a6d9f4f7c85efc", + "20bd84ec27cae248ea38a3", + "2359b0102f9a1f774278d", + "7f779a7314dbb8bea5c652", + "a15cce75efaba6c1b571b", + "5e4eaaa44cce4760757194", + "1aa73126a375b6cf5e8b5", + "e0fd267f226bcb77b4105", + "5c1c9591ed7cecac5be504", + "6f8c0ef46d2275dfe7e84f", + "75f53c77a2d34dd51c6882", + "553e86c66c2fba13b95f56", + "31cc33f2d92bb3dc73372f", + "2bcf3f6e0be988750bc0c3", + "2a0c42a5cba7fe55a006e5", + "67427f6921fbdb98c3e375", + "62019722b2962f2ad1787f", + "75964f1abb3f7cc93e9f96", + "3faddb5ddd2bdc683de72f", + "235bf7672a2cda1ab01fb3", + "c16242d78c3d8fbfddea4", + "29105da153f2a098ad094b", + "39f0a0674e65b2cad4a706", + "57a6c26c5e5dea61f133ee", + "6151a60a864edd0e7c7b30", + "d65fa4e9fad0f9180af7", + "553adfba4c4a6d20491557", + "1ffc37c5751a51bd676a97", + "450dcdc45566039112cb21", + "74c5b771dcd8c4719355d3", + "72216a00ebfc9de1e963c8", + "7746c161815ab2091d9e21", + "47ddc74fced651c57b4d1f", + "417a5a771b0fe4694065d", + "4bd73bb75df0b9c8f31e93", + "3937d6181e67f43d9bec08", + "5fa8c4e879ae9ef5c6f178", + "693e564c43456862d84db1", + "394398fcb25e82a48b8d32", + "754181ae9689816d4fae85", + "6f5834f39b940405114e26", + "41d82e9988854950bdb48c", + "29f43cc681e11325bf172b", + "6ac2b95852f2b3848657c4", + "49da4e6814895f7566132", + "7a75465db2452d11dbf6bf", + "14b9cf8ea7c2a2aef663e9", + "7a7267a5eeee00421b1bd7", + "8d7ac16a6c7fb5dcaf362", + "4a9951c3005ac4b7d775a5", + "4dac5ec68e30db33d790b3", + "7e9e8be590540d41cb48b7", + "db6d45038525122246c3a", + "32e84128c0dfcdebdcfc5e", + "3c52f4c6c583d5b2a18105", + "7a42533b0f16560c421482", + "403ccf27d3ff3c3686d654", + "5d780dd5bc1f62ed520130", + "6ecdfc4db1fa1b0104403a", + "4796fc52e00fbc5d65fc02", + "1103bc87eb4e4e572c882c", + "1f2e34fd7020d08b01b7f2", + "23f737b6f1527cfce0303e", + "292e4d75da1a76fa4eb730", + "1b8c58018b9ec962054ab0", + "3cdbf096f176a11d399e68", + "5e81e2ee54fa1c8e9216bf", + "6ea50d7820cf1c46cfdea8", + "42fe3f1413aec51428fb64", + "449f89bc8e75ebc93c06c2", + "46dbb8e8c99f2d8cf603ab", + "3542a00727cde7902f64", + "8c1b60a22d754654b3b0e", + "4cc1b8f60c7b3b604dd7f3", + "65a59676f2a0f7f5358513", + "7ebd8ffb86035ffa249a5c", + "6937a623eafb54374944c3", + "771e23d6155cbd6574be92", + "42d3b2e606813eb48865e1", + "747f5812283a8ba1a43af4", + "1533a8f5ee81c2d4352c6", + "25b4f424465c145a893505", + "54449f7dccf77fd8f14fff", + "1f216750a4d1686b3b2227", + "3c0ef922648f93834d2bac", + "5b8558cbc60eeb5d4d1e0c", + "3fbae766d352bf62d71ec9", + "37ca6d3b30cb2687e44f7a", + "4fc1aa30a26bf05e1cf79e", + "5830e5e1c9294904118c10", + "ac1c0028dc3aa005da816", + "2d8207ca3331c2f27a3943", + "2fe38c447768175651bb27", + "538b76dc0991647c99d6ab", + "5ad56a9a03d1277384501c", + "2c11fd859f539479044b3d", + "6e1c49a1adf3346b270d76", + "627d01094a2553e7bdde46", + "4b0e392a6b94b0716bcb0f", + "73c9485e5e5379f878695", + "43da9e4b9fc98c3225df02", + "4b81add44caab6287f5254", + "73a1489a18b0815a03faf8", + "146e2b3f7404eaa2825f64", + "62cba5cd6ece1fcc005653", + "9a91d432ec896438ac971", + "6750d083991451ddf24ddc", + "23f47a79fc10179e2f1aad", + "456b75b7118ddbd9c05113", + "214ab6242649bf5f0673b5", + "46c6a4606b83331dd733e4", + "567c07ffdf5609acdc57cd", + "26639427b4cd468207f354", + "36b57535eb2f884ec435f1", + "2aeb5606838c910769daa9", + "5d5d0b6bedf48b96c5eb79", + "144036e909f39a00a79653", + "7677202d8f05f9287a6047", + "1a1cfff05adf1a427c023e", + "7286bedeaa0c2687819d8a", + "2bf095a2fbcdb3391aec69", + "2e6c1f41a9866f4d867e01", + "2ad8da8cd83b1521d7659a", + "159314ac561f7431a71dd2", + "443f4b4ed3b1f2c8fe8ce8", + "1bb928a5ce5b6a93e4a6be", + "ff765fa35889a47189d5c", + "7faf5fb28aa48ff83cc07", + "330bf157841f4554c8f5de", + "3de0a5abf20a4845d76439", + "5d53571a7cc3688e6944b0", + "7a6a150f8921047e15edcb", + "4dbcbf0e0833361017aadd", + "36f20d7e24da8778ce35f5", + "3248d851d401112b750bc", + "77024358b3e776b2c5e1af", + "599102d1f2500d61d762c9", + "52c455dad0b267d43552f0", + "59db917020bf7253782d5c", + "3251a62ebf3abdb7c9ed58", + "1c89d8520ef104ebd20ee", + "fa65751eb4d84785986bf", + "22f4901fc0a8b24cf62fe4", + "3baf4fa4e9f273acdf732c", + "29d711357943b0afaa5b59", + "26293d249066a3014c3338", + "4d3db82b9d6efaedc42576", + "561331256e1d21664a1287", + "796842dd6bfad2f98912a6", + "4a27b941aa4c6ad1e07548", + "47b94fbc156b869e9d16b9", + "39f2517276288f74c45e3a", + "11326e189db8b15b0744ff", + "7c793c0d415e26d57ec92", + "22c922d5b0fc736e5f1adc", + "5a9897a2da0299756dfdb3", + "37b012fbed4994b5319766", + "7ee167869f16d0f3096184", + "7b7ba8150a404335a3e978", + "2176005ea62a7fae1a0ec5", + "7f5271355a686a4df7e516", + "33294a38a5c8a431b3624c", + "68570d0c5fc94ab3c18486", + "3a928b86dc180342e1f053", + "474d5e705efa51e5e97d39", + "4948e72d6c06974bcf7212", + "12ea1cc2026e4f5211a159", + "15b86ea9fb5f9d46bb9d95", + "1c0d48f6283945e321fdac", + "c25f982adccb58e81ce02", + "173ee21e60a88ae566e166", + "64af53c3c0ad963e3055c1", + "2e0a934adfe422dd136191", + "5ba00e958e1473bae28031", + "230119c3b2a6b1bafca00", + "1fb4d17ac6ee317ce5a547", + "2449f6a2ba5fdac5a9c1d4", + "6b488f646fce9835d43f44", + "11978ed9a01677cec42ee0", + "3ac9b63dfc3067c1c4627d", + "7fa7e63240bd502dd4b06b", + "4bafb874450e24655961f3", + "4a5a912df871eba16ca2bf", + "6a1b97013fc782623a1d18", + "60f671cf9f662680d04313", + "6f7417b6bfc27461fd2524", + "3cd40ccabd157073f9e356", + "60188d16e528a5d2e06d3d", + "55509fd3a52bd88fe29e11", + "193c88995f60dbabf1ee79", + "36e5208ae458480078d5d", + "27869ae6bfa80052e928d4", + "14e76412c1e117fa60f762", + "1a91f5500bd170effa0820", + "2f27f9f5b37e53f26a3367", + "7c4ebd51c09994a5c2702b", + "7eede9c7d2fd05759ff0d5", + "1bf7de225f0abb4eae1da2", + "1f527bd93add787e619f2f", + "2f4da63191088795366c81", + "1e86f8d9f30e1c9ee2f741", + "5fdf7c6cf80f5f4d619b9c", + "1365575dcf06e2b1987b3f", + "3860f5646a470f19d720f1", + "b17adb15bd895ea825438", + "67cd089f73cfc8807dd840", + "7b97dd845f9509d060f296", + "3951fc47c9cf417968c09a", + "63bd657552fcd47a1fea3b", + "7b59158d38abcc0653e41", + "7adedaa3d8ff64ef5910ed", + "121daf29269045f5bdd20b", + "65c75439faa2303912b32e", + "3a603b28f5e57fbfd764b9", + "2df92a33b308b4efdcaee3", + "69defadcac1e44c7a1c0bd", + "17961b8be9d0332a213177", + "59a5901c521b74864c8fb2", + "697c3f9accda8d3543f182", + "3f0177714af6ab07d870c0", + "2334ccde40867fa1d0bc15", + "16fb077509115b4c0ee442", + "758f193f192584a42ebc31", + "483ca240f22946b37af3c", + "311601fec45703953f2b91", + "67da5d093fc207176dbdb2", + "1b6a00fcabec41d4b43ba2", + "ba07dcfdd701f16f45aca", + "2835e7f4b39073c5a451bb", + "269c017af27ad44e6b201e", + "3cf5810d8c38a097a7561f", + "573747456cbe53c844796c", + "7772e0b990ccdc614c11c3", + "404ae85658f9b08174632", + "5dd52a5a11350a9b7572fc", + "7ce0b194ba3e31249ab36d", + "762f2aec62b91b262cc99f", + "3915c8d33da94da27c1249", + "6e885e79f7b5fe77214da5", + "668c0767178119bd41ac3", + "6806f2889f5316f4c57e07", + "32f953543bd07093a29e5f", + "5685392e26e4e637394c54", + "96cf28ae783cd1e477aa5", + "710608c33a517ea5d5359e", + "435abcd28c0cfc9f321db0", + "514d622fcdfc26212b5d14", + "408e6268fcd75479c3bece", + "18e5cae7f3bd61293a8c2b", + "65a5c9fe061a38a8c6c2e0", + "6df80f50564e811e245eb5", + "1b388caec4f8538425d93c", + "1bab6e088abbb7a786ff3d", + "17fc45b2690c315a5249e8", + "4170c011864f5582d6a738", + "3b3a5f854ba249c04d075", + "38e1e6200860f4072a8a1d", + "c91beeecaf54c95dc1b37", + "f125d56d3c0c2aaf7ad05", + "341851bd5e48e20f0a412f", + "471eec9edf3f5af18be6bf", + "4b21ef5da2b744139c3cf1", + "3a051daeeae9770973713e", + "75a7fc26a6faacf109b345", + "5637e5d4438a119a23f043", + "22f18c95264f1fb742c348", + "1d595362f3a1b4c77729e7", + "69a784edece7c38bcf7297", + "4fbaae68fdb253d715d528", + "23693b4063cf0fa20dad42", + "51eb043d3564fa91215f1b", + "2bb1db818cfd733dcce0b0", + "a961f7b95836d3a578170", + "51c819b9ec191b60920096", + "ac6c9987de6c73f2259d9", + "524b77666e02692a642407", + "149d706db4fce00c71da76", + "238de3e1606bc0e1c33adb", + "37ba1e609c7b12a8e32733", + "3ae30b1b5931eb630bbf6c", + "1630a212afc84f038374d9", + "5ebb44d93cb77417b61c4f", + "5a7d2dd2aa2028d4da8f42", + "798019b397419c8d54fda1", + "74a156e77589342bbef3d5", + "506e6a05e8de5c9198ae69", + "48e4926c40cd6ab5e92ffc", + "7d2db742721c9ba686ff30", + "4b8968b5c5a93dbb4b2b55", + "2ef2be0f7e33ace73bab4", + "7651ee2e0f4d348cbe95bd", + "43ee4b35cb3cdc84d1d5db", + "449d4feccb40da2e122aa1", + "356211f56936e183312837", + "527456447c2748239033cf", + "46bdbd32d31b2a36e04e0a", + "6c1076c01e9e44fb047889", + "5ef5512b3384aa1243daa6", + "d452f805a2c35e686e107", + "67a9131aabd5255bdce732", + "5088a2317aa34dd5bb1b4d", + "64c275af1abda385c2af0b", + "402c7149b20bce787c7e83", + "60c8d2e958387c0d0627a8", + "516640d56302eb15061b25", + "c62790b24bc842a717e31", + "76e87d4d2740e137511b26", + "6cf76079225189eb2608ce", + "3c8b04f81e14e10396b582", + "4bfd93fb985a44ed0569f4", + "6ce98c831091728c0e73bb", + "4f74e7ee01738298062093", + "449ccc3923e92a0bd2e3ba", + "4feae15528510f186aa1fa", + "12a3196afc09a79694eb31", + "6cfdd09fe2bd66b85c2e00", + "587cce1cbd0dee8b98f262", + "3b0283be973d59ebf4242f", + "88b8371baafc87a9713f4", + "4e6cb8ec1b00e2f28b3a7e", + "235baa54adcc67af92d06d", + "733b81816da25936e81af1", + "7fe76cd2c5affa913c2b41", + "26b7df388a02a8279b0652", + "7b5272bdeb1b01fe56bc29", + "6863984d7793407587e8e2", + "1f1eea8231315133cde938", + "2f85e68dfb9aea66d7f07c", + "6259df76b87ab2eff6659f", + "502c6a2df8916b18106088", + "4cd904fd9401eac5ad7f1c", + "5eb4d93a33b2d2e2c2adad", + "55a41153a33cb4649703a5", + "cfc86f804a481df48868e", + "1ddeaa1e583e9146210f69", + "38110b962a169200cc9f0a", + "7ce4bd3337a7333159cb2c", + "1738ee1c8e104064e07249", + "e1ef803b3674bf39884ae", + "55d7bf2f5724b5dd0a04ae", + "7aa81a94a5a230cf59a0b9", + "2baeaedf76503008b9e428", + "15bb5d9b44eebb27a1e60e", + "dce90e419e8d3f96eb5b4", + "72a7ca4a8dc56f9c652281", + "5cd319aa7906a96d2f6c7e", + "557361125249092a7bf932", + "70a1107bc42bfb598164ea", + "df7ae04689867c9ad97d8", + "117480f169f81bb3e8609c", + "479fc9912c9c81152eb474", + "4f2cc1f6f7aba8c20a670c", + "17dd6e40297f1d32786291", + "783e0229f219bc18b705e4", + "8b462e0f7448b549fd688", + "4a0fb16cc4d1bdfbb239c", + "53c95b2787b88db0682132", + "536be2b3e3829710aec51b", + "3a89578d6ca992f91249be", + "779eb73caa637aa28db87c", + "52f5adde99e4501e4d1c61", + "31541f24753a28cc5b51d8", + "620084c5da2910137e2b10", + "76c132264ad2a774a55164", + "35a3ab4773c5054a30c44d", + "2f78c0f7e7a90558573941", + "5b39ddb704fa58142076d", + "1d6812727d8421d0e03a6f", + "307727bd97c5db086074b3", + "1abc0d15793c655cee4a9c", + "68ee183b2208228da8bab7", + "116da33e19c8b80384fe28", + "3d73fd3c3744e9ec5d2d04", + "64ed03e382c11a32e34cf4", + "479e7025ae3fdc2bbcbe22", + "a134915353ce113eb72dd", + "49cb6ac7a2bfdc54300006", + "2d5e8f78718c2d4660cc69", + "3f5027ce278d444a4dd243", + "15d4218f4bbf0c95cd9649", + "13221a23af3045ec5cea35", + "1efd2b46d4a8724e929fd9", + "628d18e095a8dbcb9f43bf", + "30eff32d49c10f325b8e9c", + "29bbe5fdf14e69065cb80c", + "2df28a1b78b46f16aaf53b", + "352a4a136ebd7ef294f370", + "1c960c994194a1366a2222", + "351c5a0b997e45ec21b614", + "4c1f6b587fd26654ea69e1", + "2735b2e6f5f08a9e9418bb", + "3505fcb3eb2690f88b3be3", + "4d8859f357a36792b7211f", + "1e2093f76475f58a2dfd79", + "456138a50c3717947be48e", + "35714b90920ce6fe1f850", + "5d7c2a1d1267b7a252da1", + "754ffe6bc2e7525e892fe", + "290ac68bec8aa8955b7e97", + "a058b3353ac6290d9f864", + "ef75fc5d77fc146e975f7", + "48a999a2dc1a23a934a6fc", + "7256923d608836710a659c", + "2b13e041339df4d5a521ce", + "51a9b0945a0908b1d40d24", + "779559a53e6b62275896e9", + "1fa330f6dd5f3ca09176ce", + "3cb748f77d638122329dca", + "7e62c15038abb8244531b4", + "9bea90a26f9e93743a998", + "7ae1d007cf030664c6b815", + "52cfcbd15dfc6c476cfc76", + "18ba9d869c489f11ce52e7", + "93cbb2483673e4e0dda30", + "2478db790ed59756cef964", + "7d8b341c82b019a8d56c92", + "584b7d6f0b43ddd0b397e4", + "6081e77fedf3898fd66607", + "540f5a33d5aeafadcad19d", + "52c4d1c2ad153a3f70bc0a", + "39489c7fdb445490d498cd", + "e0800809dbab6d41345b4", + "1536906705870049755028", + "639c2fcec8b9dfcc987387", + "214f18ae0c9aa7a1b8c02e", + "5b8e9d8b290e89e5d9afc3", + "4499c1c16fec3546d5903c", + "5ce5e0595ad07c8855357b", + "39bf9c3f1f0a1a15264530", + "30a77107da1d91a699e9f5", + "352389083277fbbbe66ac3", + "5d711409f3faa9ea87abfc", + "42cd59499a0ef57d6b0009", + "731a7b89f357bfb855a5b2", + "767dc9d34c09b03db4a0e9", + "5344962f90f45cfaeb1bce", + "504d29ae2e5a021d2bb278", + "6e97dd298eaee757a3cec1", + "2d1b2f087facf1fbfc7e69", + "327b2b8d0b75e0d83a5b04", + "7dc98aa964908b313939a9", + "d8c34dffd92c1a20d6a9a", + "21a363ab0e08a4336f2e44", + "48eaf0293f956717b8f048", + "6351b2a5f477112f552683", + "2193bc73ac4b40415c95b5", + "13f13f9f2c877cb73ba5c", + "7c6b359299af5c59043711", + "7895b432001edf846b7b3e", + "3ecf9d05cd62341c4f7784", + "6c8879d694e1a0b99f8e42", + "6400e87749e3bcbd750d89", + "1851e925707895d37a37f2", + "30f4f5617cc73435ce74c2", + "18ec20d19a478746123b", + "39242760b51f2f93fd4721", + "452d3dfff11e24bf680356", + "5cafa83a10f929b5076c60", + "7fd4ee663460087b793a80", + "7e958697030784ae5ddf86", + "a6c54d0ec55adb4911efd", + "2964973c288dced7dae8fc", + "2b0fed7a534d25697e5c7b", + "3afeb7cc8f8e5bb8770da", + "6a81a8d913b71671629ad5", + "75f4eb6de0d35eeaa16cf8", + "7abf68b2e4cc9e3a3b2c5f", + "4f6d8c8b0b9b376d42c4b1", + "23f219093e9b0bb3b5217d", + "5a0c2602dcbbbf468b67e0", + "1a63315aa52cb254b65ce0", + "4f72850630f6f8c1a68862", + "3722a55f27f2c02b34eddc", + "672d7083ec424e5d883cec", + "4839c6454f97ececa9969f", + "e941ecc714605cea72177", + "7cf9338ca9bcab73862b81", + "6a23876a8c802d81d83d29", + "7006ef130d31e12bc44c5a", + "591bac661062f64b8e3f2c", + "25cab751e23d8e69bb5048", + "61f4a55b140e767495cd59", + "1a4e5bc143bf00e8928403", + "4a54d9b3589d5340a01e23", + "18019c176b4c9453028db8", + "76fed7d89907843db9af52", + "407333b3b6a3bed3ef8920", + "536a736ad3a37793dd9f54", + "5e56a7d976f1a3334f57c3", + "66ffe80af410522139e92f", + "1b0c27c7452322264822f3", + "58320debe89492ceee77e", + "4fbc987e428ed0ce9cb76c", + "70a2d453b688803716fdbf", + "1921f3262afb2f3766f357", + "6e007172a16a9c673e635d", + "527c4b155e3708972293d1", + "2797689917c95a9d4073ae", + "69bb33c18017fddf18d091", + "165ff53589519199fc1846", + "171e59c89024b148534f1b", + "23c82ae839bf5380a55acf", + "455c9131bfa1c33274be37", + "4bacbc68650c41520d312c", + "1c35e13f8ffb7c470fa61c", + "6b4728ee168cd23e2fe47c", + "22e321253c3e0fb875c4df", + "6077a88144957827c07205", + "4309c1c59a581af63d922d", + "1b1ca5d6c688c4cf99448d", + "31a504d1dcc251075e4436", + "223160cdd1bfa322ca3e6c", + "3601174a7dc823bf4dc3a6", + "6da3828f2d4926651f7a27", + "7de4927696bdd6d3b718", + "7bb4f9d707b4ee3a20e779", + "343dad4f059acb87d3b0e2", + "4e501beb4617be0f02deb4", + "3943e926fbe3d426004ea9", + "4b35e35e82bffb49d0d830", + "6520599b30ba3568ad0f09", + "2a48d89ce122dfa7deba2f", + "19b666810d736e639b51f2", + "1ccd174e9aa4e58e7414bc", + "475e84f70334cc0bc8292", + "393fe0be8f011593a7e1ef", + "17276a59aa9630c1141c17", + "7d0578a8908ba294259bd", + "4a9e2e5d8ad0e2e82aa7de", + "63e0dbdfb13b4fbb46f00c", + "310e395e429c4494a5f850", + "7cc0116bd0bc164835ee72", + "634478b621f7f0a455c48c", + "397f144a181805e1a097c9", + "53016aa1427381b9f28ea5", + "76c2f0ba37187112ee4d4d", + "2bee268df09cc40864a917", + "7851b3168b92e5daed021f", + "149e6a0b6c6543ae895e07", + "1dd1b432dc809fe4c879b3", + "2ad2546b270547fc24541b", + "2015aa6fc7e48fa3bc5ab5", + "38596ed050f14596adc07f", + "1d2b9ca2f44294070d4e86", + "3778fd3a46ffde4755b6ce", + "74bb588b5553c2b2d4ac78", + "3d1155c4a53835d991a0f", + "35865b2ca16d3453781f41", + "6ba1300374acd487b23577", + "3f68fa1a9ab7772758d0ba", + "30a3461d63ca9807464dd6", + "552aca5af025ea1e84aadb", + "32aafc640e8c99bda8faa7", + "2fb170a11f1aecdf586d25", + "751e9eb348bc8239d6e118", + "7fc2bcc524b4326eb8303d", + "1cc2526113f2bae9b540c1", + "6a437e22c95fc6c6a4449d", + "df261ad3b5157a525bb81", + "690aa96130f8c533d77ce4", + "2f58f2df794a35875efc99", + "19772e34181f57b670bf9", + "60617400353c1eb8e8832b", + "7136b3dd116ed121aab68", + "4c95bed884bd87ec1d5e70", + "68fa3ecc3845db5d523ad9", + "4818e9ef0ea7625cfc3d0", + "27ec8c6636679988dd1267", + "57d88b5e0b434eb1a0dc08", + "47a1f466100bf70dd5689", + "55afbc51e7c2cc748942ac", + "75066462fdbbc7301e209b", + "72b5d8f8e65cb7509a93d8", + "38d9d05f9463a537f470b2", + "2f39a2788d5c2a24e16acc", + "5f4e7c70ff55ff2f888f05", + "735cfad9acf49090fb7037", + "6a716dae106b9aeff2133e", + "1c90fea5f39d8ac4dfc2a3", + "3a8c5a9525f5d62cea294d", + "498104aa12355244a9b0d6", + "414e761d40341e7f97c304", + "16d5205447831696c5d6a0", + "3cb5a124ce563c3967dbc3", + "899b1ac6f72ffff8aedfc", + "34eea7a66e8ff3dcc8988e", + "5f80095f2580ec4cf13b51", + "4d7566cd294f75be6620f3", + "506d84c9f4d4bc400fdd25", + "5a8a9b5c659b71e837ea18", + "c16d15fea9d61c8df5121", + "3a7a488015e75feec809f8", + "6fe27c77d57e2feb8cbcbf", + "452231c3bcde7b7b5b0af8", + "760f3656c1130b21d369d9", + "39a0c4e1da321f1bc126f4", + "3315173915ca23d8c1b814", + "1cec8c96472b84936bbc22", + "3c70a3f0e9c5b206031a33", + "7cec29d14a0eefb222bde7", + "760df490123f6613b0a970", + "5bf795c6d548a19b6ac340", + "5569560418e73ff9db709" +}; + +#endif /* __PARAMS_H__ */ + diff --git a/third_party/prio/prio/poly.c b/third_party/prio/prio/poly.c new file mode 100644 index 000000000000..22d4f4595b0d --- /dev/null +++ b/third_party/prio/prio/poly.c @@ -0,0 +1,188 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include + +#include "config.h" +#include "poly.h" +#include "util.h" + +/* + * A nice exposition of the recursive FFT/DFT algorithm we implement + * is in the book: + * + * "Modern Computer Algebra" + * by Von zur Gathen and Gerhard. + * Cambridge University Press, 2013. + * + * They present this algorithm as Algorithm 8.14. + */ +static SECStatus +fft_recurse (mp_int *out, const mp_int *mod, int n, + const mp_int *roots, const mp_int *ys, + mp_int *tmp, mp_int *ySub, mp_int *rootsSub) +{ + if (n == 1) { + MP_CHECK (mp_copy (&ys[0], &out[0])); + return SECSuccess; + } + + // Recurse on the first half + for (int i=0; i cfg->n_roots) + return SECFailure; + const mp_int *roots_in = invert ? cfg->rootsInv->data : cfg->roots->data; + const int step_size = cfg->n_roots / n_points; + + for (int i=0; i < n_points; i++) { + roots_out[i] = roots_in[i * step_size]; + } + + return SECSuccess; +} + +SECStatus +poly_fft (MPArray points_out, const_MPArray points_in, + const_PrioConfig cfg, bool invert) +{ + SECStatus rv = SECSuccess; + const int n_points = points_in->len; + if (points_out->len != points_in->len) + return SECFailure; + if (n_points > cfg->n_roots) + return SECFailure; + if (cfg->n_roots % n_points != 0) + return SECFailure; + + mp_int scaled_roots[n_points]; + P_CHECK (poly_fft_get_roots (scaled_roots, n_points, cfg, invert)); + + MP_CHECK (fft_interpolate_raw (points_out->data, points_in->data, n_points, + scaled_roots, &cfg->modulus, invert)); + + return SECSuccess; +} + + +SECStatus +poly_eval (mp_int *value, const_MPArray coeffs, const mp_int *eval_at, + const_PrioConfig cfg) +{ + SECStatus rv = SECSuccess; + const int n = coeffs->len; + + // Use Horner's method to evaluate the polynomial at the point + // `eval_at` + mp_copy (&coeffs->data[n-1], value); + for (int i=n-2; i >= 0; i--) { + MP_CHECK (mp_mulmod (value, eval_at, &cfg->modulus, value)); + MP_CHECK (mp_addmod (value, &coeffs->data[i], &cfg->modulus, value)); + } + + return rv; +} + +SECStatus +poly_interp_evaluate (mp_int *value, const_MPArray poly_points, + const mp_int *eval_at, const_PrioConfig cfg) +{ + SECStatus rv; + MPArray coeffs = NULL; + const int N = poly_points->len; + mp_int roots[N]; + + P_CHECKA (coeffs = MPArray_new (N)); + P_CHECKC (poly_fft_get_roots (roots, N, cfg, false)); + + // Interpolate polynomial through roots of unity + P_CHECKC (poly_fft (coeffs, poly_points, cfg, true)) + P_CHECKC (poly_eval (value, coeffs, eval_at, cfg)); + +cleanup: + MPArray_clear (coeffs); + return rv; +} diff --git a/third_party/prio/prio/poly.h b/third_party/prio/prio/poly.h new file mode 100644 index 000000000000..5f8e28f1b39a --- /dev/null +++ b/third_party/prio/prio/poly.h @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef _FFT__H +#define _FFT__H + +#include +#include +#include + +#include "mparray.h" + +/* + * Compute the FFT or inverse FFT of the array in `points_in`. + * The length of the input and output arrays must be a multiple + * of two and must be no longer than the number of precomputed + * roots in the PrioConfig object passed in. + */ +SECStatus poly_fft(MPArray points_out, const_MPArray points_in, + const_PrioConfig cfg, bool invert); + +/* + * Get an array + * (r^0, r^1, r^2, ... ) + * where r is an n-th root of unity, for n a power of two + * less than cfg->n_roots. + * + * Do NOT mp_clear() the mp_ints stored in roots_out. + * These are owned by the PrioConfig object. + */ +SECStatus poly_fft_get_roots (mp_int *roots_out, int n_points, + const_PrioConfig cfg, bool invert); + + + +/* + * Evaluate the polynomial specified by the coefficients + * at the point `eval_at` and return the result as `value`. + */ +SECStatus poly_eval (mp_int *value, const_MPArray coeffs, + const mp_int *eval_at, const_PrioConfig cfg); + + +/* + * Interpolate the polynomial through the points + * (x_1, y_1), ..., (x_N, y_N), + * where x_i is an N-th root of unity and the y_i values are + * specified by `poly_points`. Evaluate the resulting polynomial + * at the point `eval_at`. Return the result as `value`. + */ +SECStatus poly_interp_evaluate (mp_int *value, const_MPArray poly_points, + const mp_int *eval_at, const_PrioConfig cfg); + +#endif diff --git a/third_party/prio/prio/prg.c b/third_party/prio/prio/prg.c new file mode 100644 index 000000000000..992c6dea52d2 --- /dev/null +++ b/third_party/prio/prio/prg.c @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include +#include +#include +#include + +#include "prg.h" +#include "rand.h" +#include "share.h" +#include "util.h" + +struct prg { + PK11SlotInfo *slot; + PK11SymKey *key; + PK11Context *ctx; +}; + +SECStatus +PrioPRGSeed_randomize (PrioPRGSeed *key) +{ + return rand_bytes ((unsigned char *)key, PRG_SEED_LENGTH); +} + +PRG +PRG_new (const PrioPRGSeed key_in) +{ + PRG prg = malloc (sizeof (struct prg)); + if (!prg) return NULL; + prg->slot = NULL; + prg->key = NULL; + prg->ctx = NULL; + + SECStatus rv = SECSuccess; + const CK_MECHANISM_TYPE cipher = CKM_AES_CTR; + + P_CHECKA (prg->slot = PK11_GetInternalSlot ()); + + // Create a mutable copy of the key. + PrioPRGSeed key_mut; + memcpy (key_mut, key_in, PRG_SEED_LENGTH); + + SECItem keyItem = {siBuffer, key_mut, PRG_SEED_LENGTH}; + + // The IV can be all zeros since we only encrypt once with + // each AES key. + CK_AES_CTR_PARAMS param = {128, {}}; + SECItem paramItem = {siBuffer, (void *)¶m, sizeof(CK_AES_CTR_PARAMS)}; + + P_CHECKA (prg->key = PK11_ImportSymKey (prg->slot, cipher, PK11_OriginUnwrap, + CKA_ENCRYPT, &keyItem, NULL)); + + P_CHECKA (prg->ctx = PK11_CreateContextBySymKey(cipher, CKA_ENCRYPT, + prg->key, ¶mItem)); + +cleanup: + if (rv != SECSuccess) { + PRG_clear (prg); + prg = NULL; + } + + return prg; +} + + +void +PRG_clear (PRG prg) +{ + if (!prg) return; + + if (prg->key) + PK11_FreeSymKey (prg->key); + if (prg->slot) + PK11_FreeSlot (prg->slot); + if (prg->ctx) + PK11_DestroyContext (prg->ctx, PR_TRUE); + + free (prg); +} + +static SECStatus +PRG_get_bytes_internal (void *prg_vp, unsigned char *bytes, size_t len) +{ + PRG prg = (PRG)prg_vp; + + unsigned char in[len]; + memset (in, 0, len); + + int outlen; + SECStatus rv = PK11_CipherOp (prg->ctx, bytes, &outlen, len, in, len); + return (rv != SECSuccess || (size_t)outlen != len) ? SECFailure: SECSuccess; +} + +SECStatus +PRG_get_bytes (PRG prg, unsigned char *bytes, size_t len) +{ + return PRG_get_bytes_internal ((void *)prg, bytes, len); +} + +SECStatus +PRG_get_int (PRG prg, mp_int *out, const mp_int *max) +{ + return rand_int_rng (out, max, &PRG_get_bytes_internal, (void *)prg); +} + +SECStatus +PRG_get_array (PRG prg, MPArray dst, const mp_int *mod) +{ + SECStatus rv; + for (int i=0; ilen; i++) { + P_CHECK (PRG_get_int (prg, &dst->data[i], mod)); + } + + return SECSuccess; +} + +SECStatus +PRG_share_int (PRG prgB, mp_int *shareA, const mp_int *src, const_PrioConfig cfg) +{ + SECStatus rv = SECSuccess; + mp_int tmp; + MP_DIGITS (&tmp) = NULL; + + MP_CHECKC (mp_init (&tmp)); + P_CHECKC (PRG_get_int (prgB, &tmp, &cfg->modulus)); + MP_CHECKC (mp_submod (src, &tmp, &cfg->modulus, shareA)); + +cleanup: + mp_clear (&tmp); + return rv; +} + + +SECStatus +PRG_share_array (PRG prgB, MPArray arrA, + const_MPArray src, const_PrioConfig cfg) +{ + SECStatus rv = SECSuccess; + if (arrA->len != src->len) + return SECFailure; + + const int len = src->len; + + for (int i=0; i < len; i++) { + P_CHECK(PRG_share_int (prgB, &arrA->data[i], &src->data[i], cfg)); + } + + return rv; + +} diff --git a/third_party/prio/prio/prg.h b/third_party/prio/prio/prg.h new file mode 100644 index 000000000000..020f72856839 --- /dev/null +++ b/third_party/prio/prio/prg.h @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef __PRG_H__ +#define __PRG_H__ + +#include +#include +#include + +#include "config.h" + +typedef struct prg *PRG; +typedef const struct prg *const_PRG; + +/* + * Initialize or destroy a pseudo-random generator. + */ +PRG PRG_new (const PrioPRGSeed key); +void PRG_clear (PRG prg); + +/* + * Produce the next bytes of output from the PRG. + */ +SECStatus PRG_get_bytes (PRG prg, unsigned char *bytes, size_t len); + +/* + * Use the PRG output to sample a big integer x in the range + * 0 <= x < max. + */ +SECStatus PRG_get_int (PRG prg, mp_int *out, const mp_int *max); + +/* + * Use secret sharing to split the int src into two shares. + * Use PRG to generate the value `shareB`. + * The mp_ints must be initialized. + */ +SECStatus PRG_share_int (PRG prg, mp_int *shareA, const mp_int *src, + const_PrioConfig cfg); + +/* + * Set each item in the array to a pseudorandom value in the range + * [0, mod), where the values are generated using the PRG. + */ +SECStatus PRG_get_array (PRG prg, MPArray arr, const mp_int *mod); + +/* + * Secret shares the array in `src` into `arrA` using randomness + * provided by `prgB`. The arrays `src` and `arrA` must be the same + * length. + */ +SECStatus PRG_share_array (PRG prgB, MPArray arrA, + const_MPArray src, const_PrioConfig cfg); + + +#endif /* __PRG_H__ */ + diff --git a/third_party/prio/prio/rand.c b/third_party/prio/prio/rand.c new file mode 100644 index 000000000000..d13ae924f7e5 --- /dev/null +++ b/third_party/prio/prio/rand.c @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include +#include +#include +#include +#include + +#include "debug.h" +#include "rand.h" +#include "util.h" + +#define CHUNK_SIZE 8192 + +static NSSInitContext *prioGlobalContext = NULL; + +SECStatus +rand_init (void) +{ + if (prioGlobalContext) + return SECSuccess; + + prioGlobalContext = NSS_InitContext ("", "", "", "", NULL, + NSS_INIT_READONLY | + NSS_INIT_NOCERTDB | + NSS_INIT_NOMODDB | + NSS_INIT_FORCEOPEN | + NSS_INIT_NOROOTINIT); + + return (prioGlobalContext != NULL) ? SECSuccess : SECFailure; +} + +static SECStatus +rand_bytes_internal (void *user_data, unsigned char *out, size_t n_bytes) +{ + // No pointer should ever be passed in. + if (user_data != NULL) + return SECFailure; + if (!NSS_IsInitialized ()) { + PRIO_DEBUG ("NSS not initialized. Call rand_init() first."); + return SECFailure; + } + + SECStatus rv = SECFailure; + + int to_go = n_bytes; + unsigned char *cp = out; + while (to_go) { + int to_gen = MIN (CHUNK_SIZE, to_go); + if ((rv = PK11_GenerateRandom (cp, to_gen)) != SECSuccess) + { + PRIO_DEBUG ("Error calling PK11_GenerateRandom"); + return SECFailure; + } + + cp += CHUNK_SIZE; + to_go -= to_gen; + } + + return rv; +} + +SECStatus +rand_bytes (unsigned char *out, size_t n_bytes) +{ + return rand_bytes_internal (NULL, out, n_bytes); +} + +SECStatus +rand_int (mp_int *out, const mp_int *max) +{ + return rand_int_rng (out, max, &rand_bytes_internal, NULL); +} + +SECStatus +rand_int_rng (mp_int *out, const mp_int *max, + RandBytesFunc rng_func, void *user_data) +{ + SECStatus rv = SECSuccess; + + // Ensure max value is > 0 + if (mp_cmp_z (max) == 0) + return SECFailure; + + // Compute max-1, which tells us the largest + // value we will ever need to generate. + MP_CHECK (mp_sub_d (max, 1, out)); + + const int nbytes = mp_unsigned_octet_size (out); + + // Figure out how many MSBs we need to get in the + // most-significant byte. + unsigned char max_bytes[nbytes]; + MP_CHECK (mp_to_fixlen_octets (out, max_bytes, nbytes)); + const unsigned char mask = msb_mask (max_bytes[0]); + + // Buffer to store the pseudo-random bytes + unsigned char buf[nbytes]; + + do { + // Use rejection sampling to find a value strictly less than max. + P_CHECK (rng_func (user_data, buf, nbytes)); + + // Mask off high-order bits that we will never need. + P_CHECK (rng_func (user_data, &buf[0], 1)); + if (mask) buf[0] &= mask; + + MP_CHECK (mp_read_unsigned_octets (out, buf, nbytes)); + } while (mp_cmp (out, max) != -1); + + return 0; +} + +void +rand_clear (void) +{ + if (prioGlobalContext) { + NSS_ShutdownContext (prioGlobalContext); +#ifdef DO_PR_CLEANUP + PR_Cleanup (); +#endif + } + + prioGlobalContext = NULL; +} + diff --git a/third_party/prio/prio/rand.h b/third_party/prio/prio/rand.h new file mode 100644 index 000000000000..ea79beb7016d --- /dev/null +++ b/third_party/prio/prio/rand.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef __RAND_H__ +#define __RAND_H__ + +#include +#include +#include + +/* + * Typedef for function pointer. A function pointer of type RandBytesFunc + * points to a function that fills the buffer `out` of with `len` random bytes. + */ +typedef SECStatus (*RandBytesFunc) (void *user_data, unsigned char *out, size_t len); + +/* + * Initialize or cleanup the global random number generator + * state that NSS uses. + */ +SECStatus rand_init (void); +void rand_clear (void); + +/* + * Generate the specified number of random bytes using the + * NSS random number generator. + */ +SECStatus rand_bytes (unsigned char *out, size_t n_bytes); + +/* + * Generate a random number x such that + * 0 <= x < max + * using the NSS random number generator. + */ +SECStatus rand_int (mp_int *out, const mp_int *max); + +/* + * Generate a random number x such that + * 0 <= x < max + * using the specified randomness generator. + * + * The pointer user_data is passed to RandBytesFung `rng` as a first + * argument. + */ +SECStatus rand_int_rng (mp_int *out, const mp_int *max, + RandBytesFunc rng, void *user_data); + +#endif /* __RAND_H__ */ + diff --git a/third_party/prio/prio/serial.c b/third_party/prio/prio/serial.c new file mode 100644 index 000000000000..5282e89c104f --- /dev/null +++ b/third_party/prio/prio/serial.c @@ -0,0 +1,442 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include +#include + +#include "client.h" +#include "serial.h" +#include "server.h" +#include "share.h" +#include "util.h" + +#define MSGPACK_OK 0 + +static SECStatus +serial_write_mp_int (msgpack_packer *pk, const mp_int *n) +{ + SECStatus rv = SECSuccess; + unsigned int n_size = mp_unsigned_octet_size (n); + + unsigned char data[n_size]; + MP_CHECK (mp_to_fixlen_octets (n, data, n_size)); + + P_CHECK (msgpack_pack_str (pk, n_size)); + P_CHECK (msgpack_pack_str_body (pk, data, n_size)); + return rv; +} + +static SECStatus +object_to_mp_int (msgpack_object *obj, mp_int *n, const mp_int *max) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (obj != NULL); + P_CHECKCB (obj->type == MSGPACK_OBJECT_STR); + P_CHECKCB (n != NULL); + + msgpack_object_str s = obj->via.str; + P_CHECKCB (s.ptr != NULL); + MP_CHECKC (mp_read_unsigned_octets (n, (unsigned char *)s.ptr, s.size)); + + P_CHECKCB (mp_cmp_z (n) >= 0); + P_CHECKCB (mp_cmp (n, max) < 0); + +cleanup: + return rv; +} + +static SECStatus +serial_read_mp_int (msgpack_unpacker *upk, mp_int *n, const mp_int *max) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (upk != NULL); + P_CHECKCB (n != NULL); + P_CHECKCB (max != NULL); + + msgpack_unpacked res; + msgpack_unpacked_init (&res); + UP_CHECK (msgpack_unpacker_next (upk, &res)) + + msgpack_object obj = res.data; + P_CHECKC (object_to_mp_int (&obj, n, max)); + +cleanup: + msgpack_unpacked_destroy (&res); + + return rv; +} + +static SECStatus +serial_read_int (msgpack_unpacker *upk, int *n) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (upk != NULL); + P_CHECKCB (n != NULL); + + msgpack_unpacked res; + msgpack_unpacked_init (&res); + UP_CHECK (msgpack_unpacker_next (upk, &res)) + + msgpack_object obj = res.data; + P_CHECKCB (obj.type == MSGPACK_OBJECT_POSITIVE_INTEGER); + + *n = obj.via.i64; + +cleanup: + msgpack_unpacked_destroy (&res); + + return rv; +} + +static SECStatus +serial_write_mp_array (msgpack_packer *pk, const_MPArray arr) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (pk != NULL); + P_CHECKCB (arr != NULL); + + P_CHECK (msgpack_pack_array (pk, arr->len)); + for (int i = 0; i < arr->len; i++) { + P_CHECK (serial_write_mp_int (pk, &arr->data[i])); + } + +cleanup: + return rv; +} + +static SECStatus +serial_read_mp_array (msgpack_unpacker *upk, MPArray arr, size_t len, const mp_int + *max) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (upk != NULL); + P_CHECKCB (arr != NULL); + P_CHECKCB (max != NULL); + + msgpack_unpacked res; + msgpack_unpacked_init (&res); + UP_CHECK (msgpack_unpacker_next (upk, &res)) + + msgpack_object obj = res.data; + P_CHECKCB (obj.type == MSGPACK_OBJECT_ARRAY); + + msgpack_object_array objarr = obj.via.array; + P_CHECKCB (objarr.size == len); + + P_CHECKC (MPArray_resize (arr, len)); + for (unsigned int i=0; idata[i], max)); + } + +cleanup: + msgpack_unpacked_destroy (&res); + + return rv; +} + + +static SECStatus +serial_write_beaver_triple (msgpack_packer *pk, const_BeaverTriple t) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (pk != NULL); + P_CHECKCB (t != NULL); + + P_CHECK (serial_write_mp_int (pk, &t->a)); + P_CHECK (serial_write_mp_int (pk, &t->b)); + P_CHECK (serial_write_mp_int (pk, &t->c)); + +cleanup: + return rv; +} + +static SECStatus +serial_read_beaver_triple (msgpack_unpacker *pk, BeaverTriple t, const mp_int *max) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (pk != NULL); + P_CHECKCB (t != NULL); + P_CHECKCB (max != NULL); + + P_CHECK (serial_read_mp_int (pk, &t->a, max)); + P_CHECK (serial_read_mp_int (pk, &t->b, max)); + P_CHECK (serial_read_mp_int (pk, &t->c, max)); + +cleanup: + return rv; +} + +static SECStatus +serial_write_server_a_data (msgpack_packer *pk, const struct server_a_data *A) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (pk != NULL); + P_CHECKCB (A != NULL); + + P_CHECK (serial_write_mp_array (pk, A->data_shares)); + P_CHECK (serial_write_mp_array (pk, A->h_points)); +cleanup: + return rv; +} + +static SECStatus +serial_read_server_a_data (msgpack_unpacker *upk, struct server_a_data *A, + const_PrioConfig cfg) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (upk != NULL); + P_CHECKCB (A != NULL); + + P_CHECK (serial_read_mp_array (upk, A->data_shares, cfg->num_data_fields, + &cfg->modulus)); + P_CHECK (serial_read_mp_array (upk, A->h_points, PrioConfig_hPoints (cfg), + &cfg->modulus)); + +cleanup: + return rv; +} + +static SECStatus +serial_write_prg_seed (msgpack_packer *pk, const PrioPRGSeed *seed) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (pk != NULL); + P_CHECKCB (seed != NULL); + + P_CHECK (msgpack_pack_str (pk, PRG_SEED_LENGTH)); + P_CHECK (msgpack_pack_str_body (pk, seed, PRG_SEED_LENGTH)); + +cleanup: + return rv; +} + +static SECStatus +serial_read_prg_seed (msgpack_unpacker *upk, PrioPRGSeed *seed) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (upk != NULL); + P_CHECKCB (seed != NULL); + + msgpack_unpacked res; + msgpack_unpacked_init (&res); + UP_CHECK (msgpack_unpacker_next (upk, &res)) + + msgpack_object obj = res.data; + P_CHECKCB (obj.type == MSGPACK_OBJECT_STR); + + msgpack_object_str s = obj.via.str; + P_CHECKCB (s.size == PRG_SEED_LENGTH); + memcpy (seed, s.ptr, PRG_SEED_LENGTH); + +cleanup: + msgpack_unpacked_destroy (&res); + + return rv; +} + +static SECStatus +serial_write_server_b_data (msgpack_packer *pk, const struct server_b_data *B) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (pk != NULL); + P_CHECKCB (B != NULL); + + rv = serial_write_prg_seed (pk, &B->seed); +cleanup: + return rv; +} + +static SECStatus +serial_read_server_b_data (msgpack_unpacker *upk, struct server_b_data *B) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (upk != NULL); + P_CHECKCB (B != NULL); + + rv =serial_read_prg_seed (upk, &B->seed); +cleanup: + return rv; +} + +SECStatus +serial_write_packet_client (msgpack_packer *pk, const_PrioPacketClient p, + const_PrioConfig cfg) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (pk != NULL); + P_CHECKCB (p != NULL); + + P_CHECK (msgpack_pack_str (pk, cfg->batch_id_len)); + P_CHECK (msgpack_pack_str_body (pk, cfg->batch_id, cfg->batch_id_len)); + + P_CHECK (serial_write_beaver_triple (pk, p->triple)); + + P_CHECK (serial_write_mp_int (pk, &p->f0_share)); + P_CHECK (serial_write_mp_int (pk, &p->g0_share)); + P_CHECK (serial_write_mp_int (pk, &p->h0_share)); + + P_CHECK (msgpack_pack_int (pk, p->for_server)); + + switch (p->for_server) { + case PRIO_SERVER_A: + P_CHECK (serial_write_server_a_data (pk, &p->shares.A)); + break; + case PRIO_SERVER_B: + P_CHECK (serial_write_server_b_data (pk, &p->shares.B)); + break; + default: + return SECFailure; + } + +cleanup: + return rv; +} + +SECStatus +serial_read_server_id (msgpack_unpacker *upk, PrioServerId *s) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (upk != NULL); + P_CHECKCB (s != NULL); + + int serv; + P_CHECK (serial_read_int (upk, &serv)); + P_CHECKCB (serv == PRIO_SERVER_A || serv == PRIO_SERVER_B); + *s = serv; + +cleanup: + return rv; +} + +SECStatus +serial_read_packet_client (msgpack_unpacker *upk, PrioPacketClient p, + const_PrioConfig cfg) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (upk != NULL); + P_CHECKCB (p != NULL); + msgpack_unpacked res; + msgpack_unpacked_init (&res); + UP_CHECK (msgpack_unpacker_next (upk, &res)) + + msgpack_object obj = res.data; + P_CHECKCB (obj.type == MSGPACK_OBJECT_STR); + + msgpack_object_str s = obj.via.str; + P_CHECKCB (s.size == cfg->batch_id_len); + P_CHECKCB (!memcmp (s.ptr, (char *)cfg->batch_id, cfg->batch_id_len)); + + P_CHECK (serial_read_beaver_triple (upk, p->triple, &cfg->modulus)); + + P_CHECK (serial_read_mp_int (upk, &p->f0_share, &cfg->modulus)); + P_CHECK (serial_read_mp_int (upk, &p->g0_share, &cfg->modulus)); + P_CHECK (serial_read_mp_int (upk, &p->h0_share, &cfg->modulus)); + + P_CHECK (serial_read_server_id (upk, &p->for_server)); + + switch (p->for_server) { + case PRIO_SERVER_A: + P_CHECK (serial_read_server_a_data (upk, &p->shares.A, cfg)); + break; + case PRIO_SERVER_B: + P_CHECK (serial_read_server_b_data (upk, &p->shares.B)); + break; + default: + return SECFailure; + } + +cleanup: + msgpack_unpacked_destroy (&res); + return rv; +} + + +SECStatus +PrioPacketVerify1_write (const_PrioPacketVerify1 p, msgpack_packer *pk) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (pk != NULL); + P_CHECKCB (p != NULL); + + P_CHECK (serial_write_mp_int (pk, &p->share_d)); + P_CHECK (serial_write_mp_int (pk, &p->share_e)); + +cleanup: + return rv; +} + +SECStatus +PrioPacketVerify1_read (PrioPacketVerify1 p, msgpack_unpacker *upk, + const_PrioConfig cfg) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (upk != NULL); + P_CHECKCB (p != NULL); + + P_CHECK (serial_read_mp_int (upk, &p->share_d, &cfg->modulus)); + P_CHECK (serial_read_mp_int (upk, &p->share_e, &cfg->modulus)); + +cleanup: + return rv; +} + +SECStatus +PrioPacketVerify2_write (const_PrioPacketVerify2 p, msgpack_packer *pk) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (pk != NULL); + P_CHECKCB (p != NULL); + + P_CHECK (serial_write_mp_int (pk, &p->share_out)); + +cleanup: + return rv; +} + +SECStatus +PrioPacketVerify2_read (PrioPacketVerify2 p, msgpack_unpacker *upk, + const_PrioConfig cfg) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (upk != NULL); + P_CHECKCB (p != NULL); + + P_CHECK (serial_read_mp_int (upk, &p->share_out, &cfg->modulus)); + +cleanup: + return rv; +} + +SECStatus +PrioTotalShare_write (const_PrioTotalShare t, msgpack_packer *pk) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (t != NULL); + P_CHECKCB (pk != NULL); + P_CHECK (msgpack_pack_int (pk, t->idx)); + P_CHECK (serial_write_mp_array (pk, t->data_shares)); + +cleanup: + return rv; +} + +SECStatus +PrioTotalShare_read (PrioTotalShare t, msgpack_unpacker *upk, + const_PrioConfig cfg) +{ + SECStatus rv = SECSuccess; + P_CHECKCB (t != NULL); + P_CHECKCB (upk != NULL); + P_CHECK (serial_read_server_id (upk, &t->idx)); + P_CHECK (serial_read_mp_array (upk, t->data_shares, cfg->num_data_fields, + &cfg->modulus)); + +cleanup: + return rv; +} + diff --git a/third_party/prio/prio/serial.h b/third_party/prio/prio/serial.h new file mode 100644 index 000000000000..f4c9e0329021 --- /dev/null +++ b/third_party/prio/prio/serial.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef __SERIAL_H__ +#define __SERIAL_H__ + +#include + +SECStatus serial_write_packet_client (msgpack_packer *pk, const_PrioPacketClient p, + const_PrioConfig cfg); + +SECStatus serial_read_packet_client (msgpack_unpacker *upk, PrioPacketClient p, + const_PrioConfig cfg); + +#endif /* __SERIAL_H__ */ + diff --git a/third_party/prio/prio/server.c b/third_party/prio/prio/server.c new file mode 100644 index 000000000000..e30bd702160c --- /dev/null +++ b/third_party/prio/prio/server.c @@ -0,0 +1,481 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include +#include +#include +#include + +#include "client.h" +#include "prg.h" +#include "poly.h" +#include "mparray.h" +#include "server.h" +#include "util.h" + +PrioServer +PrioServer_new (const_PrioConfig cfg, PrioServerId server_idx, + PrivateKey server_priv, const PrioPRGSeed seed) +{ + SECStatus rv = SECSuccess; + PrioServer s = malloc (sizeof (*s)); + if (!s) return NULL; + s->cfg = cfg; + s->idx = server_idx; + s->priv_key = server_priv; + s->data_shares = NULL; + s->prg = NULL; + + P_CHECKA (s->data_shares = MPArray_new (s->cfg->num_data_fields)); + P_CHECKA (s->prg = PRG_new (seed)); + +cleanup: + if (rv != SECSuccess) { + PrioServer_clear (s); + return NULL; + } + + return s; +} + +void +PrioServer_clear (PrioServer s) +{ + if (!s) return; + + PRG_clear (s->prg); + MPArray_clear (s->data_shares); + free(s); +} + +SECStatus +PrioServer_aggregate (PrioServer s, PrioVerifier v) +{ + MPArray arr = NULL; + switch (s->idx) { + case PRIO_SERVER_A: + arr = v->clientp->shares.A.data_shares; + break; + case PRIO_SERVER_B: + arr = v->data_sharesB; + break; + default: + // Should never get here + return SECFailure; + } + + return MPArray_addmod (s->data_shares, arr, &s->cfg->modulus); +} + +PrioTotalShare +PrioTotalShare_new (void) +{ + PrioTotalShare t = malloc (sizeof (*t)); + if (!t) return NULL; + + t->data_shares = MPArray_new (0); + if (!t->data_shares) { + free (t); + return NULL; + } + + return t; +} + +void +PrioTotalShare_clear (PrioTotalShare t) +{ + if (!t) return; + MPArray_clear (t->data_shares); + free (t); +} + +SECStatus +PrioTotalShare_set_data (PrioTotalShare t, const_PrioServer s) +{ + t->idx = s->idx; + SECStatus rv = SECSuccess; + + P_CHECK (MPArray_resize (t->data_shares, s->data_shares->len)); + P_CHECK (MPArray_copy (t->data_shares, s->data_shares)); + + return rv; +} + +SECStatus +PrioTotalShare_final (const_PrioConfig cfg, + unsigned long *output, + const_PrioTotalShare tA, const_PrioTotalShare tB) +{ + if (tA->data_shares->len != cfg->num_data_fields) + return SECFailure; + if (tA->data_shares->len != tB->data_shares->len) + return SECFailure; + if (tA->idx != PRIO_SERVER_A || tB->idx != PRIO_SERVER_B) + return SECFailure; + + SECStatus rv = SECSuccess; + + mp_int tmp; + MP_DIGITS (&tmp) = NULL; + MP_CHECKC (mp_init (&tmp)); + + for (int i=0; inum_data_fields; i++) { + MP_CHECKC (mp_addmod(&tA->data_shares->data[i], &tB->data_shares->data[i], + &cfg->modulus, &tmp)); + + output[i] = tmp.dp[0]; + } + +cleanup: + mp_clear (&tmp); + return rv; +} + + +inline static mp_int * +get_data_share (const_PrioVerifier v, int i) { + switch (v->s->idx) { + case PRIO_SERVER_A: + return &v->clientp->shares.A.data_shares->data[i]; + case PRIO_SERVER_B: + return &v->data_sharesB->data[i]; + } + // Should never get here + return NULL; +} + +inline static mp_int * +get_h_share (const_PrioVerifier v, int i) { + switch (v->s->idx) { + case PRIO_SERVER_A: + return &v->clientp->shares.A.h_points->data[i]; + case PRIO_SERVER_B: + return &v->h_pointsB->data[i]; + } + // Should never get here + return NULL; +} + +/* + * Build shares of the polynomials f, g, and h used in the Prio verification + * routine and evalute these polynomials at a random point determined + * by the shared secret. Store the evaluations in the verifier object. + */ +static SECStatus +compute_shares (PrioVerifier v, const_PrioPacketClient p) +{ + SECStatus rv; + const int n = v->s->cfg->num_data_fields + 1; + const int N = next_power_of_two (n); + mp_int eval_at; + MP_DIGITS (&eval_at) = NULL; + + MPArray points_f = NULL; + MPArray points_g = NULL; + MPArray points_h = NULL; + + MP_CHECKC (mp_init (&eval_at)); + P_CHECKA (points_f = MPArray_new (N)); + P_CHECKA (points_g = MPArray_new (N)); + P_CHECKA (points_h = MPArray_new (2*N)); + + // Use PRG to generate random point + MP_CHECKC (PRG_get_int (v->s->prg, &eval_at, &v->s->cfg->modulus)); + + // Reduce value into the field we're using. This + // doesn't yield exactly a uniformly random point, + // but for values this large, it will be close + // enough. + MP_CHECKC (mp_mod (&eval_at, &v->s->cfg->modulus, &eval_at)); + + // Client sends us the values of f(0) and g(0) + MP_CHECKC (mp_copy(&p->f0_share, &points_f->data[0])); + MP_CHECKC (mp_copy(&p->g0_share, &points_g->data[0])); + MP_CHECKC (mp_copy(&p->h0_share, &points_h->data[0])); + + for (int i=1; idata[i])); + + // [g](i) = i-th data share minus 1 + // Only need to shift the share for 0-th server + MP_CHECKC (mp_copy(&points_f->data[i], &points_g->data[i])); + if (!v->s->idx) { + MP_CHECKC (mp_sub_d(&points_g->data[i], 1, &points_g->data[i])); + MP_CHECKC (mp_mod(&points_g->data[i], &v->s->cfg->modulus, &points_g->data[i])); + } + } + + int j = 0; + for (int i=1; i<2*N; i+=2) { + const mp_int *h_point_j = get_h_share (v, j++); + MP_CHECKC (mp_copy(h_point_j, &points_h->data[i])); + } + + P_CHECKC (poly_interp_evaluate (&v->share_fR, points_f, &eval_at, v->s->cfg)); + P_CHECKC (poly_interp_evaluate (&v->share_gR, points_g, &eval_at, v->s->cfg)); + P_CHECKC (poly_interp_evaluate (&v->share_hR, points_h, &eval_at, v->s->cfg)); + +cleanup: + MPArray_clear (points_f); + MPArray_clear (points_g); + MPArray_clear (points_h); + mp_clear (&eval_at); + return rv; +} + +PrioVerifier PrioVerifier_new (PrioServer s) +{ + SECStatus rv = SECSuccess; + PrioVerifier v = malloc (sizeof *v); + if (!v) return NULL; + + v->s = s; + v->clientp = NULL; + v->data_sharesB = NULL; + v->h_pointsB = NULL; + + MP_DIGITS (&v->share_fR) = NULL; + MP_DIGITS (&v->share_gR) = NULL; + MP_DIGITS (&v->share_hR) = NULL; + + MP_CHECKC (mp_init (&v->share_fR)); + MP_CHECKC (mp_init (&v->share_gR)); + MP_CHECKC (mp_init (&v->share_hR)); + + P_CHECKA (v->clientp = PrioPacketClient_new (s->cfg, s->idx)); + + const int N = next_power_of_two (s->cfg->num_data_fields + 1); + if (v->s->idx == PRIO_SERVER_B) { + P_CHECKA (v->data_sharesB = MPArray_new (v->s->cfg->num_data_fields)); + P_CHECKA (v->h_pointsB = MPArray_new (N)); + } + +cleanup: + if (rv != SECSuccess) { + PrioVerifier_clear (v); + return NULL; + } + + return v; +} + +SECStatus +PrioVerifier_set_data (PrioVerifier v, unsigned char *data, unsigned int data_len) +{ + SECStatus rv = SECSuccess; + PRG prgB = NULL; + P_CHECKC (PrioPacketClient_decrypt (v->clientp, v->s->cfg, + v->s->priv_key, data, data_len)); + + PrioPacketClient p = v->clientp; + if (p->for_server != v->s->idx) + return SECFailure; + + const int N = next_power_of_two (v->s->cfg->num_data_fields + 1); + if (v->s->idx == PRIO_SERVER_A) { + // Check that packet has the correct number of data fields + if (p->shares.A.data_shares->len != v->s->cfg->num_data_fields) + return SECFailure; + if (p->shares.A.h_points->len != N) + return SECFailure; + } + + if (v->s->idx == PRIO_SERVER_B) { + P_CHECKA (prgB = PRG_new (v->clientp->shares.B.seed)); + P_CHECKC (PRG_get_array (prgB, v->data_sharesB, &v->s->cfg->modulus)); + P_CHECKC (PRG_get_array (prgB, v->h_pointsB, &v->s->cfg->modulus)); + } + + // TODO: This can be done much faster by using the combined + // interpolate-and-evaluate optimization described in the + // Prio paper. + // + // Compute share of f(r), g(r), h(r) + P_CHECKC (compute_shares (v, p)); + +cleanup: + + PRG_clear (prgB); + return rv; +} + + +void PrioVerifier_clear (PrioVerifier v) +{ + if (v == NULL) return; + PrioPacketClient_clear (v->clientp); + MPArray_clear (v->data_sharesB); + MPArray_clear (v->h_pointsB); + mp_clear (&v->share_fR); + mp_clear (&v->share_gR); + mp_clear (&v->share_hR); + free (v); +} + +PrioPacketVerify1 +PrioPacketVerify1_new (void) +{ + SECStatus rv = SECSuccess; + PrioPacketVerify1 p = malloc (sizeof *p); + if (!p) return NULL; + + MP_DIGITS (&p->share_d) = NULL; + MP_DIGITS (&p->share_e) = NULL; + + MP_CHECKC (mp_init (&p->share_d)); + MP_CHECKC (mp_init (&p->share_e)); + +cleanup: + if (rv != SECSuccess) { + PrioPacketVerify1_clear (p); + return NULL; + } + + return p; +} + +void +PrioPacketVerify1_clear (PrioPacketVerify1 p) +{ + if (!p) return; + mp_clear (&p->share_d); + mp_clear (&p->share_e); + free (p); +} + +SECStatus +PrioPacketVerify1_set_data (PrioPacketVerify1 p1, const_PrioVerifier v) +{ + // See the Prio paper for details on how this works. + // Appendix C descrives the MPC protocol used here. + + SECStatus rv = SECSuccess; + + // Compute corrections. + // [d] = [f(r)] - [a] + MP_CHECK (mp_sub (&v->share_fR, &v->clientp->triple->a, &p1->share_d)); + MP_CHECK (mp_mod (&p1->share_d, &v->s->cfg->modulus, &p1->share_d)); + + // [e] = [g(r)] - [b] + MP_CHECK (mp_sub (&v->share_gR, &v->clientp->triple->b, &p1->share_e)); + MP_CHECK (mp_mod (&p1->share_e, &v->s->cfg->modulus, &p1->share_e)); + + return rv; +} + +PrioPacketVerify2 +PrioPacketVerify2_new (void) +{ + SECStatus rv = SECSuccess; + PrioPacketVerify2 p = malloc (sizeof *p); + if (!p) return NULL; + + MP_DIGITS (&p->share_out) = NULL; + MP_CHECKC (mp_init (&p->share_out)); + +cleanup: + if (rv != SECSuccess) { + PrioPacketVerify2_clear (p); + return NULL; + } + return p; +} + +void +PrioPacketVerify2_clear (PrioPacketVerify2 p) +{ + if (!p) return; + mp_clear (&p->share_out); + free (p); +} + +SECStatus +PrioPacketVerify2_set_data (PrioPacketVerify2 p2, const_PrioVerifier v, + const_PrioPacketVerify1 p1A, const_PrioPacketVerify1 p1B) +{ + SECStatus rv = SECSuccess; + + mp_int d, e, tmp; + MP_DIGITS (&d) = NULL; + MP_DIGITS (&e) = NULL; + MP_DIGITS (&tmp) = NULL; + + MP_CHECKC (mp_init (&d)); + MP_CHECKC (mp_init (&e)); + MP_CHECKC (mp_init (&tmp)); + + const mp_int *mod = &v->s->cfg->modulus; + + // Compute share of f(r)*g(r) + // [f(r)*g(r)] = [d*e/2] + d[b] + e[a] + [c] + + // Compute d + MP_CHECKC (mp_addmod (&p1A->share_d, &p1B->share_d, mod, &d)); + // Compute e + MP_CHECKC (mp_addmod (&p1A->share_e, &p1B->share_e, mod, &e)); + + // Compute d*e + MP_CHECKC (mp_mulmod (&d, &e, mod, &p2->share_out)); + // out = d*e/2 + MP_CHECKC (mp_mulmod (&p2->share_out, &v->s->cfg->inv2, + mod, &p2->share_out)); + + // Compute d[b] + MP_CHECKC (mp_mulmod (&d, &v->clientp->triple->b, mod, &tmp)); + // out = d*e/2 + d[b] + MP_CHECKC (mp_addmod (&p2->share_out, &tmp, mod, &p2->share_out)); + + // Compute e[a] + MP_CHECKC (mp_mulmod (&e, &v->clientp->triple->a, mod, &tmp)); + // out = d*e/2 + d[b] + e[a] + MP_CHECKC (mp_addmod (&p2->share_out, &tmp, mod, &p2->share_out)); + + // out = d*e/2 + d[b] + e[a] + [c] + MP_CHECKC (mp_addmod (&p2->share_out, &v->clientp->triple->c, mod, &p2->share_out)); + + // We want to compute f(r)*g(r) - h(r), + // so subtract off [h(r)]: + // out = d*e/2 + d[b] + e[a] + [c] - [h(r)] + MP_CHECKC (mp_sub (&p2->share_out, &v->share_hR, &p2->share_out)); + MP_CHECKC (mp_mod (&p2->share_out, mod, &p2->share_out)); + +cleanup: + mp_clear (&d); + mp_clear (&e); + mp_clear (&tmp); + return rv; +} + +int +PrioVerifier_isValid (const_PrioVerifier v, + const_PrioPacketVerify2 pA, const_PrioPacketVerify2 pB) +{ + SECStatus rv = SECSuccess; + mp_int res; + MP_DIGITS (&res) = NULL; + MP_CHECKC (mp_init (&res)); + + // Add up the shares of the output wire value and + // ensure that the sum is equal to zero, which indicates + // that + // f(r) * g(r) == h(r). + MP_CHECKC (mp_addmod (&pA->share_out, &pB->share_out, + &v->s->cfg->modulus, &res)); + + rv = (mp_cmp_d (&res, 0) == 0) ? SECSuccess : SECFailure; + +cleanup: + mp_clear (&res); + return rv; +} + + + diff --git a/third_party/prio/prio/server.h b/third_party/prio/prio/server.h new file mode 100644 index 000000000000..dd3ba6980dd1 --- /dev/null +++ b/third_party/prio/prio/server.h @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef __SERVER_H__ +#define __SERVER_H__ + +#include "mparray.h" +#include "prg.h" +#include "share.h" + +struct prio_total_share { + PrioServerId idx; + MPArray data_shares; +}; + +struct prio_server { + const_PrioConfig cfg; + PrioServerId idx; + + // Sever's private decryption key + PrivateKey priv_key; + + // The accumulated data values from the clients. + MPArray data_shares; + + // PRG used to generate randomness for checking the client + // data packets. Both servers initialize this PRG with the + // same shared seed. + PRG prg; +}; + +struct prio_verifier { + PrioServer s; + + PrioPacketClient clientp; + MPArray data_sharesB; + MPArray h_pointsB; + + mp_int share_fR; + mp_int share_gR; + mp_int share_hR; + mp_int share_out; +}; + +struct prio_packet_verify1 { + mp_int share_d; + mp_int share_e; +}; + +struct prio_packet_verify2 { + mp_int share_out; +}; + +#endif /* __SERVER_H__ */ + diff --git a/third_party/prio/prio/share.c b/third_party/prio/prio/share.c new file mode 100644 index 000000000000..c2205e487e22 --- /dev/null +++ b/third_party/prio/prio/share.c @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include + +#include "rand.h" +#include "share.h" +#include "util.h" + + +SECStatus +share_int (const struct prio_config *cfg, const mp_int *src, + mp_int *shareA, mp_int *shareB) +{ + SECStatus rv; + P_CHECK (rand_int (shareA, &cfg->modulus)); + MP_CHECK (mp_submod (src, shareA, &cfg->modulus, shareB)); + + return rv; +} + +BeaverTriple +BeaverTriple_new (void) +{ + BeaverTriple triple = malloc (sizeof *triple); + if (!triple) + return NULL; + + MP_DIGITS (&triple->a) = NULL; + MP_DIGITS (&triple->b) = NULL; + MP_DIGITS (&triple->c) = NULL; + + SECStatus rv = SECSuccess; + MP_CHECKC (mp_init (&triple->a)); + MP_CHECKC (mp_init (&triple->b)); + MP_CHECKC (mp_init (&triple->c)); + +cleanup: + if (rv != SECSuccess) { + BeaverTriple_clear (triple); + return NULL; + } + return triple; +} + + +void +BeaverTriple_clear (BeaverTriple triple) +{ + if (!triple) return; + mp_clear (&triple->a); + mp_clear (&triple->b); + mp_clear (&triple->c); + free (triple); +} + +SECStatus +BeaverTriple_set_rand (const struct prio_config *cfg, + struct beaver_triple *triple_1, + struct beaver_triple *triple_2) +{ + SECStatus rv = SECSuccess; + + // TODO: Can shorten this code using share_int() + + // We need that + // (a1 + a2)(b1 + b2) = c1 + c2 (mod p) + P_CHECK (rand_int (&triple_1->a, &cfg->modulus)); + P_CHECK (rand_int (&triple_1->b, &cfg->modulus)); + P_CHECK (rand_int (&triple_2->a, &cfg->modulus)); + P_CHECK (rand_int (&triple_2->b, &cfg->modulus)); + + // We are trying to be a little clever here to avoid the use of temp + // variables. + + // c1 = a1 + a2 + MP_CHECK (mp_addmod (&triple_1->a, &triple_2->a, &cfg->modulus, &triple_1->c)); + + // c2 = b1 + b2 + MP_CHECK (mp_addmod (&triple_1->b, &triple_2->b, &cfg->modulus, &triple_2->c)); + + // c1 = c1 * c2 = (a1 + a2) (b1 + b2) + MP_CHECK (mp_mulmod (&triple_1->c, &triple_2->c, &cfg->modulus, &triple_1->c)); + + // Set c2 to random blinding value + MP_CHECK (rand_int (&triple_2->c, &cfg->modulus)); + + // c1 = c1 - c2 + MP_CHECK (mp_submod (&triple_1->c, &triple_2->c, &cfg->modulus, &triple_1->c)); + + // Now we should have random tuples satisfying: + // (a1 + a2) (b1 + b2) = c1 + c2 + + return rv; +} + +bool +BeaverTriple_areEqual (const_BeaverTriple t1, const_BeaverTriple t2) +{ + return (mp_cmp (&t1->a, &t2->a) == 0 && + mp_cmp (&t1->b, &t2->b) == 0 && + mp_cmp (&t1->c, &t2->c) == 0); +} diff --git a/third_party/prio/prio/share.h b/third_party/prio/prio/share.h new file mode 100644 index 000000000000..bcf7e7b3a3d7 --- /dev/null +++ b/third_party/prio/prio/share.h @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + + +#ifndef __SHARE_H__ +#define __SHARE_H__ + +#include + +#include "config.h" + +struct beaver_triple { + mp_int a; + mp_int b; + mp_int c; +}; + +typedef struct beaver_triple *BeaverTriple; +typedef const struct beaver_triple *const_BeaverTriple; + + +/* + * Use secret sharing to split the int src into two shares. + * The mp_ints must be initialized. + */ +SECStatus share_int (const_PrioConfig cfg, const mp_int *src, + mp_int *shareA, mp_int *shareB); + + +/* + * Prio uses Beaver triples to implement one step of the + * client data validation routine. A Beaver triple is just + * a sharing of random values a, b, c such that + * a * b = c + */ +BeaverTriple BeaverTriple_new (void); +void BeaverTriple_clear (BeaverTriple t); + +SECStatus BeaverTriple_set_rand (const_PrioConfig cfg, + BeaverTriple triple_a, + BeaverTriple triple_b); + +bool BeaverTriple_areEqual (const_BeaverTriple t1, const_BeaverTriple t2); + +#endif /* __SHARE_H__ */ + diff --git a/third_party/prio/prio/util.h b/third_party/prio/prio/util.h new file mode 100644 index 000000000000..d9122566d493 --- /dev/null +++ b/third_party/prio/prio/util.h @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef __UTIL_H__ +#define __UTIL_H__ + +#include +#include + +// Minimum of two values +#define MIN(a, b) ((a) < (b) ? (a) : (b)) + +// Check a Prio error code and return failure if the call fails. +#define P_CHECK(s) \ + do { \ + if((rv = (s)) != SECSuccess) \ + return rv; \ + } while(0); + +// Check an allocation that should not return NULL. If the allocation returns +// NULL, set the return value and jump to the cleanup label to free memory. +#define P_CHECKA(s) \ + do { \ + if((s) == NULL) {\ + rv = SECFailure;\ + goto cleanup;\ + }\ + } while(0); + +// Check a Prio library call that should return SECSuccess. If it doesn't, +// jump to the cleanup label. +#define P_CHECKC(s) \ + do { \ + if((rv = (s)) != SECSuccess) { \ + goto cleanup; \ + }\ + } while(0); + +// Check a boolean that should be true. If it not, +// jump to the cleanup label. +#define P_CHECKCB(s) \ + do { \ + if(!(s)) { \ + rv = SECFailure; \ + goto cleanup; \ + }\ + } while(0); + +// Check an MPI library call and return failure if it fails. +#define MP_CHECK(s) do { if((s) != MP_OKAY) return SECFailure; } while(0); + +// Check a msgpack object unpacked correctly +#define UP_CHECK(s) do { int r = (s); if(r != MSGPACK_UNPACK_SUCCESS &&\ + r != MSGPACK_UNPACK_EXTRA_BYTES) \ + return SECFailure; } while(0); + +// Check an MPI library call. If it fails, set the return code and jump +// to the cleanup label. +#define MP_CHECKC(s) \ + do { \ + if((s) != MP_OKAY) { \ + rv = SECFailure; \ + goto cleanup; \ + }\ + } while(0); + +inline int +next_power_of_two (int val) +{ + int i = val; + int out = 0; + for ( ; i > 0; i >>= 1) { + out++; + } + + int pow = 1 << out; + return (pow > 1 && pow/2 == val) ? val : pow; +} + +/* + * Return a mask that masks out all of the zero bits + */ +inline unsigned char +msb_mask (unsigned char val) +{ + unsigned char mask; + for (mask = 0x00; (val & mask) != val; mask = (mask << 1) + 1); + return mask; +} + +/* + * Specify that a parameter should be unused. + */ +#define UNUSED(x) (void)(x) + +#endif /* __UTIL_H__ */ + diff --git a/third_party/prio/ptest/MUTEST_LICENSE b/third_party/prio/ptest/MUTEST_LICENSE new file mode 100644 index 000000000000..c802e1e215bf --- /dev/null +++ b/third_party/prio/ptest/MUTEST_LICENSE @@ -0,0 +1,30 @@ +I don't like licenses, because I don't like having to worry about all this +legal stuff just for a simple piece of software I don't really mind anyone +using. But I also believe that it's important that people share and give back; +so I'm placing this work under the following license. + + +BOLA - Buena Onda License Agreement (v1.0) +------------------------------------------ + +This work is provided 'as-is', without any express or implied warranty. In no +event will the authors be held liable for any damages arising from the use of +this work. + +To all effects and purposes, this work is to be considered Public Domain. + + +However, if you want to be "Buena onda", you should: + +1. Not take credit for it, and give proper recognition to the authors. +2. Share your modifications, so everybody benefits from them. +4. Do something nice for the authors. +5. Help someone who needs it: sign up for some volunteer work or help your + neighbour paint the house. +6. Don't waste. Anything, but specially energy that comes from natural + non-renewable resources. Extra points if you discover or invent something + to replace them. +7. Be tolerant. Everything that's good in nature comes from cooperation. + +The order is important, and the further you go the more "Buena onda" you are. +Make the world a better place: be "Buena onda". diff --git a/third_party/prio/ptest/SConscript b/third_party/prio/ptest/SConscript new file mode 100644 index 000000000000..18b6e2e50ac4 --- /dev/null +++ b/third_party/prio/ptest/SConscript @@ -0,0 +1,44 @@ +import sys + +Import('env') + +prio_env = env.Clone() + +test_srcs = [ + "mutest.c", + "client_test.c", + "example_test.c", + "encrypt_test.c", + "fft_test.c", + "mpi_test.c", + "prg_test.c", + "rand_test.c", + "serial_test.c", + "server_test.c", + "share_test.c", +] + +libs = [ + "nss3", + "mpi", + "mprio", + "msgpackc" +] + +# Run the mutest script to generate the test harness code +bld = Builder(action = 'ptest/mkmutest ptest/mutest.h $SOURCES | $CC -c -xc -o $TARGET -') +prio_env.Append(BUILDERS = {'MkMutest' : bld}) + +prio_env.Append(LIBS = libs) + +# Enable mpi print +prio_env.Append(CFLAGS = ['-DMP_IOFUNC']) + +# Copy the mutest scripts to the build dir +prio_env.Install("mkmutest") +prio_env.Install("mutest.h") + +test_objs = prio_env.Object(test_srcs) +test_main = prio_env.MkMutest(test_objs) +prio_env.Program("ptest", [test_main] + test_objs) + diff --git a/third_party/prio/ptest/client_test.c b/third_party/prio/ptest/client_test.c new file mode 100644 index 000000000000..4a66c687b7b3 --- /dev/null +++ b/third_party/prio/ptest/client_test.c @@ -0,0 +1,160 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include + +#include "prio/client.h" +#include "prio/server.h" +#include "prio/util.h" +#include "mutest.h" + +void +mu_test_client__new (void) +{ + SECStatus rv = SECSuccess; + PrioConfig cfg = NULL; + PrioPacketClient pA = NULL; + PrioPacketClient pB = NULL; + + P_CHECKA (cfg = PrioConfig_newTest(23)); + P_CHECKA (pA = PrioPacketClient_new (cfg, PRIO_SERVER_A)); + P_CHECKA (pB = PrioPacketClient_new (cfg, PRIO_SERVER_B)); + + { + const int ndata = PrioConfig_numDataFields (cfg); + bool data_items[ndata]; + + for (int i=0; i < ndata; i++) { + // Arbitrary data + data_items[i] = (i % 3 == 1) || (i % 5 == 3); + } + + P_CHECKC (PrioPacketClient_set_data (cfg, data_items, pA, pB)); + } + +cleanup: + mu_check (rv == SECSuccess); + + PrioPacketClient_clear (pA); + PrioPacketClient_clear (pB); + PrioConfig_clear (cfg); +} + +void +test_client_agg (int nclients) +{ + SECStatus rv = SECSuccess; + PublicKey pkA = NULL; + PublicKey pkB = NULL; + PrivateKey skA = NULL; + PrivateKey skB = NULL; + PrioConfig cfg = NULL; + PrioServer sA = NULL; + PrioServer sB = NULL; + PrioTotalShare tA = NULL; + PrioTotalShare tB = NULL; + PrioVerifier vA = NULL; + PrioVerifier vB = NULL; + unsigned char *for_a = NULL; + unsigned char *for_b = NULL; + const unsigned char *batch_id = (unsigned char *)"test_batch"; + unsigned int batch_id_len = strlen ((char *)batch_id); + + PrioPRGSeed seed; + P_CHECKC (PrioPRGSeed_randomize (&seed)); + + P_CHECKC (Keypair_new (&skA, &pkA)); + P_CHECKC (Keypair_new (&skB, &pkB)); + P_CHECKA (cfg = PrioConfig_new (133, pkA, pkB, batch_id, batch_id_len)); + P_CHECKA (sA = PrioServer_new (cfg, 0, skA, seed)); + P_CHECKA (sB = PrioServer_new (cfg, 1, skB, seed)); + P_CHECKA (tA = PrioTotalShare_new ()); + P_CHECKA (tB = PrioTotalShare_new ()); + P_CHECKA (vA = PrioVerifier_new (sA)); + P_CHECKA (vB = PrioVerifier_new (sB)); + + const int ndata = PrioConfig_numDataFields (cfg); + + { + bool data_items[ndata]; + for (int i=0; i < ndata; i++) { + // Arbitrary data + data_items[i] = (i % 3 == 1) || (i % 5 == 3); + } + + for (int i=0; i < nclients; i++) { + unsigned int aLen, bLen; + P_CHECKC (PrioClient_encode (cfg, data_items, &for_a, &aLen, + &for_b, &bLen)); + + P_CHECKC (PrioVerifier_set_data (vA, for_a, aLen)); + P_CHECKC (PrioVerifier_set_data (vB, for_b, bLen)); + + mu_check (PrioServer_aggregate (sA, vA) == SECSuccess); + mu_check (PrioServer_aggregate (sB, vB) == SECSuccess); + + free (for_a); + free (for_b); + + for_a = NULL; + for_b = NULL; + } + + mu_check (PrioTotalShare_set_data (tA, sA) == SECSuccess); + mu_check (PrioTotalShare_set_data (tB, sB) == SECSuccess); + + unsigned long output[ndata]; + mu_check (PrioTotalShare_final (cfg, output, tA, tB) == SECSuccess); + for (int i=0; i < ndata; i++) { + unsigned long v = ((i % 3 == 1) || (i % 5 == 3)); + mu_check (output[i] == v*nclients); + } + } + + //rv = SECFailure; + //goto cleanup; + +cleanup: + mu_check (rv == SECSuccess); + if (for_a) free (for_a); + if (for_b) free (for_b); + + PublicKey_clear (pkA); + PublicKey_clear (pkB); + PrivateKey_clear (skA); + PrivateKey_clear (skB); + + PrioVerifier_clear (vA); + PrioVerifier_clear (vB); + + PrioTotalShare_clear (tA); + PrioTotalShare_clear (tB); + + PrioServer_clear (sA); + PrioServer_clear (sB); + PrioConfig_clear (cfg); +} + +void +mu_test_client__agg_1 (void) +{ + test_client_agg (1); +} + +void +mu_test_client__agg_2 (void) +{ + test_client_agg (2); +} + +void +mu_test_client__agg_10 (void) +{ + test_client_agg (10); +} + diff --git a/third_party/prio/ptest/encrypt_test.c b/third_party/prio/ptest/encrypt_test.c new file mode 100644 index 000000000000..5dfddabfcb23 --- /dev/null +++ b/third_party/prio/ptest/encrypt_test.c @@ -0,0 +1,228 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include +#include +#include +#include +#include +#include + +#include "mutest.h" +#include "prio/encrypt.h" +#include "prio/rand.h" +#include "prio/util.h" + + +void +mu_test_keygen (void) +{ + SECStatus rv = SECSuccess; + PublicKey pubkey = NULL; + PrivateKey pvtkey = NULL; + + P_CHECKC (Keypair_new (&pvtkey, &pubkey)); + mu_check (SECKEY_PublicKeyStrength (pubkey) == 32); + +cleanup: + mu_check (rv == SECSuccess); + PublicKey_clear (pubkey); + PrivateKey_clear (pvtkey); + return; +} + +void +test_encrypt_once (int bad, unsigned int inlen) +{ + SECStatus rv = SECSuccess; + PublicKey pubkey = NULL; + PrivateKey pvtkey = NULL; + PublicKey pubkey2 = NULL; + PrivateKey pvtkey2 = NULL; + + unsigned char *bytes_in = NULL; + unsigned char *bytes_enc = NULL; + unsigned char *bytes_dec = NULL; + + unsigned int enclen; + P_CHECKC (PublicKey_encryptSize (inlen, &enclen)); + unsigned int declen = enclen; + + P_CHECKA (bytes_in = malloc (inlen)); + P_CHECKA (bytes_enc = malloc (enclen)); + P_CHECKA (bytes_dec= malloc (enclen)); + P_CHECKC (rand_bytes (bytes_in, inlen)); + + memset (bytes_dec, 0, declen); + + unsigned int encryptedBytes; + P_CHECKC (Keypair_new (&pvtkey, &pubkey)); + P_CHECKC (Keypair_new (&pvtkey2, &pubkey2)); + P_CHECKC (PublicKey_encrypt (pubkey, bytes_enc, + &encryptedBytes, enclen, + bytes_in, inlen)); + mu_check (encryptedBytes == enclen); + + if (bad == 1) + enclen = 30; + + if (bad == 2) { + bytes_enc[4] = 6; + bytes_enc[5] = 0; + } + + if (bad == 3) { + bytes_enc[40] = 6; + bytes_enc[41] = 0; + } + + unsigned int decryptedBytes; + PrivateKey key_to_use = (bad == 4) ? pvtkey2 : pvtkey; + P_CHECKC (PrivateKey_decrypt (key_to_use, bytes_dec, &decryptedBytes, declen, + bytes_enc, enclen)); + mu_check (decryptedBytes == inlen); + mu_check (!strncmp ((char *)bytes_in, (char *)bytes_dec, inlen)); + +cleanup: + mu_check (bad ? (rv == SECFailure) : (rv == SECSuccess)); + if (bytes_in) free (bytes_in); + if (bytes_enc) free (bytes_enc); + if (bytes_dec) free (bytes_dec); + + PublicKey_clear (pubkey); + PrivateKey_clear (pvtkey); + PublicKey_clear (pubkey2); + PrivateKey_clear (pvtkey2); + return; +} + +void +mu_test_encrypt_good (void) +{ + test_encrypt_once (0, 100); +} + +void +mu_test_encrypt_good_long (void) +{ + test_encrypt_once (0, 1000000); +} + +void +mu_test_encrypt_too_short (void) +{ + test_encrypt_once (1, 87); +} + +void +mu_test_encrypt_garbage (void) +{ + test_encrypt_once (2, 10023); +} + +void +mu_test_encrypt_garbage2 (void) +{ + test_encrypt_once (3, 8123); +} + +void +mu_test_decrypt_wrong_key (void) +{ + test_encrypt_once (4, 81230); +} + +void +mu_test_export (void) +{ + SECStatus rv = SECSuccess; + PublicKey pubkey = NULL; + + unsigned char raw_bytes[CURVE25519_KEY_LEN]; + unsigned char raw_bytes2[CURVE25519_KEY_LEN]; + for (int i=0; i< CURVE25519_KEY_LEN; i++) { + raw_bytes[i] = (3*i+7) % 0xFF; + } + + P_CHECKC (PublicKey_import (&pubkey, raw_bytes, CURVE25519_KEY_LEN)); + P_CHECKC (PublicKey_export (pubkey, raw_bytes2)); + + for (int i=0; i< CURVE25519_KEY_LEN; i++) { + mu_check (raw_bytes[i] == raw_bytes2[i]); + } + +cleanup: + mu_check (rv == SECSuccess); + PublicKey_clear (pubkey); + return; +} + +void +mu_test_export_hex (void) +{ + SECStatus rv = SECSuccess; + PublicKey pubkey = NULL; + + const unsigned char hex_bytes[2*CURVE25519_KEY_LEN] = \ + "102030405060708090A0B0C0D0E0F00000FFEEDDCCBBAA998877665544332211"; + const unsigned char hex_bytesl[2*CURVE25519_KEY_LEN] = \ + "102030405060708090a0B0C0D0E0F00000FfeEddcCbBaa998877665544332211"; + + const unsigned char raw_bytes_should[CURVE25519_KEY_LEN] = { + 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, + 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0, 0x00, + 0x00, 0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA, 0x99, + 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11 }; + unsigned char raw_bytes[CURVE25519_KEY_LEN]; + unsigned char hex_bytes2[2*CURVE25519_KEY_LEN+1]; + + // Make sure that invalid lengths are rejected. + mu_check (PublicKey_import_hex (&pubkey, hex_bytes, + 2*CURVE25519_KEY_LEN-1) == SECFailure); + mu_check (PublicKey_import_hex (&pubkey, hex_bytes, + 2*CURVE25519_KEY_LEN+1) == SECFailure); + + // Import a key in upper-case hex + P_CHECKC (PublicKey_import_hex (&pubkey, hex_bytes, 2*CURVE25519_KEY_LEN)); + P_CHECKC (PublicKey_export (pubkey, raw_bytes)); + PublicKey_clear (pubkey); + pubkey = NULL; + + for (int i=0; i +#include "mutest.h" + + + +void +mu_test_example (void) +{ + mu_check (1); +} + + + diff --git a/third_party/prio/ptest/fft_test.c b/third_party/prio/ptest/fft_test.c new file mode 100644 index 000000000000..75d168bede0c --- /dev/null +++ b/third_party/prio/ptest/fft_test.c @@ -0,0 +1,170 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include +#include +#include + +#include "mutest.h" +#include "prio/config.h" +#include "prio/mparray.h" +#include "prio/poly.h" +#include "prio/util.h" + +void +mu_test__fft_one (void) +{ + SECStatus rv = SECSuccess; + PrioConfig cfg = NULL; + MPArray points_in = NULL; + MPArray points_out = NULL; + + P_CHECKA (cfg = PrioConfig_newTest (123)); + P_CHECKA (points_in = MPArray_new (1)); + P_CHECKA (points_out = MPArray_new (1)); + + mp_set (&points_in->data[0], 3); + mu_check (poly_fft (points_out, points_in, cfg, false) == SECSuccess); + + mu_check (mp_cmp_d(&points_in->data[0], 3) == 0); + mu_check (mp_cmp_d(&points_out->data[0], 3) == 0); + +cleanup: + mu_check (rv == SECSuccess); + MPArray_clear (points_in); + MPArray_clear (points_out); + + PrioConfig_clear (cfg); +} + +void +mu_test__fft_roots (void) +{ + SECStatus rv = SECSuccess; + PrioConfig cfg = NULL; + mp_int tmp; + MP_DIGITS (&tmp) = NULL; + + P_CHECKA (cfg = PrioConfig_newTest (90)); + MP_CHECKC (mp_init (&tmp)); + + mp_int roots[4]; + poly_fft_get_roots (roots, 4, cfg, false); + + for (int i=0; i<4; i++) { + mp_exptmod_d(&roots[i], 4, &cfg->modulus, &tmp); + mu_check (mp_cmp_d( &tmp, 1) == 0); + } + +cleanup: + mu_check (rv == SECSuccess); + mp_clear (&tmp); + PrioConfig_clear (cfg); +} + +void +mu_test__fft_simple (void) +{ + SECStatus rv = SECSuccess; + const int nPoints = 4; + + PrioConfig cfg = NULL; + MPArray points_in = NULL; + MPArray points_out = NULL; + + mp_int should_be, tmp; + mp_int roots[nPoints]; + MP_DIGITS (&should_be) = NULL; + MP_DIGITS (&tmp) = NULL; + for (int i=0; idata[0], 3); + mp_set (&points_in->data[1], 8); + mp_set (&points_in->data[2], 7); + mp_set (&points_in->data[3], 9); + mu_check (poly_fft (points_out, points_in, cfg, false) == SECSuccess); + + for (int i=0; imodulus, &tmp) == MP_OKAY); + mu_check (mp_mulmod(&tmp, &points_in->data[j], &cfg->modulus, &tmp) == MP_OKAY); + mu_check (mp_addmod(&should_be, &tmp, &cfg->modulus, &should_be) == MP_OKAY); + } + + /* + puts("Should be:"); + mp_print(&should_be, stdout); + puts(""); + mp_print(&points_out[i], stdout); + puts(""); + */ + mu_check (mp_cmp (&should_be, &points_out->data[i]) == 0); + } + +cleanup: + mu_check (rv == SECSuccess); + mp_clear (&tmp); + mp_clear (&should_be); + MPArray_clear (points_in); + MPArray_clear (points_out); + PrioConfig_clear (cfg); +} + +void +mu_test__fft_invert (void) +{ + SECStatus rv = SECSuccess; + const int nPoints = 8; + + PrioConfig cfg = NULL; + MPArray points_in = NULL; + MPArray points_out = NULL; + MPArray points_out2 = NULL; + mp_int roots[nPoints]; + + P_CHECKA (cfg = PrioConfig_newTest (91)); + P_CHECKA (points_in = MPArray_new (nPoints)); + P_CHECKA (points_out = MPArray_new (nPoints)); + P_CHECKA (points_out2 = MPArray_new (nPoints)); + + poly_fft_get_roots (roots, nPoints, cfg, false); + + mp_set (&points_in->data[0], 3); + mp_set (&points_in->data[1], 8); + mp_set (&points_in->data[2], 7); + mp_set (&points_in->data[3], 9); + mp_set (&points_in->data[4], 123); + mp_set (&points_in->data[5], 123123987); + mp_set (&points_in->data[6], 2); + mp_set (&points_in->data[7], 0); + mu_check (poly_fft(points_out, points_in, cfg, false) == SECSuccess); + mu_check (poly_fft(points_out2, points_out, cfg, true) == SECSuccess); + + for (int i=0; idata[i], &points_in->data[i]) == 0); + } + +cleanup: + mu_check (rv == SECSuccess); + + MPArray_clear (points_in); + MPArray_clear (points_out); + MPArray_clear (points_out2); + PrioConfig_clear (cfg); +} diff --git a/third_party/prio/ptest/mkmutest b/third_party/prio/ptest/mkmutest new file mode 100755 index 000000000000..d81501c19d3e --- /dev/null +++ b/third_party/prio/ptest/mkmutest @@ -0,0 +1,65 @@ +#!/usr/bin/env bash +# +# This file is part of mutest, a simple micro unit testing framework for C. +# +# mutest was written by Leandro Lucarella and is released +# under the BOLA license, please see the LICENSE file or visit: +# http://blitiri.com.ar/p/bola/ +# +# This is a simple script to generate a C file that runs all the test suites +# present in .o files passed as arguments. +# +# Please, read the README file for more details. +# + + +# the trick here is getting all the test cases present in an object file using +# nm. All the tests must take and return void, start with "mutest_" and, of +# course, should not be static, which leads to a small limitation: all test +# cases must have unique names, even across test suites. + +# the first argument should be mutest.h +if [ -z "$1" ] +then + echo "Too few arguments" >&2 + echo "Usage: $0 mutest_h_location [object files...]" >&2 + exit 1 +fi +mutest_h="$1" +shift +echo "#include \"$mutest_h\"" +echo "void mu_run_suites() {" +echo +for file in "$@" +do + pr_file=`echo "$file" | sed 's/\"/\\\\\"/g'` + suite=`basename "$file" .o | sed 's/\"/\\\\\"/g'` +#symbols=`nm "$file" | egrep '^[[:xdigit:]]{8} T mu_\w+$' | cut -c12-` + symbols=`nm "$file" | egrep ' T _mu_\w+$' | cut -c21-` + symbols+=`nm "$file" | egrep ' T mu_\w+$' | cut -c20-` + tests=`echo "$symbols" | egrep '^mu_test'` + inits=`echo "$symbols" | egrep '^mu_init'` + terms=`echo "$symbols" | egrep '^mu_term'` + echo -e '\tdo {' + echo -e '\t\tmutest_suite_name = "'"$suite"'";' + echo -e '\t\tmu_print(MU_SUITE, "\\nRunning suite '"'$suite'"'\\n");' + for init in $inits + do + echo -e "\\t\\tmu_run_init($init);" + done + for testcase in $tests + do + echo -e "\t\tmu_run_case($testcase);" + done + for term in $terms + do + echo -e "\t\tmu_run_term($term);" + done + echo -e "\t\tif (mutest_suite_failed) ++mutest_failed_suites;" + echo -e "\t\telse ++mutest_passed_suites;" + echo -e "\t\tmutest_suite_failed = 0;" + echo -e '\t} while (0);' + echo +done +echo "}" + diff --git a/third_party/prio/ptest/mpi_test.c b/third_party/prio/ptest/mpi_test.c new file mode 100644 index 000000000000..8c8d4e268077 --- /dev/null +++ b/third_party/prio/ptest/mpi_test.c @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include + +#include "mutest.h" + + +void +mu_test_mpi__add (void) +{ + mp_int a; + mp_int b; + mp_int c; + + mu_check (mp_init (&a) == MP_OKAY); + mu_check (mp_init (&b) == MP_OKAY); + mu_check (mp_init (&c) == MP_OKAY); + + mp_set (&a, 10); + mp_set (&b, 7); + mp_add (&a, &b, &c); + + mp_set (&a, 17); + mu_check (mp_cmp (&a, &c) == 0); + + mp_clear (&a); + mp_clear (&b); + mp_clear (&c); +} + + + diff --git a/third_party/prio/ptest/mutest.c b/third_party/prio/ptest/mutest.c new file mode 100644 index 000000000000..728340aa5cc2 --- /dev/null +++ b/third_party/prio/ptest/mutest.c @@ -0,0 +1,94 @@ +/* + * This file is part of mutest, a simple micro unit testing framework for C. + * + * mutest was written by Leandro Lucarella and is released + * under the BOLA license, please see the LICENSE file or visit: + * http://blitiri.com.ar/p/bola/ + * + * This is the main program, it runs all the test suites and shows the + * results. The main work (of running the test suite) is done by the (usually) + * synthesized mu_run_suites() function, which can be generated using the + * mkmutest script (or written manually). + * + * Please, read the README file for more details. + */ + +#include +#include /* printf(), fprintf() */ +#include /* strncmp() */ + +#include "mutest.h" /* MU_* constants, mu_print() */ + +/* + * note that all global variables are public because they need to be accessed + * from other modules, like the test suites or the module implementing + * mu_run_suites() + */ + +/* globals for managing test suites */ +const char* mutest_suite_name; +int mutest_failed_suites; +int mutest_passed_suites; +int mutest_skipped_suites; +int mutest_suite_failed; + + +/* globals for managing test cases */ +const char* mutest_case_name; +int mutest_failed_cases; +int mutest_passed_cases; +int mutest_case_failed; + + +/* globals for managing checks */ +int mutest_failed_checks; +int mutest_passed_checks; + + +/* verbosity level, see mutest.h */ +int mutest_verbose_level = 1; /* exported for use in test suites */ + + + +/* + * only -v is supported right now, both "-v -v" and "-vv" are accepted for + * increasing the verbosity by 2. + */ +void parse_args(__attribute__((unused)) int argc, char* argv[]) { + while (*++argv) { + if (strncmp(*argv, "-v", 2) == 0) { + ++mutest_verbose_level; + char* c = (*argv) + 1; + while (*++c) { + if (*c != 'v') + break; + ++mutest_verbose_level; + } + } + } +} + + +int main(int argc, char* argv[]) { + + Prio_init (); + parse_args(argc, argv); + + mu_run_suites(); + + Prio_clear (); + + mu_print(MU_SUMMARY, "\n" + "Tests done:\n" + "\t%d test suite(s) passed, %d failed, %d skipped.\n" + "\t%d test case(s) passed, %d failed.\n" + "\t%d check(s) passed, %d failed.\n" + "\n", + mutest_passed_suites, mutest_failed_suites, + mutest_skipped_suites, + mutest_passed_cases, mutest_failed_cases, + mutest_passed_checks, mutest_failed_checks); + + return (mutest_failed_suites + mutest_skipped_suites) ? 1 : 0; +} + diff --git a/third_party/prio/ptest/mutest.h b/third_party/prio/ptest/mutest.h new file mode 100644 index 000000000000..9afbac0c8d50 --- /dev/null +++ b/third_party/prio/ptest/mutest.h @@ -0,0 +1,248 @@ +/* + * This file is part of mutest, a simple micro unit testing framework for C. + * + * mutest was written by Leandro Lucarella and is released + * under the BOLA license, please see the LICENSE file or visit: + * http://blitiri.com.ar/p/bola/ + * + * This header file should be included in the source files that will make up + * a test suite. It's used for both C and Python implementation, but when + * using the Python implementation you should define the MUTEST_PY macro. + * If you implement your mu_run_suites() function yourself, you probably will + * need to include this header too (see mkmutest). + * + * Please, read the README file for more details. + */ + +#include /* fprintf() */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* verbosity level (each level shows all the previous levels too) */ +enum { + MU_QUIET = 0, /* be completely quiet */ + MU_ERROR, /* shows errors only */ + MU_SUMMARY, /* shows a summary */ + MU_SUITE, /* shows test suites progress */ + MU_CASE, /* shows test cases progress */ + MU_CHECK /* shows the current running check */ +}; + +/* print a message according to the verbosity level */ +#define mu_print(level, ...) \ + do { \ + if (mutest_verbose_level >= level) { \ + if (mutest_verbose_level == MU_ERROR) \ + fprintf(stderr, __VA_ARGS__); \ + else \ + fprintf(stdout, __VA_ARGS__); \ + } \ + } while (0) + +/* print an error message */ +#define mu_printerr(name, action) \ + mu_print(MU_ERROR, __FILE__ ":%d: " name " failed, "\ + action " test case\n", __LINE__); + +/* modify the internal state so a failure gets counted */ +#define mutest_count_err ++mutest_failed_checks; mutest_case_failed = 1; + +/* modify the internal state so a success gets counted */ +#define mutest_count_suc ++mutest_passed_checks; + +#ifdef __cplusplus + +#include + +/* print an error message triggered by a C++ exception */ +#define mu_printex(name, action, ex) \ + mu_print(MU_ERROR, __FILE__ ":%d: " name " failed, " \ + "exception thrown (%s), " action \ + " test case\n", __LINE__, ex); + +#define mutest_try try { +#define mutest_catch(name, action, final) \ + } catch (const std::exception& e) { \ + mutest_count_err \ + mu_printex(name, action, e.what()); \ + final; \ + } catch (...) { \ + mutest_count_err \ + mu_printex(name, action, "[unknown]"); \ + final; \ + } + +#else /* !__cplusplus */ + +#define mutest_try +#define mutest_catch(name, action, exp) + +#endif /* __cplusplus */ + +/* check that an expression evaluates to true, continue if the check fails */ +#define mu_check_base(exp, name, action, final) \ + do { \ + mu_print(MU_CHECK, "\t\t* Checking " name "(" #exp ")...\n"); \ + mutest_try \ + if (exp) mutest_count_suc \ + else { \ + mutest_count_err \ + mu_printerr(name "(" #exp ")", action); \ + final; \ + } \ + mutest_catch(name, action, final) \ + } while (0) + +/* check that an expression evaluates to true, continue if the check fails */ +#define mu_check(exp) mu_check_base(exp, "mu_check", "resuming", continue) + +/* + * ensure that an expression evaluates to true, abort the current test + * case if the check fails + */ +#define mu_ensure(exp) mu_check_base(exp, "mu_ensure", "aborting", return) + +#ifdef __cplusplus + +#define mu_echeck_base(ex, exp, name, action, final) \ + do { \ + mu_print(MU_CHECK, "\t\t* Checking " name "(" #ex ", " #exp \ + ")...\n"); \ + try { \ + exp; \ + mutest_count_err \ + mu_printerr(name "(" #ex ", " #exp ")", \ + "no exception thrown, " action); \ + final; \ + } catch (const ex& e) { \ + mutest_count_suc \ + } catch (const std::exception& e) { \ + mutest_count_err \ + mu_printex(name "(" #ex ", " #exp ")", action, \ + e.what()); \ + final; \ + } catch (...) { \ + mutest_count_err \ + mu_printex(name "(" #ex ", " #exp ")", action, \ + "[unknown]"); \ + final; \ + } \ + } while (0) + +/* + * check that an expression throws a particular exception, continue if the + * check fails + */ +#define mu_echeck(ex, exp) \ + mu_echeck_base(ex, exp, "mu_echeck", "resuming", continue) + +/* + * ensure that an expression throws a particular exception, abort the current + * test case if the check fails + */ +#define mu_eensure(ex, exp) \ + mu_echeck_base(ex, exp, "mu_eensure", "aborting", return) + +#endif /* __cplusplus */ + +#ifndef MUTEST_PY /* we are using the C implementation */ + +/* + * this function implements the test suites execution, you should generate + * a module with this function using mkmutest, or take a look to that script + * if you want to implement your own customized version */ +void mu_run_suites(); + +/* macro for running a single initialization function */ +#ifndef mu_run_init +#define mu_run_init(name) \ + { \ + int name(); \ + int r; \ + mu_print(MU_CASE, "\t+ Executing initialization function " \ + "'" #name "'...\n"); \ + if ((r = name())) { \ + mu_print(MU_ERROR, "%s:" #name ": initialization " \ + "function failed (returned %d), " \ + "skipping test suite...\n", \ + mutest_suite_name, r); \ + ++mutest_skipped_suites; \ + break; \ + } \ + } do { } while (0) +#endif /* mu_run_init */ + +/* macro for running a single test case */ +#ifndef mu_run_case +#define mu_run_case(name) \ + do { \ + mu_print(MU_CASE, "\t* Executing test case '" #name "'...\n");\ + mutest_case_name = #name; \ + void name(); \ + name(); \ + if (mutest_case_failed) { \ + ++mutest_failed_cases; \ + mutest_suite_failed = 1; \ + } else ++mutest_passed_cases; \ + mutest_case_failed = 0; \ + } while (0) +#endif /* mu_run_case */ + +/* macro for running a single termination function */ +#ifndef mu_run_term +#define mu_run_term(name) \ + do { \ + mu_print(MU_CASE, "\t- Executing termination function '" \ + #name "'...\n"); \ + void name(); \ + name(); \ + } while (0) +#endif /* mu_run_term */ + +/* + * mutest exported variables for internal use, do not use directly unless you + * know what you're doing. + */ +extern const char* mutest_suite_name; +extern int mutest_failed_suites; +extern int mutest_passed_suites; +extern int mutest_skipped_suites; +extern int mutest_suite_failed; +/* test cases */ +extern const char* mutest_case_name; +extern int mutest_failed_cases; +extern int mutest_passed_cases; +extern int mutest_case_failed; +/* checks */ +extern int mutest_failed_checks; +extern int mutest_passed_checks; +/* verbosity */ +extern int mutest_verbose_level; + +#else /* MUTEST_PY is defined, using the Python implementation */ + +/* this increments when the "API" changes, it's just for sanity check */ +int mutest_api_version = 1; + +int mutest_case_failed; /* unused, for C implementation compatibility */ + +int mutest_passed_checks; +int mutest_failed_checks; +void mutest_reset_counters() { + mutest_passed_checks = 0; + mutest_failed_checks = 0; +} + +int mutest_verbose_level = MU_ERROR; +void mutest_set_verbose_level(int val) { + mutest_verbose_level = val; +} + +#endif /* MUTEST_PY */ + +#ifdef __cplusplus +} +#endif + diff --git a/third_party/prio/ptest/prg_test.c b/third_party/prio/ptest/prg_test.c new file mode 100644 index 000000000000..289f8024b974 --- /dev/null +++ b/third_party/prio/ptest/prg_test.c @@ -0,0 +1,345 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include + +#include "mutest.h" +#include "prio/prg.h" +#include "prio/util.h" + +void +mu_test__prg_simple (void) +{ + SECStatus rv = SECSuccess; + PrioPRGSeed key; + PRG prg = NULL; + + P_CHECKC (PrioPRGSeed_randomize (&key)); + P_CHECKA (prg = PRG_new (key)); + +cleanup: + mu_check (rv == SECSuccess); + PRG_clear (prg); +} + +void +mu_test__prg_repeat (void) +{ + SECStatus rv = SECSuccess; + const int buflen = 10000; + unsigned char buf1[buflen]; + unsigned char buf2[buflen]; + + PrioPRGSeed key; + PRG prg1 = NULL; + PRG prg2 = NULL; + + buf1[3] = 'a'; + buf2[3] = 'b'; + + P_CHECKC (PrioPRGSeed_randomize (&key)); + P_CHECKA (prg1 = PRG_new (key)); + P_CHECKA (prg2 = PRG_new (key)); + + P_CHECKC (PRG_get_bytes (prg1, buf1, buflen)); + P_CHECKC (PRG_get_bytes (prg2, buf2, buflen)); + + bool all_zero = true; + for (int i=0; i -1); + +cleanup: + mu_check (rv == SECSuccess); + mp_clear (&max); + mp_clear (&out); + PRG_clear (prg); +} + +void +mu_test_prg__multiple_of_8 (void) +{ + test_prg_once (256); + test_prg_once (256*256); +} + + +void +mu_test_prg__near_multiple_of_8 (void) +{ + test_prg_once (256+1); + test_prg_once (256*256+1); +} + +void +mu_test_prg__odd (void) +{ + test_prg_once (39); + test_prg_once (123); + test_prg_once (993123); +} + +void +mu_test_prg__large (void) +{ + test_prg_once (1231239933); +} + +void +mu_test_prg__bit(void) +{ + test_prg_once (1); + for (int i = 0; i < 100; i++) + test_prg_once (2); +} + +void +test_prg_distribution (int limit) +{ + int bins[limit]; + SECStatus rv = SECSuccess; + PrioPRGSeed key; + mp_int max; + mp_int out; + PRG prg = NULL; + + MP_DIGITS (&max) = NULL; + MP_DIGITS (&out) = NULL; + + P_CHECKC (PrioPRGSeed_randomize (&key)); + P_CHECKA (prg = PRG_new (key)); + + MP_CHECKC (mp_init (&max)); + MP_CHECKC (mp_init (&out)); + + mp_set (&max, limit); + + for (int i = 0; i < limit; i++) { + bins[i] = 0; + } + + for (int i = 0; i < limit*limit; i++) { + P_CHECKC (PRG_get_int (prg, &out, &max)); + mu_check (mp_cmp_d (&out, limit) == -1); + mu_check (mp_cmp_z (&out) > -1); + + unsigned char ival[2] = {0x00, 0x00}; + MP_CHECKC (mp_to_fixlen_octets (&out, ival, 2)); + if (ival[1] + 256*ival[0] < limit) { + bins[ival[1] + 256*ival[0]] += 1; + } else { + mu_check (false); + } + } + + for (int i = 0; i < limit; i++) { + mu_check (bins[i] > limit/2); + } + +cleanup: + mu_check (rv == SECSuccess); + mp_clear (&max); + mp_clear (&out); + PRG_clear (prg); +} + + +void +mu_test__prg_distribution123 (void) +{ + test_prg_distribution(123); +} + +void +mu_test__prg_distribution257 (void) +{ + test_prg_distribution(257); +} + +void +mu_test__prg_distribution259 (void) +{ + test_prg_distribution(259); +} + +void +test_prg_distribution_large (mp_int *max) +{ + const int limit = 16; + int bins[limit]; + SECStatus rv = SECSuccess; + PrioPRGSeed key; + mp_int out; + PRG prg = NULL; + + MP_DIGITS (&out) = NULL; + + P_CHECKC (PrioPRGSeed_randomize (&key)); + P_CHECKA (prg = PRG_new (key)); + + MP_CHECKC (mp_init (&out)); + + for (int i = 0; i < limit; i++) { + bins[i] = 0; + } + + for (int i = 0; i < 100*limit*limit; i++) { + MP_CHECKC (PRG_get_int (prg, &out, max)); + mu_check (mp_cmp (&out, max) == -1); + mu_check (mp_cmp_z (&out) > -1); + + unsigned long res; + MP_CHECKC (mp_mod_d (&out, limit, &res)); + bins[res] += 1; + } + + for (int i = 0; i < limit; i++) { + mu_check (bins[i] > limit/2); + } + +cleanup: + mu_check (rv == SECSuccess); + mp_clear (&out); + PRG_clear (prg); +} + +void +mu_test__prg_distribution_large (void) +{ + SECStatus rv = SECSuccess; + mp_int max; + MP_DIGITS (&max) = NULL; + MP_CHECKC (mp_init (&max)); + + char bytes[] = "FF1230985198451798EDC8123"; + MP_CHECKC (mp_read_radix (&max, bytes, 16)); + test_prg_distribution_large (&max); + +cleanup: + mu_check (rv == SECSuccess); + mp_clear (&max); +} + + +void +mu_test__prg_share_arr (void) +{ + SECStatus rv = SECSuccess; + PrioConfig cfg = NULL; + MPArray arr = NULL; + MPArray arr_share = NULL; + PRG prg = NULL; + PrioPRGSeed seed; + + P_CHECKA (cfg = PrioConfig_newTest (72)); + P_CHECKC (PrioPRGSeed_randomize (&seed)); + P_CHECKA (arr = MPArray_new (10)); + P_CHECKA (arr_share = MPArray_new (10)); + P_CHECKA (prg = PRG_new (seed)); + + for (int i=0; i<10; i++) { + mp_set (&arr->data[i], i); + } + + P_CHECKC (PRG_share_array (prg, arr_share, arr, cfg)); + + // Reset PRG + PRG_clear (prg); + P_CHECKA (prg = PRG_new (seed)); + + // Read pseudorandom values into arr + P_CHECKC (PRG_get_array (prg, arr, &cfg->modulus)); + + + for (int i=0; i<10; i++) { + MP_CHECKC (mp_addmod (&arr->data[i], &arr_share->data[i], + &cfg->modulus, &arr->data[i])); + mu_check (mp_cmp_d (&arr->data[i], i) == 0); + } + +cleanup: + mu_check (rv == SECSuccess); + + PRG_clear (prg); + MPArray_clear (arr); + MPArray_clear (arr_share); + PrioConfig_clear (cfg); +} diff --git a/third_party/prio/ptest/rand_test.c b/third_party/prio/ptest/rand_test.c new file mode 100644 index 000000000000..f0efc9ca9af4 --- /dev/null +++ b/third_party/prio/ptest/rand_test.c @@ -0,0 +1,194 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include + +#include "mutest.h" +#include "prio/rand.h" +#include "prio/util.h" + +void +mu_test__util_msb_mast (void) +{ + mu_check (msb_mask (0x01) == 0x01); + mu_check (msb_mask (0x02) == 0x03); + mu_check (msb_mask (0x0C) == 0x0F); + mu_check (msb_mask (0x1C) == 0x1F); + mu_check (msb_mask (0xFF) == 0xFF); +} + +void +test_rand_once (int limit) +{ + mp_int max; + mp_int out; + + mu_check (mp_init (&max) == MP_OKAY); + mu_check (mp_init (&out) == MP_OKAY); + + mp_set (&max, limit); + + mu_check (rand_int (&out, &max) == MP_OKAY); + mu_check (mp_cmp_d (&out, limit) == -1); + mu_check (mp_cmp_z (&out) > -1); + + mp_clear (&max); + mp_clear (&out); +} + +void +mu_test_rand__multiple_of_8 (void) +{ + test_rand_once (256); + test_rand_once (256*256); +} + + +void +mu_test_rand__near_multiple_of_8 (void) +{ + test_rand_once (256+1); + test_rand_once (256*256+1); +} + +void +mu_test_rand__odd (void) +{ + test_rand_once (39); + test_rand_once (123); + test_rand_once (993123); +} + +void +mu_test_rand__large (void) +{ + test_rand_once (1231239933); +} + +void +mu_test_rand__bit(void) +{ + test_rand_once (1); + for (int i = 0; i < 100; i++) + test_rand_once (2); +} + +void +test_rand_distribution (int limit) +{ + SECStatus rv = SECSuccess; + int bins[limit]; + + mp_int max; + mp_int out; + + MP_DIGITS (&max) = NULL; + MP_DIGITS (&out) = NULL; + + MP_CHECKC (mp_init (&max)); + MP_CHECKC (mp_init (&out)); + + mp_set (&max, limit); + + for (int i = 0; i < limit; i++) { + bins[i] = 0; + } + + for (int i = 0; i < limit*limit; i++) { + mu_check (rand_int (&out, &max) == MP_OKAY); + mu_check (mp_cmp_d (&out, limit) == -1); + mu_check (mp_cmp_z (&out) > -1); + + unsigned char ival[2] = {0x00, 0x00}; + MP_CHECKC (mp_to_fixlen_octets (&out, ival, 2)); + if (ival[1] + 256*ival[0] < limit) { + bins[ival[1] + 256*ival[0]] += 1; + } else { + mu_check (false); + } + } + + for (int i = 0; i < limit; i++) { + mu_check (bins[i] > limit/2); + } + +cleanup: + mu_check (rv == SECSuccess); + mp_clear (&max); + mp_clear (&out); +} + + +void +mu_test__rand_distribution123 (void) +{ + test_rand_distribution(123); +} + +void +mu_test__rand_distribution257 (void) +{ + test_rand_distribution(257); +} + +void +mu_test__rand_distribution259 (void) +{ + test_rand_distribution(259); +} + +void +test_rand_distribution_large (mp_int *max) +{ + SECStatus rv = SECSuccess; + int limit = 16; + int bins[limit]; + + mp_int out; + MP_DIGITS (&out) = NULL; + MP_CHECKC (mp_init (&out)); + + for (int i = 0; i < limit; i++) { + bins[i] = 0; + } + + for (int i = 0; i < 100*limit*limit; i++) { + MP_CHECKC (rand_int (&out, max)); + mu_check (mp_cmp (&out, max) == -1); + mu_check (mp_cmp_z (&out) > -1); + + unsigned long res; + MP_CHECKC (mp_mod_d (&out, limit, &res)); + bins[res] += 1; + } + + for (int i = 0; i < limit; i++) { + mu_check (bins[i] > limit/2); + } + +cleanup: + mu_check (rv == SECSuccess); + mp_clear (&out); +} + +void +mu_test__rand_distribution_large (void) +{ + SECStatus rv = SECSuccess; + mp_int max; + MP_DIGITS (&max) = NULL; + MP_CHECKC (mp_init (&max)); + + char bytes[] = "FF1230985198451798EDC8123"; + MP_CHECKC (mp_read_radix (&max, bytes, 16)); + test_rand_distribution_large (&max); + +cleanup: + mu_check (rv == SECSuccess); + mp_clear (&max); +} diff --git a/third_party/prio/ptest/serial_test.c b/third_party/prio/ptest/serial_test.c new file mode 100644 index 000000000000..02388c82e6bb --- /dev/null +++ b/third_party/prio/ptest/serial_test.c @@ -0,0 +1,319 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include +#include +#include + +#include "mutest.h" +#include "prio/client.h" +#include "prio/config.h" +#include "prio/serial.h" +#include "prio/server.h" +#include "prio/util.h" + +SECStatus +gen_client_packets (const_PrioConfig cfg, PrioPacketClient pA, PrioPacketClient pB) +{ + SECStatus rv = SECSuccess; + + const int ndata = cfg->num_data_fields; + bool data_items[ndata]; + + for (int i=0; i < ndata; i++) { + data_items[i] = (i % 3 == 1) || (i % 5 == 3); + } + + P_CHECKC (PrioPacketClient_set_data (cfg, data_items, pA, pB)); + +cleanup: + return rv; +} + + +void serial_client (int bad) +{ + SECStatus rv = SECSuccess; + PrioConfig cfg = NULL; + PrioConfig cfg2 = NULL; + PrioPacketClient pA = NULL; + PrioPacketClient pB = NULL; + PrioPacketClient qA = NULL; + PrioPacketClient qB = NULL; + + const unsigned char *batch_id1 = (unsigned char *)"my_test_prio_batch1"; + const unsigned char *batch_id2 = (unsigned char *)"my_test_prio_batch2"; + const unsigned int batch_id_len = strlen ((char *)batch_id1); + + msgpack_sbuffer sbufA, sbufB; + msgpack_packer pkA, pkB; + msgpack_unpacker upkA, upkB; + + msgpack_sbuffer_init (&sbufA); + msgpack_packer_init (&pkA, &sbufA, msgpack_sbuffer_write); + + msgpack_sbuffer_init (&sbufB); + msgpack_packer_init (&pkB, &sbufB, msgpack_sbuffer_write); + + P_CHECKA (cfg = PrioConfig_new (100, NULL, NULL, batch_id1, batch_id_len)); + P_CHECKA (cfg2 = PrioConfig_new (100, NULL, NULL, batch_id2, batch_id_len)); + P_CHECKA (pA = PrioPacketClient_new (cfg, PRIO_SERVER_A)); + P_CHECKA (pB = PrioPacketClient_new (cfg, PRIO_SERVER_B)); + P_CHECKA (qA = PrioPacketClient_new (cfg, PRIO_SERVER_A)); + P_CHECKA (qB = PrioPacketClient_new (cfg, PRIO_SERVER_B)); + + P_CHECKC (gen_client_packets (cfg, pA, pB)); + + P_CHECKC (serial_write_packet_client (&pkA, pA, cfg)); + P_CHECKC (serial_write_packet_client (&pkB, pB, cfg)); + + if (bad == 1) { + sbufA.size = 1; + } + + if (bad == 2) { + memset (sbufA.data, 0, sbufA.size); + } + + const int size_a = sbufA.size; + const int size_b = sbufB.size; + + P_CHECKCB (msgpack_unpacker_init (&upkA, 0)); + P_CHECKCB (msgpack_unpacker_init (&upkB, 0)); + + P_CHECKCB (msgpack_unpacker_reserve_buffer (&upkA, size_a)); + P_CHECKCB (msgpack_unpacker_reserve_buffer (&upkB, size_b)); + + memcpy (msgpack_unpacker_buffer (&upkA), sbufA.data, size_a); + memcpy (msgpack_unpacker_buffer (&upkB), sbufB.data, size_b); + + msgpack_unpacker_buffer_consumed (&upkA, size_a); + msgpack_unpacker_buffer_consumed (&upkB, size_b); + + P_CHECKC (serial_read_packet_client (&upkA, qA, cfg)); + P_CHECKC (serial_read_packet_client (&upkB, qB, (bad == 3) ? cfg2 : cfg)); + + if (!bad) { + mu_check (PrioPacketClient_areEqual (pA, qA)); + mu_check (PrioPacketClient_areEqual (pB, qB)); + mu_check (!PrioPacketClient_areEqual (pB, qA)); + mu_check (!PrioPacketClient_areEqual (pA, qB)); + } + +cleanup: + PrioPacketClient_clear (pA); + PrioPacketClient_clear (pB); + PrioPacketClient_clear (qA); + PrioPacketClient_clear (qB); + PrioConfig_clear (cfg); + PrioConfig_clear (cfg2); + msgpack_sbuffer_destroy (&sbufA); + msgpack_sbuffer_destroy (&sbufB); + msgpack_unpacker_destroy (&upkA); + msgpack_unpacker_destroy (&upkB); + mu_check (bad ? rv == SECFailure : rv == SECSuccess); +} + + +void mu_test__serial_client (void) +{ + serial_client (0); +} + +void mu_test__serial_client_bad1 (void) +{ + serial_client (1); +} + +void mu_test__serial_client_bad2 (void) +{ + serial_client (2); +} + +void mu_test__serial_client_bad3 (void) +{ + serial_client (3); +} + +void test_verify1 (int bad) +{ + SECStatus rv = SECSuccess; + PrioPacketVerify1 v1 = NULL; + PrioPacketVerify1 v2 = NULL; + PrioConfig cfg = NULL; + + P_CHECKA (cfg = PrioConfig_newTest (1)); + P_CHECKA (v1 = PrioPacketVerify1_new()); + P_CHECKA (v2 = PrioPacketVerify1_new()); + mp_set (&v1->share_d, 4); + mp_set (&v1->share_e, 10); + + msgpack_sbuffer sbuf; + msgpack_packer pk; + msgpack_unpacker upk; + + msgpack_sbuffer_init (&sbuf); + msgpack_packer_init (&pk, &sbuf, msgpack_sbuffer_write); + + P_CHECKC (PrioPacketVerify1_write (v1, &pk)); + + if (bad == 1) { + mp_set (&cfg->modulus, 6); + } + + P_CHECKCB (msgpack_unpacker_init (&upk, 0)); + P_CHECKCB (msgpack_unpacker_reserve_buffer (&upk, sbuf.size)); + memcpy (msgpack_unpacker_buffer (&upk), sbuf.data, sbuf.size); + msgpack_unpacker_buffer_consumed (&upk, sbuf.size); + + P_CHECKC (PrioPacketVerify1_read (v2, &upk, cfg)); + + mu_check (!mp_cmp (&v1->share_d, &v2->share_d)); + mu_check (!mp_cmp (&v1->share_e, &v2->share_e)); + mu_check (!mp_cmp_d (&v2->share_d, 4)); + mu_check (!mp_cmp_d (&v2->share_e, 10)); + +cleanup: + mu_check (bad ? rv == SECFailure : rv == SECSuccess); + PrioConfig_clear (cfg); + PrioPacketVerify1_clear (v1); + PrioPacketVerify1_clear (v2); + msgpack_unpacker_destroy (&upk); + msgpack_sbuffer_destroy (&sbuf); +} + +void mu_test_verify1_good (void) +{ + test_verify1 (0); +} + +void mu_test_verify1_bad (void) +{ + test_verify1 (1); +} + +void test_verify2 (int bad) +{ + SECStatus rv = SECSuccess; + PrioPacketVerify2 v1 = NULL; + PrioPacketVerify2 v2 = NULL; + PrioConfig cfg = NULL; + + P_CHECKA (cfg = PrioConfig_newTest (1)); + P_CHECKA (v1 = PrioPacketVerify2_new()); + P_CHECKA (v2 = PrioPacketVerify2_new()); + mp_set (&v1->share_out, 4); + + msgpack_sbuffer sbuf; + msgpack_packer pk; + msgpack_unpacker upk; + + msgpack_sbuffer_init (&sbuf); + msgpack_packer_init (&pk, &sbuf, msgpack_sbuffer_write); + + P_CHECKC (PrioPacketVerify2_write (v1, &pk)); + + if (bad == 1) { + mp_set (&cfg->modulus, 4); + } + + P_CHECKCB (msgpack_unpacker_init (&upk, 0)); + P_CHECKCB (msgpack_unpacker_reserve_buffer (&upk, sbuf.size)); + memcpy (msgpack_unpacker_buffer (&upk), sbuf.data, sbuf.size); + msgpack_unpacker_buffer_consumed (&upk, sbuf.size); + + P_CHECKC (PrioPacketVerify2_read (v2, &upk, cfg)); + + mu_check (!mp_cmp (&v1->share_out, &v2->share_out)); + mu_check (!mp_cmp_d (&v2->share_out, 4)); + +cleanup: + mu_check (bad ? rv == SECFailure : rv == SECSuccess); + PrioConfig_clear (cfg); + PrioPacketVerify2_clear (v1); + PrioPacketVerify2_clear (v2); + msgpack_unpacker_destroy (&upk); + msgpack_sbuffer_destroy (&sbuf); +} + +void mu_test_verify2_good (void) +{ + test_verify2 (0); +} + +void mu_test_verify2_bad (void) +{ + test_verify2 (1); +} + + +void test_total_share (int bad) +{ + SECStatus rv = SECSuccess; + PrioTotalShare t1 = NULL; + PrioTotalShare t2 = NULL; + PrioConfig cfg = NULL; + + P_CHECKA (cfg = PrioConfig_newTest ((bad == 2 ? 4 : 3))); + P_CHECKA (t1 = PrioTotalShare_new ()); + P_CHECKA (t2 = PrioTotalShare_new ()); + + t1->idx = PRIO_SERVER_A; + P_CHECKC (MPArray_resize (t1->data_shares, 3)); + + mp_set (&t1->data_shares->data[0], 10); + mp_set (&t1->data_shares->data[1], 20); + mp_set (&t1->data_shares->data[2], 30); + + msgpack_sbuffer sbuf; + msgpack_packer pk; + msgpack_unpacker upk; + + msgpack_sbuffer_init (&sbuf); + msgpack_packer_init (&pk, &sbuf, msgpack_sbuffer_write); + + P_CHECKC (PrioTotalShare_write (t1, &pk)); + + if (bad == 1) { + mp_set (&cfg->modulus, 4); + } + + P_CHECKCB (msgpack_unpacker_init (&upk, 0)); + P_CHECKCB (msgpack_unpacker_reserve_buffer (&upk, sbuf.size)); + memcpy (msgpack_unpacker_buffer (&upk), sbuf.data, sbuf.size); + msgpack_unpacker_buffer_consumed (&upk, sbuf.size); + + P_CHECKC (PrioTotalShare_read (t2, &upk, cfg)); + + mu_check (t1->idx == t2->idx); + mu_check (MPArray_areEqual (t1->data_shares, t2->data_shares)); + +cleanup: + mu_check (bad ? rv == SECFailure : rv == SECSuccess); + PrioConfig_clear (cfg); + PrioTotalShare_clear (t1); + PrioTotalShare_clear (t2); + msgpack_unpacker_destroy (&upk); + msgpack_sbuffer_destroy (&sbuf); +} + +void mu_test_total_good (void) +{ + test_total_share (0); +} + +void mu_test_total_bad1 (void) +{ + test_total_share (1); +} + +void mu_test_total_bad2 (void) +{ + test_total_share (2); +} + diff --git a/third_party/prio/ptest/server_test.c b/third_party/prio/ptest/server_test.c new file mode 100644 index 000000000000..0a39c41bbd2a --- /dev/null +++ b/third_party/prio/ptest/server_test.c @@ -0,0 +1,298 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include +#include + +#include "mutest.h" +#include "prio/client.h" +#include "prio/server.h" +#include "prio/server.c" + +void mu_test__eval_poly (void) +{ + SECStatus rv = SECSuccess; + PrioConfig cfg = NULL; + MPArray coeffs = NULL; + mp_int eval_at, out; + + MP_DIGITS (&eval_at) = NULL; + MP_DIGITS (&out) = NULL; + + P_CHECKA (cfg = PrioConfig_newTest (54)); + P_CHECKA (coeffs = MPArray_new (3)); + + mp_set (&coeffs->data[0], 2); + mp_set (&coeffs->data[1], 8); + mp_set (&coeffs->data[2], 3); + + MP_CHECKC (mp_init (&eval_at)); + MP_CHECKC (mp_init (&out)); + mp_set (&eval_at, 7); + + const int val = 3*7*7 + 8*7 + 2; + mu_check (poly_eval (&out, coeffs, &eval_at, cfg) == SECSuccess); + mu_check (mp_cmp_d (&out, val) == 0); + +cleanup: + mu_check (rv == SECSuccess); + mp_clear (&out); + mp_clear (&eval_at); + MPArray_clear (coeffs); + PrioConfig_clear (cfg); +} + +void +mu_test__verify_new (void) +{ + SECStatus rv = SECSuccess; + PublicKey pkA = NULL; + PublicKey pkB = NULL; + PrivateKey skA = NULL; + PrivateKey skB = NULL; + PrioConfig cfg = NULL; + PrioServer sA = NULL; + PrioServer sB = NULL; + PrioVerifier vA = NULL; + PrioVerifier vB = NULL; + unsigned char *for_a = NULL; + unsigned char *for_b = NULL; + + mp_int fR, gR, hR; + MP_DIGITS (&fR) = NULL; + MP_DIGITS (&gR) = NULL; + MP_DIGITS (&hR) = NULL; + + PrioPRGSeed seed; + P_CHECKC (PrioPRGSeed_randomize (&seed)); + + P_CHECKC (Keypair_new (&skA, &pkA)); + P_CHECKC (Keypair_new (&skB, &pkB)); + P_CHECKA (cfg = PrioConfig_new (214, pkA, pkB, + (unsigned char *)"testbatch", 9)); + + const int ndata = PrioConfig_numDataFields (cfg); + { + bool data_items[ndata]; + for (int i=0; i < ndata; i++) { + // Arbitrary data + data_items[i] = (i % 3 == 1) || (i % 5 == 3); + } + + P_CHECKA (sA = PrioServer_new (cfg, 0, skA, seed)); + P_CHECKA (sB = PrioServer_new (cfg, 1, skB, seed)); + + unsigned int aLen, bLen; + P_CHECKC (PrioClient_encode (cfg, data_items, &for_a, &aLen, &for_b, &bLen)); + + MP_CHECKC (mp_init (&fR)); + MP_CHECKC (mp_init (&gR)); + MP_CHECKC (mp_init (&hR)); + + P_CHECKA (vA = PrioVerifier_new (sA)); + P_CHECKA (vB = PrioVerifier_new (sB)); + P_CHECKC (PrioVerifier_set_data (vA, for_a, aLen)); + P_CHECKC (PrioVerifier_set_data (vB, for_b, bLen)); + + PrioPacketClient pA = vA->clientp; + PrioPacketClient pB = vB->clientp; + MP_CHECKC (mp_addmod (&pA->f0_share, &pB->f0_share, &cfg->modulus, &fR)); + MP_CHECKC (mp_addmod (&pA->g0_share, &pB->g0_share, &cfg->modulus, &gR)); + MP_CHECKC (mp_addmod (&pA->h0_share, &pB->h0_share, &cfg->modulus, &hR)); + + MP_CHECKC (mp_mulmod (&fR, &gR, &cfg->modulus, &fR)); + mu_check (mp_cmp (&fR, &hR) == 0); + + + MP_CHECKC (mp_addmod (&vA->share_fR, &vB->share_fR, &cfg->modulus, &fR)); + MP_CHECKC (mp_addmod (&vA->share_gR, &vB->share_gR, &cfg->modulus, &gR)); + MP_CHECKC (mp_addmod (&vA->share_hR, &vB->share_hR, &cfg->modulus, &hR)); + + MP_CHECKC (mp_mulmod (&fR, &gR, &cfg->modulus, &fR)); + + //puts ("fR"); + //mp_print (&fR, stdout); + //puts ("hR"); + //mp_print (&hR, stdout); + mu_check (mp_cmp (&fR, &hR) == 0); + } + +cleanup: + mu_check (rv == SECSuccess); + + if (for_a) free (for_a); + if (for_b) free (for_b); + + mp_clear (&fR); + mp_clear (&gR); + mp_clear (&hR); + + PrioVerifier_clear (vA); + PrioVerifier_clear (vB); + + PrioServer_clear (sA); + PrioServer_clear (sB); + PrioConfig_clear (cfg); + + PublicKey_clear (pkA); + PublicKey_clear (pkB); + PrivateKey_clear (skA); + PrivateKey_clear (skB); + +} + +void +verify_full (int tweak) +{ + SECStatus rv = SECSuccess; + PublicKey pkA = NULL; + PublicKey pkB = NULL; + PrivateKey skA = NULL; + PrivateKey skB = NULL; + PrioConfig cfg = NULL; + PrioServer sA = NULL; + PrioServer sB = NULL; + PrioVerifier vA = NULL; + PrioVerifier vB = NULL; + PrioPacketVerify1 p1A = NULL; + PrioPacketVerify1 p1B = NULL; + PrioPacketVerify2 p2A = NULL; + PrioPacketVerify2 p2B = NULL; + unsigned char *for_a = NULL; + unsigned char *for_b = NULL; + + mp_int fR, gR, hR; + MP_DIGITS (&fR) = NULL; + MP_DIGITS (&gR) = NULL; + MP_DIGITS (&hR) = NULL; + + PrioPRGSeed seed; + P_CHECKC (PrioPRGSeed_randomize (&seed)); + + P_CHECKC (Keypair_new (&skA, &pkA)); + P_CHECKC (Keypair_new (&skB, &pkB)); + P_CHECKA (cfg = PrioConfig_new (47, pkA, pkB, (unsigned char *)"test4", 5)); + + const int ndata = PrioConfig_numDataFields (cfg); + { + bool data_items[ndata]; + for (int i=0; i < ndata; i++) { + // Arbitrary data + data_items[i] = (i % 3 == 1) || (i % 5 == 3); + } + + P_CHECKA (sA = PrioServer_new (cfg, 0, skA, seed)); + P_CHECKA (sB = PrioServer_new (cfg, 1, skB, seed)); + + unsigned int aLen, bLen; + P_CHECKC (PrioClient_encode (cfg, data_items, &for_a, &aLen, &for_b, &bLen)); + + if (tweak == 5) { + for_a[3] = 3; + for_a[4] = 4; + } + + P_CHECKA (vA = PrioVerifier_new (sA)); + P_CHECKA (vB = PrioVerifier_new (sB)); + P_CHECKC (PrioVerifier_set_data (vA, for_a, aLen)); + P_CHECKC (PrioVerifier_set_data (vB, for_b, bLen)); + + if (tweak == 3) { + mp_add_d (&vA->share_fR, 1, &vA->share_fR); + } + + if (tweak == 4) { + mp_add_d (&vB->share_gR, 1, &vB->share_gR); + } + + P_CHECKA (p1A = PrioPacketVerify1_new ()); + P_CHECKA (p1B = PrioPacketVerify1_new ()); + + P_CHECKC (PrioPacketVerify1_set_data (p1A, vA)); + P_CHECKC (PrioPacketVerify1_set_data (p1B, vB)); + + if (tweak == 1) { + mp_add_d (&p1B->share_d, 1, &p1B->share_d); + } + + P_CHECKA (p2A = PrioPacketVerify2_new ()); + P_CHECKA (p2B = PrioPacketVerify2_new ()); + P_CHECKC (PrioPacketVerify2_set_data (p2A, vA, p1A, p1B)); + P_CHECKC (PrioPacketVerify2_set_data (p2B, vB, p1A, p1B)); + + if (tweak == 2) { + mp_add_d (&p2A->share_out, 1, &p2B->share_out); + } + + int shouldBe = tweak ? SECFailure : SECSuccess; + mu_check (PrioVerifier_isValid (vA, p2A, p2B) == shouldBe); + mu_check (PrioVerifier_isValid (vB, p2A, p2B) == shouldBe); + } + +cleanup: + if (!tweak) { + mu_check (rv == SECSuccess); + } + + if (for_a) free (for_a); + if (for_b) free (for_b); + + PrioPacketVerify2_clear (p2A); + PrioPacketVerify2_clear (p2B); + + PrioPacketVerify1_clear (p1A); + PrioPacketVerify1_clear (p1B); + + PrioVerifier_clear (vA); + PrioVerifier_clear (vB); + + PrioServer_clear (sA); + PrioServer_clear (sB); + PrioConfig_clear (cfg); + + PublicKey_clear (pkA); + PublicKey_clear (pkB); + PrivateKey_clear (skA); + PrivateKey_clear (skB); +} + +void +mu_test__verify_full_good (void) +{ + verify_full (0); +} + +void +mu_test__verify_full_bad1 (void) +{ + verify_full (1); +} + +void +mu_test__verify_full_bad2 (void) +{ + verify_full (2); +} + +void +mu_test__verify_full_bad3 (void) +{ + verify_full (3); +} + +void +mu_test__verify_full_bad4 (void) +{ + verify_full (4); +} + +void +mu_test__verify_full_bad5 (void) +{ + verify_full (5); +} diff --git a/third_party/prio/ptest/share_test.c b/third_party/prio/ptest/share_test.c new file mode 100644 index 000000000000..69e2a2ef6fad --- /dev/null +++ b/third_party/prio/ptest/share_test.c @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2018, Henry Corrigan-Gibbs + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include +#include + +#include "prio/client.h" +#include "prio/config.h" +#include "prio/mparray.h" +#include "prio/share.h" +#include "prio/util.h" +#include "mutest.h" + +void +mu_test_share (void) +{ + SECStatus rv = SECSuccess; + PrioConfig cfg = NULL; + mp_int a, b, c; + BeaverTriple t1 = NULL, t2 = NULL; + + MP_DIGITS (&a) = NULL; + MP_DIGITS (&b) = NULL; + MP_DIGITS (&c) = NULL; + + P_CHECKA (cfg = PrioConfig_newTest (93)); + P_CHECKA (t1 = BeaverTriple_new ()); + P_CHECKA (t2 = BeaverTriple_new ()); + + mu_check (BeaverTriple_set_rand (cfg, t1, t2) == SECSuccess); + + MP_CHECKC (mp_init (&a)); + MP_CHECKC (mp_init (&b)); + MP_CHECKC (mp_init (&c)); + + mu_check (mp_addmod (&t1->a, &t2->a, &cfg->modulus, &a) == MP_OKAY); + mu_check (mp_addmod (&t1->b, &t2->b, &cfg->modulus, &b) == MP_OKAY); + mu_check (mp_addmod (&t1->c, &t2->c, &cfg->modulus, &c) == MP_OKAY); + mu_check (mp_mulmod (&a, &b, &cfg->modulus, &a) == MP_OKAY); + mu_check (mp_cmp (&a, &c) == 0); + +cleanup: + mu_check (rv == SECSuccess); + mp_clear (&a); + mp_clear (&b); + mp_clear (&c); + + PrioConfig_clear (cfg); + BeaverTriple_clear (t1); + BeaverTriple_clear (t2); +} + +void +mu_test_arr (void) +{ + SECStatus rv = SECSuccess; + MPArray arr = NULL; + MPArray arr2 = NULL; + P_CHECKA (arr = MPArray_new (10)); + P_CHECKA (arr2 = MPArray_new (7)); + + for (int i=0; i<10; i++) { + mp_set (&arr->data[i], i); + } + + P_CHECKC (MPArray_resize (arr, 15)); + for (int i=10; i<15; i++) { + mu_check (mp_cmp_d (&arr->data[i], 0) == 0); + mp_set (&arr->data[i], i); + } + + P_CHECKC (MPArray_resize (arr, 7)); + for (int i=10; i<7; i++) { + mu_check (mp_cmp_d (&arr->data[i], i) == 0); + } + + P_CHECKC (MPArray_copy (arr2, arr)); + for (int i=10; i<7; i++) { + mu_check (mp_cmp (&arr->data[i], &arr2->data[i]) == 0); + } + +cleanup: + mu_check (rv == SECSuccess); + MPArray_clear (arr); + MPArray_clear (arr2); +} diff --git a/third_party/prio/update.sh b/third_party/prio/update.sh new file mode 100644 index 000000000000..1e8a1f746c0d --- /dev/null +++ b/third_party/prio/update.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +# Script to update the mozilla in-tree copy of the Prio library. +# Run this within the /third_party/prio directory of the source tree. + +MY_TEMP_DIR=`mktemp -d -t libprio_update.XXXXXX` || exit 1 + +VERSION=1.8.7 + +git clone https://github.com/mozilla/libprio ${MY_TEMP_DIR}/libprio +git -C ${MY_TEMP_DIR}/libprio checkout ${VERSION} + +COMMIT=$(git -C ${MY_TEMP_DIR}/libprio rev-parse HEAD) +perl -p -i -e "s/(\d+\.)(\d+\.)(\d+)/${VERSION}/" README-mozilla; +perl -p -i -e "s/\[commit [0-9a-f]{40}\]/[commit ${COMMIT}]/" README-mozilla; + +FILES="LICENSE README.md SConstruct browser-test include pclient prio ptest" + +for f in $FILES; do + rm -rf $f + mv ${MY_TEMP_DIR}/libprio/$f $f +done + +rm -rf ${MY_TEMP_DIR} + +hg revert -r . moz.build +hg addremove + +echo "###" +echo "### Updated Prio to $COMMIT." +echo "### Remember to verify and commit the changes to source control!" +echo "###" From 7a1006824c5b6b101d721183f41cdeabe27b30ef Mon Sep 17 00:00:00 2001 From: Robert Helmer Date: Thu, 9 Aug 2018 08:35:48 -0700 Subject: [PATCH 18/34] Bug 1421501 - export NSS [Init,Shutdown]Context symbols r=fkiefer MozReview-Commit-ID: Kmhn1dBSYUD --HG-- extra : rebase_source : 1deef9e50a578b4ff24f3d44fafe4992838d0ceb --- security/nss.symbols | 2 ++ 1 file changed, 2 insertions(+) diff --git a/security/nss.symbols b/security/nss.symbols index 8f7f651fe50f..040c3fc0b799 100644 --- a/security/nss.symbols +++ b/security/nss.symbols @@ -261,6 +261,7 @@ NSS_Get_SEC_UTF8StringTemplate NSS_Get_SEC_UTF8StringTemplate_Util NSS_GetVersion NSS_Init +NSS_InitContext NSS_Initialize NSS_InitWithMerge NSS_IsInitialized @@ -271,6 +272,7 @@ NSS_SecureMemcmp NSS_SetAlgorithmPolicy NSS_SetDomesticPolicy NSS_Shutdown +NSS_ShutdownContext NSSSMIME_GetVersion NSS_SMIMESignerInfo_SaveSMIMEProfile NSS_SMIMEUtil_FindBulkAlgForRecipients From 20c3f148db2039c23f59699186a9c568a3240639 Mon Sep 17 00:00:00 2001 From: Robert Helmer Date: Thu, 7 Jun 2018 19:14:53 -0700 Subject: [PATCH 19/34] Bug 1421501 - build system integration for libprio r=gps MozReview-Commit-ID: FYHgLmEhr03 --HG-- extra : rebase_source : def9cb0e882c42035758e589c23cfe405ea3404a --- config/external/moz.build | 1 + config/external/prio/moz.build | 8 +++++ third_party/moz.build | 3 ++ third_party/prio/moz.build | 55 ++++++++++++++++++++++++++++++++++ 4 files changed, 67 insertions(+) create mode 100644 config/external/prio/moz.build create mode 100644 third_party/prio/moz.build diff --git a/config/external/moz.build b/config/external/moz.build index 55929fd5e2b1..21667e0543f8 100644 --- a/config/external/moz.build +++ b/config/external/moz.build @@ -8,6 +8,7 @@ external_dirs = [] DIRS += [ 'lgpllibs', + 'prio', 'sqlite', ] if not CONFIG['MOZ_SYSTEM_JPEG']: diff --git a/config/external/prio/moz.build b/config/external/prio/moz.build new file mode 100644 index 000000000000..b8a167496189 --- /dev/null +++ b/config/external/prio/moz.build @@ -0,0 +1,8 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +DIRS += ['../../../third_party/prio'] + diff --git a/third_party/moz.build b/third_party/moz.build index bd65e7c1abab..837b425eafc9 100644 --- a/third_party/moz.build +++ b/third_party/moz.build @@ -9,3 +9,6 @@ with Files('rust/**'): with Files('webkit/**'): BUG_COMPONENT = ('Firefox Build System', 'General') + +with Files('prio/**'): + BUG_COMPONENT = ('Firefox Build System', 'General') diff --git a/third_party/prio/moz.build b/third_party/prio/moz.build new file mode 100644 index 000000000000..3fdb66ff48f3 --- /dev/null +++ b/third_party/prio/moz.build @@ -0,0 +1,55 @@ +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +DEFINES['PRIO_BUILD_LIBRARY'] = True + +LOCAL_INCLUDES += [ + '/security/nss/lib/freebl/mpi', + '/third_party/msgpack/include', + 'include', +] + +EXPORTS += [ + 'include/mprio.h', +] + +# We allow warnings for third-party code that can be updated from upstream. +AllowCompilerWarnings() + +NoVisibilityFlags() + +SOURCES += [ + '/security/nss/lib/freebl/mpi/montmulf.c', + '/security/nss/lib/freebl/mpi/mp_comba.c', + '/security/nss/lib/freebl/mpi/mp_gf2m.c', + '/security/nss/lib/freebl/mpi/mpcpucache.c', + '/security/nss/lib/freebl/mpi/mpi.c', + '/security/nss/lib/freebl/mpi/mplogic.c', + '/security/nss/lib/freebl/mpi/mpmontg.c', + '/security/nss/lib/freebl/mpi/mpprime.c', +] + +SOURCES += [ + '/third_party/msgpack/src/objectc.c', + '/third_party/msgpack/src/unpack.c', + '/third_party/msgpack/src/version.c', + '/third_party/msgpack/src/vrefbuffer.c', + '/third_party/msgpack/src/zone.c', +] + +SOURCES += [ + 'prio/client.c', + 'prio/config.c', + 'prio/encrypt.c', + 'prio/mparray.c', + 'prio/poly.c', + 'prio/prg.c', + 'prio/rand.c', + 'prio/serial.c', + 'prio/server.c', + 'prio/share.c', +] + +FINAL_LIBRARY = 'xul' From 51ac1fcfc7e08f913f8481191eed7c3fa147b654 Mon Sep 17 00:00:00 2001 From: Robert Helmer Date: Mon, 6 Aug 2018 15:10:06 -0700 Subject: [PATCH 20/34] Bug 1421501 - vendor msgpack from https://github.com/msgpack/msgpack-c r=glandium MozReview-Commit-ID: 9vzQOuszf3p --HG-- extra : rebase_source : 51d10a8479d70a39311d16fbb874ac6869e5419f --- third_party/msgpack/README-mozilla | 20 + third_party/msgpack/include/msgpack.h | 24 + third_party/msgpack/include/msgpack.hpp | 22 + .../include/msgpack/adaptor/adaptor_base.hpp | 19 + .../msgpack/adaptor/adaptor_base_decl.hpp | 17 + .../include/msgpack/adaptor/array_ref.hpp | 17 + .../msgpack/adaptor/array_ref_decl.hpp | 17 + .../msgpack/include/msgpack/adaptor/bool.hpp | 15 + .../include/msgpack/adaptor/boost/fusion.hpp | 15 + .../msgpack/adaptor/boost/msgpack_variant.hpp | 18 + .../adaptor/boost/msgpack_variant_decl.hpp | 17 + .../msgpack/adaptor/boost/optional.hpp | 15 + .../msgpack/adaptor/boost/string_ref.hpp | 15 + .../msgpack/adaptor/boost/string_view.hpp | 15 + .../include/msgpack/adaptor/carray.hpp | 15 + .../include/msgpack/adaptor/char_ptr.hpp | 15 + .../msgpack/adaptor/check_container_size.hpp | 17 + .../adaptor/check_container_size_decl.hpp | 17 + .../include/msgpack/adaptor/cpp11/array.hpp | 16 + .../msgpack/adaptor/cpp11/array_char.hpp | 16 + .../adaptor/cpp11/array_unsigned_char.hpp | 16 + .../include/msgpack/adaptor/cpp11/chrono.hpp | 16 + .../msgpack/adaptor/cpp11/forward_list.hpp | 16 + .../adaptor/cpp11/reference_wrapper.hpp | 16 + .../msgpack/adaptor/cpp11/shared_ptr.hpp | 16 + .../include/msgpack/adaptor/cpp11/tuple.hpp | 16 + .../msgpack/adaptor/cpp11/unique_ptr.hpp | 16 + .../msgpack/adaptor/cpp11/unordered_map.hpp | 16 + .../msgpack/adaptor/cpp11/unordered_set.hpp | 16 + .../include/msgpack/adaptor/cpp17/byte.hpp | 16 + .../msgpack/adaptor/cpp17/carray_byte.hpp | 16 + .../msgpack/adaptor/cpp17/optional.hpp | 16 + .../msgpack/adaptor/cpp17/string_view.hpp | 16 + .../msgpack/adaptor/cpp17/vector_byte.hpp | 16 + .../include/msgpack/adaptor/define.hpp | 17 + .../include/msgpack/adaptor/define_decl.hpp | 144 + .../msgpack/include/msgpack/adaptor/deque.hpp | 15 + .../msgpack/include/msgpack/adaptor/ext.hpp | 17 + .../include/msgpack/adaptor/ext_decl.hpp | 17 + .../include/msgpack/adaptor/fixint.hpp | 17 + .../include/msgpack/adaptor/fixint_decl.hpp | 17 + .../msgpack/include/msgpack/adaptor/float.hpp | 15 + .../msgpack/include/msgpack/adaptor/int.hpp | 17 + .../include/msgpack/adaptor/int_decl.hpp | 17 + .../msgpack/include/msgpack/adaptor/list.hpp | 15 + .../msgpack/include/msgpack/adaptor/map.hpp | 18 + .../include/msgpack/adaptor/map_decl.hpp | 17 + .../include/msgpack/adaptor/msgpack_tuple.hpp | 17 + .../msgpack/adaptor/msgpack_tuple_decl.hpp | 17 + .../msgpack/include/msgpack/adaptor/nil.hpp | 17 + .../include/msgpack/adaptor/nil_decl.hpp | 17 + .../msgpack/include/msgpack/adaptor/pair.hpp | 15 + .../msgpack/include/msgpack/adaptor/raw.hpp | 17 + .../include/msgpack/adaptor/raw_decl.hpp | 17 + .../msgpack/include/msgpack/adaptor/set.hpp | 15 + .../msgpack/adaptor/size_equal_only.hpp | 17 + .../msgpack/adaptor/size_equal_only_decl.hpp | 17 + .../include/msgpack/adaptor/string.hpp | 15 + .../msgpack/adaptor/tr1/unordered_map.hpp | 171 + .../msgpack/adaptor/tr1/unordered_set.hpp | 165 + .../msgpack/include/msgpack/adaptor/v4raw.hpp | 17 + .../include/msgpack/adaptor/v4raw_decl.hpp | 17 + .../include/msgpack/adaptor/vector.hpp | 15 + .../include/msgpack/adaptor/vector_bool.hpp | 15 + .../include/msgpack/adaptor/vector_char.hpp | 15 + .../msgpack/adaptor/vector_unsigned_char.hpp | 15 + .../msgpack/include/msgpack/cpp_config.hpp | 17 + .../include/msgpack/cpp_config_decl.hpp | 17 + .../include/msgpack/create_object_visitor.hpp | 17 + .../msgpack/create_object_visitor_decl.hpp | 16 + third_party/msgpack/include/msgpack/fbuffer.h | 38 + .../msgpack/include/msgpack/fbuffer.hpp | 17 + .../msgpack/include/msgpack/fbuffer_decl.hpp | 17 + .../msgpack/include/msgpack/gcc_atomic.h | 25 + .../msgpack/include/msgpack/gcc_atomic.hpp | 31 + .../msgpack/include/msgpack/iterator.hpp | 18 + .../msgpack/include/msgpack/iterator_decl.hpp | 18 + third_party/msgpack/include/msgpack/meta.hpp | 18 + .../msgpack/include/msgpack/meta_decl.hpp | 18 + .../msgpack/include/msgpack/null_visitor.hpp | 17 + .../include/msgpack/null_visitor_decl.hpp | 16 + third_party/msgpack/include/msgpack/object.h | 116 + .../msgpack/include/msgpack/object.hpp | 18 + .../msgpack/include/msgpack/object_decl.hpp | 18 + .../msgpack/include/msgpack/object_fwd.hpp | 20 + .../include/msgpack/object_fwd_decl.hpp | 18 + third_party/msgpack/include/msgpack/pack.h | 151 + third_party/msgpack/include/msgpack/pack.hpp | 17 + .../msgpack/include/msgpack/pack_decl.hpp | 17 + .../msgpack/include/msgpack/pack_define.h | 18 + .../msgpack/include/msgpack/pack_template.h | 937 + third_party/msgpack/include/msgpack/parse.hpp | 18 + .../msgpack/include/msgpack/parse_decl.hpp | 16 + .../msgpack/include/msgpack/parse_return.hpp | 17 + third_party/msgpack/include/msgpack/predef.h | 24 + .../include/msgpack/predef/architecture.h | 32 + .../msgpack/predef/architecture/alpha.h | 59 + .../include/msgpack/predef/architecture/arm.h | 70 + .../msgpack/predef/architecture/blackfin.h | 46 + .../msgpack/predef/architecture/convex.h | 65 + .../msgpack/predef/architecture/ia64.h | 49 + .../msgpack/predef/architecture/m68k.h | 82 + .../msgpack/predef/architecture/mips.h | 73 + .../msgpack/predef/architecture/parisc.h | 64 + .../include/msgpack/predef/architecture/ppc.h | 72 + .../msgpack/predef/architecture/pyramid.h | 42 + .../msgpack/predef/architecture/rs6k.h | 56 + .../msgpack/predef/architecture/sparc.h | 54 + .../msgpack/predef/architecture/superh.h | 67 + .../msgpack/predef/architecture/sys370.h | 43 + .../msgpack/predef/architecture/sys390.h | 43 + .../include/msgpack/predef/architecture/x86.h | 38 + .../msgpack/predef/architecture/x86/32.h | 87 + .../msgpack/predef/architecture/x86/64.h | 50 + .../include/msgpack/predef/architecture/z.h | 42 + .../msgpack/include/msgpack/predef/compiler.h | 43 + .../include/msgpack/predef/compiler/borland.h | 63 + .../include/msgpack/predef/compiler/clang.h | 56 + .../include/msgpack/predef/compiler/comeau.h | 61 + .../include/msgpack/predef/compiler/compaq.h | 66 + .../include/msgpack/predef/compiler/diab.h | 56 + .../msgpack/predef/compiler/digitalmars.h | 56 + .../include/msgpack/predef/compiler/dignus.h | 56 + .../include/msgpack/predef/compiler/edg.h | 56 + .../include/msgpack/predef/compiler/ekopath.h | 57 + .../include/msgpack/predef/compiler/gcc.h | 68 + .../include/msgpack/predef/compiler/gcc_xml.h | 53 + .../msgpack/predef/compiler/greenhills.h | 66 + .../include/msgpack/predef/compiler/hp_acc.h | 61 + .../include/msgpack/predef/compiler/iar.h | 56 + .../include/msgpack/predef/compiler/ibm.h | 72 + .../include/msgpack/predef/compiler/intel.h | 65 + .../include/msgpack/predef/compiler/kai.h | 56 + .../include/msgpack/predef/compiler/llvm.h | 57 + .../msgpack/predef/compiler/metaware.h | 53 + .../msgpack/predef/compiler/metrowerks.h | 77 + .../msgpack/predef/compiler/microtec.h | 53 + .../include/msgpack/predef/compiler/mpw.h | 63 + .../include/msgpack/predef/compiler/palm.h | 56 + .../include/msgpack/predef/compiler/pgi.h | 60 + .../msgpack/predef/compiler/sgi_mipspro.h | 66 + .../include/msgpack/predef/compiler/sunpro.h | 76 + .../include/msgpack/predef/compiler/tendra.h | 53 + .../include/msgpack/predef/compiler/visualc.h | 91 + .../include/msgpack/predef/compiler/watcom.h | 56 + .../include/msgpack/predef/detail/_cassert.h | 17 + .../msgpack/predef/detail/_exception.h | 15 + .../msgpack/predef/detail/comp_detected.h | 10 + .../msgpack/predef/detail/endian_compat.h | 26 + .../msgpack/predef/detail/os_detected.h | 10 + .../msgpack/predef/detail/platform_detected.h | 10 + .../include/msgpack/predef/detail/test.h | 17 + .../include/msgpack/predef/detail/test_def.h | 71 + .../msgpack/include/msgpack/predef/hardware.h | 16 + .../include/msgpack/predef/hardware/simd.h | 119 + .../msgpack/predef/hardware/simd/arm.h | 57 + .../predef/hardware/simd/arm/versions.h | 32 + .../msgpack/predef/hardware/simd/ppc.h | 69 + .../predef/hardware/simd/ppc/versions.h | 51 + .../msgpack/predef/hardware/simd/x86.h | 123 + .../predef/hardware/simd/x86/versions.h | 129 + .../msgpack/predef/hardware/simd/x86_amd.h | 87 + .../predef/hardware/simd/x86_amd/versions.h | 51 + .../msgpack/include/msgpack/predef/language.h | 17 + .../include/msgpack/predef/language/objc.h | 42 + .../include/msgpack/predef/language/stdc.h | 53 + .../include/msgpack/predef/language/stdcpp.h | 121 + .../msgpack/include/msgpack/predef/library.h | 16 + .../include/msgpack/predef/library/c.h | 20 + .../msgpack/predef/library/c/_prefix.h | 13 + .../include/msgpack/predef/library/c/gnu.h | 61 + .../include/msgpack/predef/library/c/uc.h | 47 + .../include/msgpack/predef/library/c/vms.h | 47 + .../include/msgpack/predef/library/c/zos.h | 56 + .../include/msgpack/predef/library/std.h | 25 + .../msgpack/predef/library/std/_prefix.h | 23 + .../include/msgpack/predef/library/std/cxx.h | 46 + .../msgpack/predef/library/std/dinkumware.h | 52 + .../msgpack/predef/library/std/libcomo.h | 47 + .../msgpack/predef/library/std/modena.h | 45 + .../include/msgpack/predef/library/std/msl.h | 53 + .../msgpack/predef/library/std/roguewave.h | 56 + .../include/msgpack/predef/library/std/sgi.h | 51 + .../msgpack/predef/library/std/stdcpp3.h | 53 + .../msgpack/predef/library/std/stlport.h | 59 + .../msgpack/predef/library/std/vacpp.h | 44 + .../msgpack/include/msgpack/predef/make.h | 89 + .../msgpack/include/msgpack/predef/os.h | 33 + .../msgpack/include/msgpack/predef/os/aix.h | 66 + .../include/msgpack/predef/os/amigaos.h | 46 + .../include/msgpack/predef/os/android.h | 45 + .../msgpack/include/msgpack/predef/os/beos.h | 45 + .../msgpack/include/msgpack/predef/os/bsd.h | 103 + .../include/msgpack/predef/os/bsd/bsdi.h | 48 + .../include/msgpack/predef/os/bsd/dragonfly.h | 50 + .../include/msgpack/predef/os/bsd/free.h | 60 + .../include/msgpack/predef/os/bsd/net.h | 84 + .../include/msgpack/predef/os/bsd/open.h | 171 + .../include/msgpack/predef/os/cygwin.h | 45 + .../msgpack/include/msgpack/predef/os/haiku.h | 46 + .../msgpack/include/msgpack/predef/os/hpux.h | 47 + .../msgpack/include/msgpack/predef/os/ios.h | 51 + .../msgpack/include/msgpack/predef/os/irix.h | 46 + .../msgpack/include/msgpack/predef/os/linux.h | 46 + .../msgpack/include/msgpack/predef/os/macos.h | 65 + .../msgpack/include/msgpack/predef/os/os400.h | 45 + .../include/msgpack/predef/os/qnxnto.h | 59 + .../include/msgpack/predef/os/solaris.h | 46 + .../msgpack/include/msgpack/predef/os/unix.h | 76 + .../msgpack/include/msgpack/predef/os/vms.h | 52 + .../include/msgpack/predef/os/windows.h | 51 + .../msgpack/include/msgpack/predef/other.h | 16 + .../include/msgpack/predef/other/endian.h | 204 + .../msgpack/include/msgpack/predef/platform.h | 21 + .../include/msgpack/predef/platform/mingw.h | 69 + .../msgpack/predef/platform/windows_desktop.h | 45 + .../msgpack/predef/platform/windows_phone.h | 43 + .../msgpack/predef/platform/windows_runtime.h | 45 + .../msgpack/predef/platform/windows_store.h | 43 + .../msgpack/include/msgpack/predef/version.h | 15 + .../include/msgpack/predef/version_number.h | 53 + .../msgpack/include/msgpack/preprocessor.hpp | 19 + .../msgpack/preprocessor/arithmetic.hpp | 25 + .../msgpack/preprocessor/arithmetic/add.hpp | 51 + .../msgpack/preprocessor/arithmetic/dec.hpp | 289 + .../arithmetic/detail/div_base.hpp | 61 + .../msgpack/preprocessor/arithmetic/div.hpp | 39 + .../msgpack/preprocessor/arithmetic/inc.hpp | 288 + .../msgpack/preprocessor/arithmetic/mod.hpp | 39 + .../msgpack/preprocessor/arithmetic/mul.hpp | 53 + .../msgpack/preprocessor/arithmetic/sub.hpp | 50 + .../include/msgpack/preprocessor/array.hpp | 32 + .../msgpack/preprocessor/array/data.hpp | 28 + .../preprocessor/array/detail/get_data.hpp | 55 + .../msgpack/preprocessor/array/elem.hpp | 29 + .../msgpack/preprocessor/array/enum.hpp | 33 + .../msgpack/preprocessor/array/insert.hpp | 55 + .../msgpack/preprocessor/array/pop_back.hpp | 37 + .../msgpack/preprocessor/array/pop_front.hpp | 38 + .../msgpack/preprocessor/array/push_back.hpp | 35 + .../msgpack/preprocessor/array/push_front.hpp | 35 + .../msgpack/preprocessor/array/remove.hpp | 54 + .../msgpack/preprocessor/array/replace.hpp | 49 + .../msgpack/preprocessor/array/reverse.hpp | 29 + .../msgpack/preprocessor/array/size.hpp | 28 + .../msgpack/preprocessor/array/to_list.hpp | 47 + .../msgpack/preprocessor/array/to_seq.hpp | 46 + .../msgpack/preprocessor/array/to_tuple.hpp | 33 + .../msgpack/preprocessor/assert_msg.hpp | 17 + .../include/msgpack/preprocessor/cat.hpp | 35 + .../include/msgpack/preprocessor/comma.hpp | 17 + .../include/msgpack/preprocessor/comma_if.hpp | 17 + .../msgpack/preprocessor/comparison.hpp | 24 + .../msgpack/preprocessor/comparison/equal.hpp | 34 + .../preprocessor/comparison/greater.hpp | 38 + .../preprocessor/comparison/greater_equal.hpp | 38 + .../msgpack/preprocessor/comparison/less.hpp | 46 + .../preprocessor/comparison/less_equal.hpp | 39 + .../preprocessor/comparison/not_equal.hpp | 814 + .../msgpack/preprocessor/config/config.hpp | 104 + .../msgpack/preprocessor/config/limits.hpp | 30 + .../include/msgpack/preprocessor/control.hpp | 22 + .../msgpack/preprocessor/control/deduce_d.hpp | 22 + .../preprocessor/control/detail/dmc/while.hpp | 536 + .../preprocessor/control/detail/edg/while.hpp | 534 + .../control/detail/msvc/while.hpp | 277 + .../preprocessor/control/detail/while.hpp | 536 + .../msgpack/preprocessor/control/expr_if.hpp | 30 + .../msgpack/preprocessor/control/expr_iif.hpp | 31 + .../msgpack/preprocessor/control/if.hpp | 30 + .../msgpack/preprocessor/control/iif.hpp | 34 + .../msgpack/preprocessor/control/while.hpp | 312 + .../include/msgpack/preprocessor/debug.hpp | 18 + .../msgpack/preprocessor/debug/assert.hpp | 44 + .../msgpack/preprocessor/debug/error.hpp | 33 + .../msgpack/preprocessor/debug/line.hpp | 35 + .../include/msgpack/preprocessor/dec.hpp | 17 + .../msgpack/preprocessor/detail/auto_rec.hpp | 293 + .../msgpack/preprocessor/detail/check.hpp | 48 + .../preprocessor/detail/dmc/auto_rec.hpp | 286 + .../msgpack/preprocessor/detail/is_binary.hpp | 30 + .../preprocessor/detail/is_nullary.hpp | 30 + .../msgpack/preprocessor/detail/is_unary.hpp | 30 + .../msgpack/preprocessor/detail/null.hpp | 17 + .../msgpack/preprocessor/detail/split.hpp | 35 + .../include/msgpack/preprocessor/empty.hpp | 17 + .../include/msgpack/preprocessor/enum.hpp | 17 + .../msgpack/preprocessor/enum_params.hpp | 17 + .../enum_params_with_a_default.hpp | 17 + .../enum_params_with_defaults.hpp | 17 + .../msgpack/preprocessor/enum_shifted.hpp | 17 + .../preprocessor/enum_shifted_params.hpp | 17 + .../include/msgpack/preprocessor/expand.hpp | 17 + .../include/msgpack/preprocessor/expr_if.hpp | 17 + .../msgpack/preprocessor/facilities.hpp | 23 + .../msgpack/preprocessor/facilities/apply.hpp | 34 + .../facilities/detail/is_empty.hpp | 55 + .../msgpack/preprocessor/facilities/empty.hpp | 23 + .../preprocessor/facilities/expand.hpp | 28 + .../preprocessor/facilities/identity.hpp | 27 + .../preprocessor/facilities/intercept.hpp | 277 + .../msgpack/preprocessor/facilities/is_1.hpp | 23 + .../preprocessor/facilities/is_empty.hpp | 56 + .../preprocessor/facilities/is_empty_or_1.hpp | 31 + .../facilities/is_empty_variadic.hpp | 57 + .../preprocessor/facilities/overload.hpp | 25 + .../include/msgpack/preprocessor/for.hpp | 17 + .../include/msgpack/preprocessor/identity.hpp | 17 + .../include/msgpack/preprocessor/if.hpp | 17 + .../include/msgpack/preprocessor/inc.hpp | 17 + .../include/msgpack/preprocessor/iterate.hpp | 17 + .../msgpack/preprocessor/iteration.hpp | 19 + .../iteration/detail/bounds/lower1.hpp | 99 + .../iteration/detail/bounds/lower2.hpp | 99 + .../iteration/detail/bounds/lower3.hpp | 99 + .../iteration/detail/bounds/lower4.hpp | 99 + .../iteration/detail/bounds/lower5.hpp | 99 + .../iteration/detail/bounds/upper1.hpp | 99 + .../iteration/detail/bounds/upper2.hpp | 99 + .../iteration/detail/bounds/upper3.hpp | 99 + .../iteration/detail/bounds/upper4.hpp | 99 + .../iteration/detail/bounds/upper5.hpp | 99 + .../preprocessor/iteration/detail/finish.hpp | 99 + .../iteration/detail/iter/forward1.hpp | 1342 ++ .../iteration/detail/iter/forward2.hpp | 1338 ++ .../iteration/detail/iter/forward3.hpp | 1338 ++ .../iteration/detail/iter/forward4.hpp | 1338 ++ .../iteration/detail/iter/forward5.hpp | 1338 ++ .../iteration/detail/iter/reverse1.hpp | 1296 ++ .../iteration/detail/iter/reverse2.hpp | 1296 ++ .../iteration/detail/iter/reverse3.hpp | 1296 ++ .../iteration/detail/iter/reverse4.hpp | 1296 ++ .../iteration/detail/iter/reverse5.hpp | 1296 ++ .../preprocessor/iteration/detail/local.hpp | 812 + .../preprocessor/iteration/detail/rlocal.hpp | 782 + .../preprocessor/iteration/detail/self.hpp | 21 + .../preprocessor/iteration/detail/start.hpp | 99 + .../preprocessor/iteration/iterate.hpp | 82 + .../msgpack/preprocessor/iteration/local.hpp | 26 + .../msgpack/preprocessor/iteration/self.hpp | 19 + .../include/msgpack/preprocessor/library.hpp | 37 + .../include/msgpack/preprocessor/limits.hpp | 17 + .../include/msgpack/preprocessor/list.hpp | 37 + .../include/msgpack/preprocessor/list/adt.hpp | 73 + .../msgpack/preprocessor/list/append.hpp | 40 + .../include/msgpack/preprocessor/list/at.hpp | 39 + .../include/msgpack/preprocessor/list/cat.hpp | 42 + .../list/detail/dmc/fold_left.hpp | 279 + .../list/detail/edg/fold_left.hpp | 536 + .../list/detail/edg/fold_right.hpp | 794 + .../preprocessor/list/detail/fold_left.hpp | 279 + .../preprocessor/list/detail/fold_right.hpp | 277 + .../msgpack/preprocessor/list/enum.hpp | 41 + .../msgpack/preprocessor/list/filter.hpp | 54 + .../msgpack/preprocessor/list/first_n.hpp | 58 + .../msgpack/preprocessor/list/fold_left.hpp | 303 + .../msgpack/preprocessor/list/fold_right.hpp | 40 + .../msgpack/preprocessor/list/for_each.hpp | 49 + .../msgpack/preprocessor/list/for_each_i.hpp | 65 + .../preprocessor/list/for_each_product.hpp | 141 + .../msgpack/preprocessor/list/rest_n.hpp | 55 + .../msgpack/preprocessor/list/reverse.hpp | 40 + .../msgpack/preprocessor/list/size.hpp | 58 + .../msgpack/preprocessor/list/to_array.hpp | 155 + .../msgpack/preprocessor/list/to_seq.hpp | 32 + .../msgpack/preprocessor/list/to_tuple.hpp | 61 + .../msgpack/preprocessor/list/transform.hpp | 49 + .../include/msgpack/preprocessor/logical.hpp | 29 + .../msgpack/preprocessor/logical/and.hpp | 30 + .../msgpack/preprocessor/logical/bitand.hpp | 38 + .../msgpack/preprocessor/logical/bitnor.hpp | 38 + .../msgpack/preprocessor/logical/bitor.hpp | 38 + .../msgpack/preprocessor/logical/bitxor.hpp | 38 + .../msgpack/preprocessor/logical/bool.hpp | 288 + .../msgpack/preprocessor/logical/compl.hpp | 36 + .../msgpack/preprocessor/logical/nor.hpp | 30 + .../msgpack/preprocessor/logical/not.hpp | 30 + .../msgpack/preprocessor/logical/or.hpp | 30 + .../msgpack/preprocessor/logical/xor.hpp | 30 + .../include/msgpack/preprocessor/max.hpp | 17 + .../include/msgpack/preprocessor/min.hpp | 17 + .../msgpack/preprocessor/punctuation.hpp | 22 + .../preprocessor/punctuation/comma.hpp | 21 + .../preprocessor/punctuation/comma_if.hpp | 31 + .../punctuation/detail/is_begin_parens.hpp | 48 + .../punctuation/is_begin_parens.hpp | 51 + .../preprocessor/punctuation/paren.hpp | 23 + .../preprocessor/punctuation/paren_if.hpp | 38 + .../punctuation/remove_parens.hpp | 39 + .../include/msgpack/preprocessor/repeat.hpp | 17 + .../msgpack/preprocessor/repeat_2nd.hpp | 17 + .../msgpack/preprocessor/repeat_3rd.hpp | 17 + .../msgpack/preprocessor/repeat_from_to.hpp | 17 + .../preprocessor/repeat_from_to_2nd.hpp | 17 + .../preprocessor/repeat_from_to_3rd.hpp | 17 + .../msgpack/preprocessor/repetition.hpp | 32 + .../preprocessor/repetition/deduce_r.hpp | 22 + .../preprocessor/repetition/deduce_z.hpp | 22 + .../repetition/detail/dmc/for.hpp | 536 + .../repetition/detail/edg/for.hpp | 534 + .../preprocessor/repetition/detail/for.hpp | 536 + .../repetition/detail/msvc/for.hpp | 277 + .../msgpack/preprocessor/repetition/enum.hpp | 66 + .../repetition/enum_binary_params.hpp | 54 + .../preprocessor/repetition/enum_params.hpp | 41 + .../repetition/enum_params_with_a_default.hpp | 25 + .../repetition/enum_params_with_defaults.hpp | 24 + .../preprocessor/repetition/enum_shifted.hpp | 68 + .../repetition/enum_shifted_binary_params.hpp | 51 + .../repetition/enum_shifted_params.hpp | 44 + .../preprocessor/repetition/enum_trailing.hpp | 63 + .../enum_trailing_binary_params.hpp | 53 + .../repetition/enum_trailing_params.hpp | 38 + .../msgpack/preprocessor/repetition/for.hpp | 324 + .../preprocessor/repetition/repeat.hpp | 825 + .../repetition/repeat_from_to.hpp | 87 + .../msgpack/preprocessor/selection.hpp | 18 + .../msgpack/preprocessor/selection/max.hpp | 39 + .../msgpack/preprocessor/selection/min.hpp | 39 + .../include/msgpack/preprocessor/seq.hpp | 44 + .../include/msgpack/preprocessor/seq/cat.hpp | 49 + .../seq/detail/binary_transform.hpp | 48 + .../preprocessor/seq/detail/is_empty.hpp | 49 + .../msgpack/preprocessor/seq/detail/split.hpp | 284 + .../include/msgpack/preprocessor/seq/elem.hpp | 304 + .../include/msgpack/preprocessor/seq/enum.hpp | 288 + .../msgpack/preprocessor/seq/filter.hpp | 54 + .../msgpack/preprocessor/seq/first_n.hpp | 30 + .../msgpack/preprocessor/seq/fold_left.hpp | 1070 ++ .../msgpack/preprocessor/seq/fold_right.hpp | 288 + .../msgpack/preprocessor/seq/for_each.hpp | 107 + .../msgpack/preprocessor/seq/for_each_i.hpp | 109 + .../preprocessor/seq/for_each_product.hpp | 126 + .../msgpack/preprocessor/seq/insert.hpp | 28 + .../msgpack/preprocessor/seq/pop_back.hpp | 29 + .../msgpack/preprocessor/seq/pop_front.hpp | 27 + .../msgpack/preprocessor/seq/push_back.hpp | 19 + .../msgpack/preprocessor/seq/push_front.hpp | 19 + .../msgpack/preprocessor/seq/remove.hpp | 29 + .../msgpack/preprocessor/seq/replace.hpp | 45 + .../msgpack/preprocessor/seq/rest_n.hpp | 46 + .../msgpack/preprocessor/seq/reverse.hpp | 39 + .../include/msgpack/preprocessor/seq/seq.hpp | 44 + .../include/msgpack/preprocessor/seq/size.hpp | 548 + .../msgpack/preprocessor/seq/subseq.hpp | 28 + .../msgpack/preprocessor/seq/to_array.hpp | 28 + .../msgpack/preprocessor/seq/to_list.hpp | 29 + .../msgpack/preprocessor/seq/to_tuple.hpp | 27 + .../msgpack/preprocessor/seq/transform.hpp | 48 + .../preprocessor/seq/variadic_seq_to_seq.hpp | 28 + .../include/msgpack/preprocessor/slot.hpp | 17 + .../msgpack/preprocessor/slot/counter.hpp | 25 + .../preprocessor/slot/detail/counter.hpp | 269 + .../msgpack/preprocessor/slot/detail/def.hpp | 49 + .../preprocessor/slot/detail/shared.hpp | 247 + .../preprocessor/slot/detail/slot1.hpp | 267 + .../preprocessor/slot/detail/slot2.hpp | 267 + .../preprocessor/slot/detail/slot3.hpp | 267 + .../preprocessor/slot/detail/slot4.hpp | 267 + .../preprocessor/slot/detail/slot5.hpp | 267 + .../msgpack/preprocessor/slot/slot.hpp | 32 + .../msgpack/preprocessor/stringize.hpp | 33 + .../include/msgpack/preprocessor/tuple.hpp | 35 + .../tuple/detail/is_single_return.hpp | 28 + .../msgpack/preprocessor/tuple/eat.hpp | 115 + .../msgpack/preprocessor/tuple/elem.hpp | 201 + .../msgpack/preprocessor/tuple/enum.hpp | 22 + .../msgpack/preprocessor/tuple/insert.hpp | 37 + .../msgpack/preprocessor/tuple/pop_back.hpp | 64 + .../msgpack/preprocessor/tuple/pop_front.hpp | 65 + .../msgpack/preprocessor/tuple/push_back.hpp | 31 + .../msgpack/preprocessor/tuple/push_front.hpp | 32 + .../msgpack/preprocessor/tuple/rem.hpp | 149 + .../msgpack/preprocessor/tuple/remove.hpp | 64 + .../msgpack/preprocessor/tuple/replace.hpp | 37 + .../msgpack/preprocessor/tuple/reverse.hpp | 117 + .../msgpack/preprocessor/tuple/size.hpp | 28 + .../msgpack/preprocessor/tuple/to_array.hpp | 39 + .../msgpack/preprocessor/tuple/to_list.hpp | 118 + .../msgpack/preprocessor/tuple/to_seq.hpp | 119 + .../include/msgpack/preprocessor/variadic.hpp | 23 + .../variadic/detail/is_single_return.hpp | 28 + .../msgpack/preprocessor/variadic/elem.hpp | 94 + .../msgpack/preprocessor/variadic/size.hpp | 30 + .../preprocessor/variadic/to_array.hpp | 32 + .../msgpack/preprocessor/variadic/to_list.hpp | 25 + .../msgpack/preprocessor/variadic/to_seq.hpp | 25 + .../preprocessor/variadic/to_tuple.hpp | 24 + .../include/msgpack/preprocessor/while.hpp | 17 + .../msgpack/preprocessor/wstringize.hpp | 29 + third_party/msgpack/include/msgpack/sbuffer.h | 110 + .../msgpack/include/msgpack/sbuffer.hpp | 17 + .../msgpack/include/msgpack/sbuffer_decl.hpp | 18 + third_party/msgpack/include/msgpack/sysdep.h | 201 + .../msgpack/include/msgpack/timestamp.h | 54 + third_party/msgpack/include/msgpack/type.hpp | 68 + third_party/msgpack/include/msgpack/unpack.h | 281 + .../msgpack/include/msgpack/unpack.hpp | 19 + .../msgpack/include/msgpack/unpack_decl.hpp | 17 + .../msgpack/include/msgpack/unpack_define.h | 89 + .../include/msgpack/unpack_exception.hpp | 15 + .../msgpack/include/msgpack/unpack_template.h | 466 + third_party/msgpack/include/msgpack/util.h | 15 + .../msgpack/v1/adaptor/adaptor_base.hpp | 116 + .../msgpack/v1/adaptor/adaptor_base_decl.hpp | 86 + .../include/msgpack/v1/adaptor/array_ref.hpp | 305 + .../msgpack/v1/adaptor/array_ref_decl.hpp | 55 + .../include/msgpack/v1/adaptor/bool.hpp | 66 + .../msgpack/v1/adaptor/boost/fusion.hpp | 203 + .../v1/adaptor/boost/msgpack_variant.hpp | 443 + .../v1/adaptor/boost/msgpack_variant_decl.hpp | 62 + .../msgpack/v1/adaptor/boost/optional.hpp | 96 + .../msgpack/v1/adaptor/boost/string_ref.hpp | 87 + .../msgpack/v1/adaptor/boost/string_view.hpp | 87 + .../include/msgpack/v1/adaptor/carray.hpp | 253 + .../include/msgpack/v1/adaptor/char_ptr.hpp | 92 + .../v1/adaptor/check_container_size.hpp | 67 + .../v1/adaptor/check_container_size_decl.hpp | 44 + .../msgpack/v1/adaptor/cpp11/array.hpp | 138 + .../msgpack/v1/adaptor/cpp11/array_char.hpp | 97 + .../v1/adaptor/cpp11/array_unsigned_char.hpp | 97 + .../msgpack/v1/adaptor/cpp11/chrono.hpp | 215 + .../msgpack/v1/adaptor/cpp11/forward_list.hpp | 94 + .../v1/adaptor/cpp11/reference_wrapper.hpp | 68 + .../msgpack/v1/adaptor/cpp11/shared_ptr.hpp | 82 + .../msgpack/v1/adaptor/cpp11/tuple.hpp | 175 + .../msgpack/v1/adaptor/cpp11/unique_ptr.hpp | 82 + .../v1/adaptor/cpp11/unordered_map.hpp | 182 + .../v1/adaptor/cpp11/unordered_set.hpp | 172 + .../include/msgpack/v1/adaptor/cpp17/byte.hpp | 74 + .../msgpack/v1/adaptor/cpp17/carray_byte.hpp | 109 + .../msgpack/v1/adaptor/cpp17/optional.hpp | 90 + .../msgpack/v1/adaptor/cpp17/string_view.hpp | 86 + .../msgpack/v1/adaptor/cpp17/vector_byte.hpp | 119 + .../include/msgpack/v1/adaptor/define.hpp | 21 + .../msgpack/v1/adaptor/define_decl.hpp | 23 + .../include/msgpack/v1/adaptor/deque.hpp | 108 + .../v1/adaptor/detail/cpp03_define_array.hpp | 4481 +++++ .../detail/cpp03_define_array_decl.hpp | 135 + .../v1/adaptor/detail/cpp03_define_map.hpp | 2753 +++ .../adaptor/detail/cpp03_define_map_decl.hpp | 135 + .../v1/adaptor/detail/cpp03_msgpack_tuple.hpp | 14425 ++++++++++++++++ .../detail/cpp03_msgpack_tuple_decl.hpp | 317 + .../adaptor/detail/cpp11_convert_helper.hpp | 45 + .../v1/adaptor/detail/cpp11_define_array.hpp | 128 + .../detail/cpp11_define_array_decl.hpp | 39 + .../v1/adaptor/detail/cpp11_define_map.hpp | 110 + .../adaptor/detail/cpp11_define_map_decl.hpp | 37 + .../v1/adaptor/detail/cpp11_msgpack_tuple.hpp | 220 + .../detail/cpp11_msgpack_tuple_decl.hpp | 120 + .../include/msgpack/v1/adaptor/ext.hpp | 236 + .../include/msgpack/v1/adaptor/ext_decl.hpp | 38 + .../include/msgpack/v1/adaptor/fixint.hpp | 299 + .../msgpack/v1/adaptor/fixint_decl.hpp | 46 + .../include/msgpack/v1/adaptor/float.hpp | 123 + .../include/msgpack/v1/adaptor/int.hpp | 448 + .../include/msgpack/v1/adaptor/int_decl.hpp | 49 + .../include/msgpack/v1/adaptor/list.hpp | 106 + .../include/msgpack/v1/adaptor/map.hpp | 314 + .../include/msgpack/v1/adaptor/map_decl.hpp | 36 + .../msgpack/v1/adaptor/msgpack_tuple.hpp | 21 + .../msgpack/v1/adaptor/msgpack_tuple_decl.hpp | 21 + .../include/msgpack/v1/adaptor/nil.hpp | 76 + .../include/msgpack/v1/adaptor/nil_decl.hpp | 44 + .../include/msgpack/v1/adaptor/pair.hpp | 83 + .../include/msgpack/v1/adaptor/raw.hpp | 106 + .../include/msgpack/v1/adaptor/raw_decl.hpp | 36 + .../include/msgpack/v1/adaptor/set.hpp | 188 + .../msgpack/v1/adaptor/size_equal_only.hpp | 118 + .../v1/adaptor/size_equal_only_decl.hpp | 52 + .../include/msgpack/v1/adaptor/string.hpp | 87 + .../msgpack/v1/adaptor/tr1/unordered_map.hpp | 171 + .../msgpack/v1/adaptor/tr1/unordered_set.hpp | 165 + .../include/msgpack/v1/adaptor/v4raw.hpp | 105 + .../include/msgpack/v1/adaptor/v4raw_decl.hpp | 34 + .../include/msgpack/v1/adaptor/vector.hpp | 121 + .../msgpack/v1/adaptor/vector_bool.hpp | 90 + .../msgpack/v1/adaptor/vector_char.hpp | 114 + .../v1/adaptor/vector_unsigned_char.hpp | 114 + .../msgpack/include/msgpack/v1/cpp_config.hpp | 139 + .../include/msgpack/v1/cpp_config_decl.hpp | 137 + .../include/msgpack/v1/detail/cpp03_zone.hpp | 664 + .../msgpack/v1/detail/cpp03_zone_decl.hpp | 54 + .../include/msgpack/v1/detail/cpp11_zone.hpp | 366 + .../msgpack/v1/detail/cpp11_zone_decl.hpp | 55 + .../msgpack/include/msgpack/v1/fbuffer.hpp | 60 + .../include/msgpack/v1/fbuffer_decl.hpp | 32 + .../msgpack/include/msgpack/v1/iterator.hpp | 40 + .../include/msgpack/v1/iterator_decl.hpp | 40 + .../msgpack/include/msgpack/v1/meta.hpp | 53 + .../msgpack/include/msgpack/v1/meta_decl.hpp | 57 + .../msgpack/include/msgpack/v1/object.hpp | 1240 ++ .../include/msgpack/v1/object_decl.hpp | 122 + .../msgpack/include/msgpack/v1/object_fwd.hpp | 255 + .../include/msgpack/v1/object_fwd_decl.hpp | 78 + .../msgpack/include/msgpack/v1/pack.hpp | 1602 ++ .../msgpack/include/msgpack/v1/pack_decl.hpp | 91 + .../include/msgpack/v1/parse_return.hpp | 36 + .../include/msgpack/v1/preprocessor.hpp | 19 + .../msgpack/include/msgpack/v1/sbuffer.hpp | 149 + .../include/msgpack/v1/sbuffer_decl.hpp | 33 + .../msgpack/include/msgpack/v1/unpack.hpp | 1591 ++ .../include/msgpack/v1/unpack_decl.hpp | 454 + .../include/msgpack/v1/unpack_exception.hpp | 122 + .../msgpack/include/msgpack/v1/version.hpp | 36 + .../msgpack/include/msgpack/v1/versioning.hpp | 69 + .../msgpack/include/msgpack/v1/vrefbuffer.hpp | 292 + .../include/msgpack/v1/vrefbuffer_decl.hpp | 39 + .../msgpack/include/msgpack/v1/zbuffer.hpp | 159 + .../include/msgpack/v1/zbuffer_decl.hpp | 37 + .../msgpack/include/msgpack/v1/zone.hpp | 21 + .../msgpack/include/msgpack/v1/zone_decl.hpp | 21 + .../msgpack/v2/adaptor/adaptor_base.hpp | 58 + .../msgpack/v2/adaptor/adaptor_base_decl.hpp | 52 + .../msgpack/v2/adaptor/array_ref_decl.hpp | 36 + .../v2/adaptor/boost/msgpack_variant_decl.hpp | 42 + .../v2/adaptor/check_container_size_decl.hpp | 39 + .../msgpack/v2/adaptor/define_decl.hpp | 23 + .../detail/cpp03_define_array_decl.hpp | 31 + .../adaptor/detail/cpp03_define_map_decl.hpp | 31 + .../detail/cpp03_msgpack_tuple_decl.hpp | 43 + .../detail/cpp11_define_array_decl.hpp | 32 + .../adaptor/detail/cpp11_define_map_decl.hpp | 31 + .../detail/cpp11_msgpack_tuple_decl.hpp | 59 + .../include/msgpack/v2/adaptor/ext_decl.hpp | 34 + .../msgpack/v2/adaptor/fixint_decl.hpp | 43 + .../include/msgpack/v2/adaptor/int_decl.hpp | 54 + .../include/msgpack/v2/adaptor/map_decl.hpp | 33 + .../msgpack/v2/adaptor/msgpack_tuple_decl.hpp | 21 + .../include/msgpack/v2/adaptor/nil_decl.hpp | 42 + .../include/msgpack/v2/adaptor/raw_decl.hpp | 33 + .../v2/adaptor/size_equal_only_decl.hpp | 35 + .../include/msgpack/v2/adaptor/v4raw_decl.hpp | 34 + .../include/msgpack/v2/cpp_config_decl.hpp | 84 + .../msgpack/v2/create_object_visitor.hpp | 250 + .../msgpack/v2/create_object_visitor_decl.hpp | 33 + .../msgpack/v2/detail/cpp03_zone_decl.hpp | 31 + .../msgpack/v2/detail/cpp11_zone_decl.hpp | 31 + .../include/msgpack/v2/fbuffer_decl.hpp | 32 + .../include/msgpack/v2/iterator_decl.hpp | 33 + .../msgpack/include/msgpack/v2/meta_decl.hpp | 50 + .../include/msgpack/v2/null_visitor.hpp | 96 + .../include/msgpack/v2/null_visitor_decl.hpp | 29 + .../msgpack/include/msgpack/v2/object.hpp | 33 + .../include/msgpack/v2/object_decl.hpp | 53 + .../msgpack/include/msgpack/v2/object_fwd.hpp | 109 + .../include/msgpack/v2/object_fwd_decl.hpp | 75 + .../msgpack/include/msgpack/v2/pack_decl.hpp | 56 + .../msgpack/include/msgpack/v2/parse.hpp | 1072 ++ .../msgpack/include/msgpack/v2/parse_decl.hpp | 79 + .../include/msgpack/v2/parse_return.hpp | 37 + .../include/msgpack/v2/sbuffer_decl.hpp | 33 + .../msgpack/include/msgpack/v2/unpack.hpp | 348 + .../include/msgpack/v2/unpack_decl.hpp | 312 + .../include/msgpack/v2/vrefbuffer_decl.hpp | 29 + .../msgpack/include/msgpack/v2/x3_parse.hpp | 873 + .../include/msgpack/v2/x3_parse_decl.hpp | 36 + .../msgpack/include/msgpack/v2/x3_unpack.hpp | 120 + .../include/msgpack/v2/x3_unpack_decl.hpp | 71 + .../include/msgpack/v2/zbuffer_decl.hpp | 29 + .../msgpack/include/msgpack/v2/zone_decl.hpp | 21 + .../msgpack/v3/adaptor/adaptor_base.hpp | 58 + .../msgpack/v3/adaptor/adaptor_base_decl.hpp | 52 + .../msgpack/v3/adaptor/array_ref_decl.hpp | 36 + .../v3/adaptor/boost/msgpack_variant_decl.hpp | 42 + .../v3/adaptor/check_container_size_decl.hpp | 39 + .../msgpack/v3/adaptor/define_decl.hpp | 23 + .../detail/cpp03_define_array_decl.hpp | 31 + .../adaptor/detail/cpp03_define_map_decl.hpp | 31 + .../detail/cpp03_msgpack_tuple_decl.hpp | 43 + .../detail/cpp11_define_array_decl.hpp | 32 + .../adaptor/detail/cpp11_define_map_decl.hpp | 31 + .../detail/cpp11_msgpack_tuple_decl.hpp | 59 + .../include/msgpack/v3/adaptor/ext_decl.hpp | 34 + .../msgpack/v3/adaptor/fixint_decl.hpp | 43 + .../include/msgpack/v3/adaptor/int_decl.hpp | 54 + .../include/msgpack/v3/adaptor/map_decl.hpp | 33 + .../msgpack/v3/adaptor/msgpack_tuple_decl.hpp | 21 + .../include/msgpack/v3/adaptor/nil_decl.hpp | 42 + .../include/msgpack/v3/adaptor/raw_decl.hpp | 33 + .../v3/adaptor/size_equal_only_decl.hpp | 35 + .../include/msgpack/v3/adaptor/v4raw_decl.hpp | 34 + .../include/msgpack/v3/cpp_config_decl.hpp | 84 + .../msgpack/v3/create_object_visitor_decl.hpp | 33 + .../msgpack/v3/detail/cpp03_zone_decl.hpp | 31 + .../msgpack/v3/detail/cpp11_zone_decl.hpp | 31 + .../include/msgpack/v3/fbuffer_decl.hpp | 32 + .../include/msgpack/v3/iterator_decl.hpp | 33 + .../msgpack/include/msgpack/v3/meta_decl.hpp | 50 + .../include/msgpack/v3/null_visitor_decl.hpp | 29 + .../include/msgpack/v3/object_decl.hpp | 53 + .../msgpack/include/msgpack/v3/object_fwd.hpp | 70 + .../include/msgpack/v3/object_fwd_decl.hpp | 75 + .../msgpack/include/msgpack/v3/pack_decl.hpp | 55 + .../msgpack/include/msgpack/v3/parse.hpp | 677 + .../msgpack/include/msgpack/v3/parse_decl.hpp | 49 + .../include/msgpack/v3/parse_return.hpp | 35 + .../include/msgpack/v3/sbuffer_decl.hpp | 33 + .../msgpack/include/msgpack/v3/unpack.hpp | 192 + .../include/msgpack/v3/unpack_decl.hpp | 304 + .../include/msgpack/v3/vrefbuffer_decl.hpp | 29 + .../include/msgpack/v3/x3_parse_decl.hpp | 34 + .../msgpack/include/msgpack/v3/x3_unpack.hpp | 97 + .../include/msgpack/v3/x3_unpack_decl.hpp | 65 + .../include/msgpack/v3/zbuffer_decl.hpp | 29 + .../msgpack/include/msgpack/v3/zone_decl.hpp | 21 + third_party/msgpack/include/msgpack/version.h | 38 + .../msgpack/include/msgpack/version.hpp | 36 + .../msgpack/include/msgpack/version_master.h | 3 + .../msgpack/include/msgpack/versioning.hpp | 71 + .../msgpack/include/msgpack/vrefbuffer.h | 140 + .../msgpack/include/msgpack/vrefbuffer.hpp | 17 + .../include/msgpack/vrefbuffer_decl.hpp | 17 + .../msgpack/include/msgpack/x3_parse.hpp | 15 + .../msgpack/include/msgpack/x3_parse_decl.hpp | 16 + .../msgpack/include/msgpack/x3_unpack.hpp | 16 + .../include/msgpack/x3_unpack_decl.hpp | 16 + third_party/msgpack/include/msgpack/zbuffer.h | 200 + .../msgpack/include/msgpack/zbuffer.hpp | 17 + .../msgpack/include/msgpack/zbuffer_decl.hpp | 17 + third_party/msgpack/include/msgpack/zone.h | 163 + third_party/msgpack/include/msgpack/zone.hpp | 17 + .../msgpack/include/msgpack/zone_decl.hpp | 17 + third_party/msgpack/src/objectc.c | 547 + third_party/msgpack/src/unpack.c | 676 + third_party/msgpack/src/version.c | 22 + third_party/msgpack/src/vrefbuffer.c | 232 + third_party/msgpack/src/zone.c | 222 + third_party/msgpack/update.sh | 30 + 729 files changed, 99788 insertions(+) create mode 100644 third_party/msgpack/README-mozilla create mode 100644 third_party/msgpack/include/msgpack.h create mode 100644 third_party/msgpack/include/msgpack.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/adaptor_base.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/adaptor_base_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/array_ref.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/array_ref_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/bool.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/boost/fusion.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/boost/msgpack_variant.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/boost/msgpack_variant_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/boost/optional.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/boost/string_ref.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/boost/string_view.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/carray.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/char_ptr.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/check_container_size.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/check_container_size_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp11/array.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp11/array_char.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp11/array_unsigned_char.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp11/chrono.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp11/forward_list.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp11/reference_wrapper.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp11/shared_ptr.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp11/tuple.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp11/unique_ptr.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp11/unordered_map.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp11/unordered_set.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp17/byte.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp17/carray_byte.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp17/optional.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp17/string_view.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/cpp17/vector_byte.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/define.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/define_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/deque.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/ext.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/ext_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/fixint.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/fixint_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/float.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/int.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/int_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/list.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/map.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/map_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/msgpack_tuple.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/msgpack_tuple_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/nil.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/nil_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/pair.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/raw.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/raw_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/set.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/size_equal_only.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/size_equal_only_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/string.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/tr1/unordered_map.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/tr1/unordered_set.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/v4raw.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/v4raw_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/vector.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/vector_bool.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/vector_char.hpp create mode 100644 third_party/msgpack/include/msgpack/adaptor/vector_unsigned_char.hpp create mode 100644 third_party/msgpack/include/msgpack/cpp_config.hpp create mode 100644 third_party/msgpack/include/msgpack/cpp_config_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/create_object_visitor.hpp create mode 100644 third_party/msgpack/include/msgpack/create_object_visitor_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/fbuffer.h create mode 100644 third_party/msgpack/include/msgpack/fbuffer.hpp create mode 100644 third_party/msgpack/include/msgpack/fbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/gcc_atomic.h create mode 100644 third_party/msgpack/include/msgpack/gcc_atomic.hpp create mode 100644 third_party/msgpack/include/msgpack/iterator.hpp create mode 100644 third_party/msgpack/include/msgpack/iterator_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/meta.hpp create mode 100644 third_party/msgpack/include/msgpack/meta_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/null_visitor.hpp create mode 100644 third_party/msgpack/include/msgpack/null_visitor_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/object.h create mode 100644 third_party/msgpack/include/msgpack/object.hpp create mode 100644 third_party/msgpack/include/msgpack/object_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/object_fwd.hpp create mode 100644 third_party/msgpack/include/msgpack/object_fwd_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/pack.h create mode 100644 third_party/msgpack/include/msgpack/pack.hpp create mode 100644 third_party/msgpack/include/msgpack/pack_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/pack_define.h create mode 100644 third_party/msgpack/include/msgpack/pack_template.h create mode 100644 third_party/msgpack/include/msgpack/parse.hpp create mode 100644 third_party/msgpack/include/msgpack/parse_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/parse_return.hpp create mode 100644 third_party/msgpack/include/msgpack/predef.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/alpha.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/arm.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/blackfin.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/convex.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/ia64.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/m68k.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/mips.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/parisc.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/ppc.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/pyramid.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/rs6k.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/sparc.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/superh.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/sys370.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/sys390.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/x86.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/x86/32.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/x86/64.h create mode 100644 third_party/msgpack/include/msgpack/predef/architecture/z.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/borland.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/clang.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/comeau.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/compaq.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/diab.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/digitalmars.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/dignus.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/edg.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/ekopath.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/gcc.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/gcc_xml.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/greenhills.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/hp_acc.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/iar.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/ibm.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/intel.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/kai.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/llvm.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/metaware.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/metrowerks.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/microtec.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/mpw.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/palm.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/pgi.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/sgi_mipspro.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/sunpro.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/tendra.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/visualc.h create mode 100644 third_party/msgpack/include/msgpack/predef/compiler/watcom.h create mode 100644 third_party/msgpack/include/msgpack/predef/detail/_cassert.h create mode 100644 third_party/msgpack/include/msgpack/predef/detail/_exception.h create mode 100644 third_party/msgpack/include/msgpack/predef/detail/comp_detected.h create mode 100644 third_party/msgpack/include/msgpack/predef/detail/endian_compat.h create mode 100644 third_party/msgpack/include/msgpack/predef/detail/os_detected.h create mode 100644 third_party/msgpack/include/msgpack/predef/detail/platform_detected.h create mode 100644 third_party/msgpack/include/msgpack/predef/detail/test.h create mode 100644 third_party/msgpack/include/msgpack/predef/detail/test_def.h create mode 100644 third_party/msgpack/include/msgpack/predef/hardware.h create mode 100644 third_party/msgpack/include/msgpack/predef/hardware/simd.h create mode 100644 third_party/msgpack/include/msgpack/predef/hardware/simd/arm.h create mode 100644 third_party/msgpack/include/msgpack/predef/hardware/simd/arm/versions.h create mode 100644 third_party/msgpack/include/msgpack/predef/hardware/simd/ppc.h create mode 100644 third_party/msgpack/include/msgpack/predef/hardware/simd/ppc/versions.h create mode 100644 third_party/msgpack/include/msgpack/predef/hardware/simd/x86.h create mode 100644 third_party/msgpack/include/msgpack/predef/hardware/simd/x86/versions.h create mode 100644 third_party/msgpack/include/msgpack/predef/hardware/simd/x86_amd.h create mode 100644 third_party/msgpack/include/msgpack/predef/hardware/simd/x86_amd/versions.h create mode 100644 third_party/msgpack/include/msgpack/predef/language.h create mode 100644 third_party/msgpack/include/msgpack/predef/language/objc.h create mode 100644 third_party/msgpack/include/msgpack/predef/language/stdc.h create mode 100644 third_party/msgpack/include/msgpack/predef/language/stdcpp.h create mode 100644 third_party/msgpack/include/msgpack/predef/library.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/c.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/c/_prefix.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/c/gnu.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/c/uc.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/c/vms.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/c/zos.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/std.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/std/_prefix.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/std/cxx.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/std/dinkumware.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/std/libcomo.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/std/modena.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/std/msl.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/std/roguewave.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/std/sgi.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/std/stdcpp3.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/std/stlport.h create mode 100644 third_party/msgpack/include/msgpack/predef/library/std/vacpp.h create mode 100644 third_party/msgpack/include/msgpack/predef/make.h create mode 100644 third_party/msgpack/include/msgpack/predef/os.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/aix.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/amigaos.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/android.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/beos.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/bsd.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/bsd/bsdi.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/bsd/dragonfly.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/bsd/free.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/bsd/net.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/bsd/open.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/cygwin.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/haiku.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/hpux.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/ios.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/irix.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/linux.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/macos.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/os400.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/qnxnto.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/solaris.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/unix.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/vms.h create mode 100644 third_party/msgpack/include/msgpack/predef/os/windows.h create mode 100644 third_party/msgpack/include/msgpack/predef/other.h create mode 100644 third_party/msgpack/include/msgpack/predef/other/endian.h create mode 100644 third_party/msgpack/include/msgpack/predef/platform.h create mode 100644 third_party/msgpack/include/msgpack/predef/platform/mingw.h create mode 100644 third_party/msgpack/include/msgpack/predef/platform/windows_desktop.h create mode 100644 third_party/msgpack/include/msgpack/predef/platform/windows_phone.h create mode 100644 third_party/msgpack/include/msgpack/predef/platform/windows_runtime.h create mode 100644 third_party/msgpack/include/msgpack/predef/platform/windows_store.h create mode 100644 third_party/msgpack/include/msgpack/predef/version.h create mode 100644 third_party/msgpack/include/msgpack/predef/version_number.h create mode 100644 third_party/msgpack/include/msgpack/preprocessor.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/arithmetic.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/arithmetic/add.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/arithmetic/dec.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/arithmetic/detail/div_base.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/arithmetic/div.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/arithmetic/inc.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/arithmetic/mod.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/arithmetic/mul.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/arithmetic/sub.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/data.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/detail/get_data.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/elem.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/enum.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/insert.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/pop_back.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/pop_front.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/push_back.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/push_front.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/remove.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/replace.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/reverse.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/size.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/to_list.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/to_seq.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/array/to_tuple.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/assert_msg.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/cat.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/comma.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/comma_if.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/comparison.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/comparison/equal.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/comparison/greater.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/comparison/greater_equal.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/comparison/less.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/comparison/less_equal.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/comparison/not_equal.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/config/config.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/config/limits.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/control.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/control/deduce_d.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/control/detail/dmc/while.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/control/detail/edg/while.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/control/detail/msvc/while.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/control/detail/while.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/control/expr_if.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/control/expr_iif.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/control/if.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/control/iif.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/control/while.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/debug.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/debug/assert.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/debug/error.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/debug/line.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/dec.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/detail/auto_rec.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/detail/check.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/detail/dmc/auto_rec.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/detail/is_binary.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/detail/is_nullary.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/detail/is_unary.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/detail/null.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/detail/split.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/empty.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/enum.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/enum_params.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/enum_params_with_a_default.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/enum_params_with_defaults.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/enum_shifted.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/enum_shifted_params.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/expand.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/expr_if.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/facilities.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/facilities/apply.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/facilities/detail/is_empty.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/facilities/empty.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/facilities/expand.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/facilities/identity.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/facilities/intercept.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/facilities/is_1.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/facilities/is_empty.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/facilities/is_empty_or_1.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/facilities/is_empty_variadic.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/facilities/overload.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/for.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/identity.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/if.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/inc.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iterate.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower1.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower2.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower3.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower4.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower5.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper1.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper2.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper3.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper4.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper5.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/finish.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward1.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward2.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward3.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward4.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward5.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse1.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse2.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse3.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse4.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse5.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/local.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/rlocal.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/self.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/detail/start.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/iterate.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/local.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/iteration/self.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/library.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/limits.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/adt.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/append.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/at.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/cat.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/detail/dmc/fold_left.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/detail/edg/fold_left.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/detail/edg/fold_right.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/detail/fold_left.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/detail/fold_right.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/enum.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/filter.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/first_n.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/fold_left.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/fold_right.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/for_each.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/for_each_i.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/for_each_product.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/rest_n.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/reverse.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/size.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/to_array.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/to_seq.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/to_tuple.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/list/transform.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/logical.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/logical/and.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/logical/bitand.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/logical/bitnor.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/logical/bitor.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/logical/bitxor.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/logical/bool.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/logical/compl.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/logical/nor.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/logical/not.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/logical/or.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/logical/xor.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/max.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/min.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/punctuation.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/punctuation/comma.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/punctuation/comma_if.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/punctuation/detail/is_begin_parens.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/punctuation/is_begin_parens.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/punctuation/paren.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/punctuation/paren_if.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/punctuation/remove_parens.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repeat.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repeat_2nd.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repeat_3rd.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repeat_from_to.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repeat_from_to_2nd.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repeat_from_to_3rd.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/deduce_r.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/deduce_z.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/detail/dmc/for.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/detail/edg/for.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/detail/for.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/detail/msvc/for.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/enum.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/enum_binary_params.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/enum_params.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/enum_params_with_a_default.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/enum_params_with_defaults.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/enum_shifted.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/enum_shifted_binary_params.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/enum_shifted_params.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/enum_trailing.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/enum_trailing_binary_params.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/enum_trailing_params.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/for.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/repeat.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/repetition/repeat_from_to.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/selection.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/selection/max.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/selection/min.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/cat.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/detail/binary_transform.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/detail/is_empty.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/detail/split.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/elem.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/enum.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/filter.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/first_n.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/fold_left.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/fold_right.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/for_each.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/for_each_i.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/for_each_product.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/insert.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/pop_back.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/pop_front.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/push_back.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/push_front.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/remove.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/replace.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/rest_n.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/reverse.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/seq.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/size.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/subseq.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/to_array.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/to_list.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/to_tuple.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/transform.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/seq/variadic_seq_to_seq.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/slot.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/slot/counter.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/slot/detail/counter.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/slot/detail/def.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/slot/detail/shared.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot1.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot2.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot3.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot4.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot5.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/slot/slot.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/stringize.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/detail/is_single_return.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/eat.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/elem.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/enum.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/insert.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/pop_back.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/pop_front.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/push_back.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/push_front.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/rem.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/remove.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/replace.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/reverse.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/size.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/to_array.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/to_list.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/tuple/to_seq.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/variadic.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/variadic/detail/is_single_return.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/variadic/elem.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/variadic/size.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/variadic/to_array.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/variadic/to_list.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/variadic/to_seq.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/variadic/to_tuple.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/while.hpp create mode 100644 third_party/msgpack/include/msgpack/preprocessor/wstringize.hpp create mode 100644 third_party/msgpack/include/msgpack/sbuffer.h create mode 100644 third_party/msgpack/include/msgpack/sbuffer.hpp create mode 100644 third_party/msgpack/include/msgpack/sbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/sysdep.h create mode 100644 third_party/msgpack/include/msgpack/timestamp.h create mode 100644 third_party/msgpack/include/msgpack/type.hpp create mode 100644 third_party/msgpack/include/msgpack/unpack.h create mode 100644 third_party/msgpack/include/msgpack/unpack.hpp create mode 100644 third_party/msgpack/include/msgpack/unpack_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/unpack_define.h create mode 100644 third_party/msgpack/include/msgpack/unpack_exception.hpp create mode 100644 third_party/msgpack/include/msgpack/unpack_template.h create mode 100644 third_party/msgpack/include/msgpack/util.h create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/adaptor_base.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/adaptor_base_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/array_ref.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/array_ref_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/bool.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/boost/fusion.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/boost/msgpack_variant.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/boost/msgpack_variant_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/boost/string_ref.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/boost/string_view.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/carray.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/char_ptr.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/check_container_size.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/check_container_size_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp11/array.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp11/array_char.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp11/array_unsigned_char.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp11/chrono.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp11/forward_list.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp11/reference_wrapper.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp11/shared_ptr.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp11/tuple.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp11/unique_ptr.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp11/unordered_map.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp11/unordered_set.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp17/byte.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp17/carray_byte.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp17/optional.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp17/string_view.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/define.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/define_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/deque.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_array_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_map.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_map_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_array_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_map_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/ext.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/ext_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/fixint.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/fixint_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/float.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/int.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/int_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/list.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/map.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/map_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/msgpack_tuple.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/msgpack_tuple_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/nil.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/nil_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/pair.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/raw.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/raw_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/set.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/size_equal_only.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/size_equal_only_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/string.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/tr1/unordered_map.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/tr1/unordered_set.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/v4raw.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/v4raw_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/vector.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/vector_bool.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/vector_char.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/cpp_config.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/cpp_config_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/detail/cpp03_zone.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/detail/cpp03_zone_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/detail/cpp11_zone.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/detail/cpp11_zone_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/fbuffer.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/fbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/iterator.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/iterator_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/meta.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/meta_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/object.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/object_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/object_fwd.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/object_fwd_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/pack.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/pack_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/parse_return.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/preprocessor.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/sbuffer.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/sbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/unpack.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/unpack_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/unpack_exception.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/version.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/versioning.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/vrefbuffer.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/vrefbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/zbuffer.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/zbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/zone.hpp create mode 100644 third_party/msgpack/include/msgpack/v1/zone_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/adaptor_base.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/adaptor_base_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/array_ref_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/boost/msgpack_variant_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/check_container_size_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/define_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/detail/cpp03_define_array_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/detail/cpp03_define_map_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/detail/cpp03_msgpack_tuple_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/detail/cpp11_define_array_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/detail/cpp11_define_map_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/detail/cpp11_msgpack_tuple_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/ext_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/fixint_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/int_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/map_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/msgpack_tuple_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/nil_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/raw_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/size_equal_only_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/adaptor/v4raw_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/cpp_config_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/create_object_visitor.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/create_object_visitor_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/detail/cpp03_zone_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/detail/cpp11_zone_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/fbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/iterator_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/meta_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/null_visitor.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/null_visitor_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/object.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/object_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/object_fwd.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/object_fwd_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/pack_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/parse.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/parse_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/parse_return.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/sbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/unpack.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/unpack_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/vrefbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/x3_parse.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/x3_parse_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/x3_unpack.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/x3_unpack_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/zbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v2/zone_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/adaptor_base.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/adaptor_base_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/array_ref_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/boost/msgpack_variant_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/check_container_size_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/define_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/detail/cpp03_define_array_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/detail/cpp03_define_map_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/detail/cpp03_msgpack_tuple_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/detail/cpp11_define_array_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/detail/cpp11_define_map_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/detail/cpp11_msgpack_tuple_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/ext_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/fixint_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/int_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/map_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/msgpack_tuple_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/nil_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/raw_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/size_equal_only_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/adaptor/v4raw_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/cpp_config_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/create_object_visitor_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/detail/cpp03_zone_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/detail/cpp11_zone_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/fbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/iterator_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/meta_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/null_visitor_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/object_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/object_fwd.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/object_fwd_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/pack_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/parse.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/parse_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/parse_return.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/sbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/unpack.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/unpack_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/vrefbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/x3_parse_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/x3_unpack.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/x3_unpack_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/zbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/v3/zone_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/version.h create mode 100644 third_party/msgpack/include/msgpack/version.hpp create mode 100644 third_party/msgpack/include/msgpack/version_master.h create mode 100644 third_party/msgpack/include/msgpack/versioning.hpp create mode 100644 third_party/msgpack/include/msgpack/vrefbuffer.h create mode 100644 third_party/msgpack/include/msgpack/vrefbuffer.hpp create mode 100644 third_party/msgpack/include/msgpack/vrefbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/x3_parse.hpp create mode 100644 third_party/msgpack/include/msgpack/x3_parse_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/x3_unpack.hpp create mode 100644 third_party/msgpack/include/msgpack/x3_unpack_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/zbuffer.h create mode 100644 third_party/msgpack/include/msgpack/zbuffer.hpp create mode 100644 third_party/msgpack/include/msgpack/zbuffer_decl.hpp create mode 100644 third_party/msgpack/include/msgpack/zone.h create mode 100644 third_party/msgpack/include/msgpack/zone.hpp create mode 100644 third_party/msgpack/include/msgpack/zone_decl.hpp create mode 100644 third_party/msgpack/src/objectc.c create mode 100644 third_party/msgpack/src/unpack.c create mode 100644 third_party/msgpack/src/version.c create mode 100644 third_party/msgpack/src/vrefbuffer.c create mode 100644 third_party/msgpack/src/zone.c create mode 100644 third_party/msgpack/update.sh diff --git a/third_party/msgpack/README-mozilla b/third_party/msgpack/README-mozilla new file mode 100644 index 000000000000..b9370d8cb833 --- /dev/null +++ b/third_party/msgpack/README-mozilla @@ -0,0 +1,20 @@ +This directory contains the msgpack source from the upstream repo: + +https://github.com/msgpack/msgpack-c + +Current version: cpp-3.1.0 [commit b6803a5fecbe321458faafd6a079dac466614ff9] + +UPDATING: + +Our in-tree copy of msgpack does not depend on any generated files from the +upstream build system. Therefore, it should be sufficient to simply overwrite +the in-tree files one the updated ones from upstream to perform updates. + +To simplify this, the in-tree copy can be updated by running + + sh update.sh + +from within the third_party/msgpack directory. + +If the collection of source files changes, manual updates to moz.build may be +needed as we don't use the upstream makefiles. diff --git a/third_party/msgpack/include/msgpack.h b/third_party/msgpack/include/msgpack.h new file mode 100644 index 000000000000..af557a5cdb27 --- /dev/null +++ b/third_party/msgpack/include/msgpack.h @@ -0,0 +1,24 @@ +/* + * MessagePack for C + * + * Copyright (C) 2008-2009 FURUHASHI Sadayuki + * + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ +/** + * @defgroup msgpack MessagePack C + * @{ + * @} + */ + +#include "msgpack/util.h" +#include "msgpack/object.h" +#include "msgpack/zone.h" +#include "msgpack/pack.h" +#include "msgpack/unpack.h" +#include "msgpack/sbuffer.h" +#include "msgpack/vrefbuffer.h" +#include "msgpack/version.h" + diff --git a/third_party/msgpack/include/msgpack.hpp b/third_party/msgpack/include/msgpack.hpp new file mode 100644 index 000000000000..74ae1f6635ad --- /dev/null +++ b/third_party/msgpack/include/msgpack.hpp @@ -0,0 +1,22 @@ +// +// MessagePack for C++ +// +// Copyright (C) 2008-2009 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#include "msgpack/object.hpp" +#include "msgpack/iterator.hpp" +#include "msgpack/zone.hpp" +#include "msgpack/pack.hpp" +#include "msgpack/null_visitor.hpp" +#include "msgpack/parse.hpp" +#include "msgpack/unpack.hpp" +#include "msgpack/x3_parse.hpp" +#include "msgpack/x3_unpack.hpp" +#include "msgpack/sbuffer.hpp" +#include "msgpack/vrefbuffer.hpp" +#include "msgpack/version.hpp" +#include "msgpack/type.hpp" diff --git a/third_party/msgpack/include/msgpack/adaptor/adaptor_base.hpp b/third_party/msgpack/include/msgpack/adaptor/adaptor_base.hpp new file mode 100644 index 000000000000..4cf4fd4451eb --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/adaptor_base.hpp @@ -0,0 +1,19 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_ADAPTOR_BASE_HPP +#define MSGPACK_ADAPTOR_BASE_HPP + +#include "msgpack/adaptor/adaptor_base_decl.hpp" + +#include "msgpack/v1/adaptor/adaptor_base.hpp" +#include "msgpack/v2/adaptor/adaptor_base.hpp" +#include "msgpack/v3/adaptor/adaptor_base.hpp" + +#endif // MSGPACK_ADAPTOR_BASE_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/adaptor_base_decl.hpp b/third_party/msgpack/include/msgpack/adaptor/adaptor_base_decl.hpp new file mode 100644 index 000000000000..753cfb91e25c --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/adaptor_base_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_ADAPTOR_BASE_DECL_HPP +#define MSGPACK_ADAPTOR_BASE_DECL_HPP + +#include "msgpack/v1/adaptor/adaptor_base_decl.hpp" +#include "msgpack/v2/adaptor/adaptor_base_decl.hpp" +#include "msgpack/v3/adaptor/adaptor_base_decl.hpp" + +#endif // MSGPACK_ADAPTOR_BASE_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/array_ref.hpp b/third_party/msgpack/include/msgpack/adaptor/array_ref.hpp new file mode 100644 index 000000000000..2a3f61fbfa5a --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/array_ref.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_ARRAY_REF_HPP +#define MSGPACK_TYPE_ARRAY_REF_HPP + +#include "msgpack/adaptor/array_ref_decl.hpp" + +#include "msgpack/v1/adaptor/array_ref.hpp" + +#endif // MSGPACK_TYPE_ARRAY_REFL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/array_ref_decl.hpp b/third_party/msgpack/include/msgpack/adaptor/array_ref_decl.hpp new file mode 100644 index 000000000000..43eaa98d71de --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/array_ref_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_ARRAY_REF_DECL_HPP +#define MSGPACK_TYPE_ARRAY_REF_DECL_HPP + +#include "msgpack/v1/adaptor/array_ref_decl.hpp" +#include "msgpack/v2/adaptor/array_ref_decl.hpp" +#include "msgpack/v3/adaptor/array_ref_decl.hpp" + +#endif // MSGPACK_TYPE_ARRAY_REF_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/bool.hpp b/third_party/msgpack/include/msgpack/adaptor/bool.hpp new file mode 100644 index 000000000000..f904fb98f0c1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/bool.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_BOOL_HPP +#define MSGPACK_TYPE_BOOL_HPP + +#include "msgpack/v1/adaptor/bool.hpp" + +#endif // MSGPACK_TYPE_BOOL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/boost/fusion.hpp b/third_party/msgpack/include/msgpack/adaptor/boost/fusion.hpp new file mode 100644 index 000000000000..c6191f139f94 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/boost/fusion.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_BOOST_FUSION_HPP +#define MSGPACK_TYPE_BOOST_FUSION_HPP + +#include "msgpack/v1/adaptor/boost/fusion.hpp" + +#endif // MSGPACK_TYPE_BOOST_FUSION_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/boost/msgpack_variant.hpp b/third_party/msgpack/include/msgpack/adaptor/boost/msgpack_variant.hpp new file mode 100644 index 000000000000..b20f1ac93885 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/boost/msgpack_variant.hpp @@ -0,0 +1,18 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_BOOST_MSGPACK_VARIANT_HPP +#define MSGPACK_TYPE_BOOST_MSGPACK_VARIANT_HPP + +#include "msgpack/adaptor/boost/msgpack_variant_decl.hpp" + +#include "msgpack/v1/adaptor/boost/msgpack_variant.hpp" +//#include "msgpack/v2/adaptor/boost/msgpack_variant.hpp" + +#endif // MSGPACK_TYPE_BOOST_MSGPACK_VARIANT_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/boost/msgpack_variant_decl.hpp b/third_party/msgpack/include/msgpack/adaptor/boost/msgpack_variant_decl.hpp new file mode 100644 index 000000000000..ada6c913b3bb --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/boost/msgpack_variant_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_BOOST_MSGPACK_VARIANT_DECL_HPP +#define MSGPACK_TYPE_BOOST_MSGPACK_VARIANT_DECL_HPP + +#include "msgpack/v1/adaptor/boost/msgpack_variant_decl.hpp" +#include "msgpack/v2/adaptor/boost/msgpack_variant_decl.hpp" +#include "msgpack/v3/adaptor/boost/msgpack_variant_decl.hpp" + +#endif // MSGPACK_TYPE_BOOST_MSGPACK_VARIANT_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/boost/optional.hpp b/third_party/msgpack/include/msgpack/adaptor/boost/optional.hpp new file mode 100644 index 000000000000..e4b53cebf3f5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/boost/optional.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_BOOST_OPTIONAL_HPP +#define MSGPACK_TYPE_BOOST_OPTIONAL_HPP + +#include "msgpack/v1/adaptor/boost/optional.hpp" + +#endif // MSGPACK_TYPE_BOOST_OPTIONAL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/boost/string_ref.hpp b/third_party/msgpack/include/msgpack/adaptor/boost/string_ref.hpp new file mode 100644 index 000000000000..43bf70f4521c --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/boost/string_ref.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_BOOST_STRING_REF_HPP +#define MSGPACK_TYPE_BOOST_STRING_REF_HPP + +#include "msgpack/v1/adaptor/boost/string_ref.hpp" + +#endif // MSGPACK_TYPE_BOOST_STRING_REF_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/boost/string_view.hpp b/third_party/msgpack/include/msgpack/adaptor/boost/string_view.hpp new file mode 100644 index 000000000000..ccf272cf1246 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/boost/string_view.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2017 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_BOOST_STRING_VIEW_HPP +#define MSGPACK_TYPE_BOOST_STRING_VIEW_HPP + +#include "msgpack/v1/adaptor/boost/string_view.hpp" + +#endif // MSGPACK_TYPE_BOOST_STRING_VIEW_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/carray.hpp b/third_party/msgpack/include/msgpack/adaptor/carray.hpp new file mode 100644 index 000000000000..b1caf53d5348 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/carray.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_CARRAY_HPP +#define MSGPACK_TYPE_CARRAY_HPP + +#include "msgpack/v1/adaptor/carray.hpp" + +#endif // MSGPACK_TYPE_CARRAY_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/char_ptr.hpp b/third_party/msgpack/include/msgpack/adaptor/char_ptr.hpp new file mode 100644 index 000000000000..71cce6ccf5af --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/char_ptr.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_CHAR_PTR_HPP +#define MSGPACK_TYPE_CHAR_PTR_HPP + +#include "msgpack/v1/adaptor/char_ptr.hpp" + +#endif // MSGPACK_TYPE_CHAR_PTR_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/check_container_size.hpp b/third_party/msgpack/include/msgpack/adaptor/check_container_size.hpp new file mode 100644 index 000000000000..a464419fc4e2 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/check_container_size.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_CHECK_CONTAINER_SIZE_HPP +#define MSGPACK_CHECK_CONTAINER_SIZE_HPP + +#include "msgpack/adaptor/check_container_size_decl.hpp" + +#include "msgpack/v1/adaptor/check_container_size.hpp" + +#endif // MSGPACK_CHECK_CONTAINER_SIZE_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/check_container_size_decl.hpp b/third_party/msgpack/include/msgpack/adaptor/check_container_size_decl.hpp new file mode 100644 index 000000000000..e61334af73cb --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/check_container_size_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_CHECK_CONTAINER_SIZE_DECL_HPP +#define MSGPACK_CHECK_CONTAINER_SIZE_DECL_HPP + +#include "msgpack/v1/adaptor/check_container_size_decl.hpp" +#include "msgpack/v2/adaptor/check_container_size_decl.hpp" +#include "msgpack/v3/adaptor/check_container_size_decl.hpp" + +#endif // MSGPACK_CHECK_CONTAINER_SIZE_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp11/array.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp11/array.hpp new file mode 100644 index 000000000000..fdc49022f9a9 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp11/array.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP11_ARRAY_HPP +#define MSGPACK_TYPE_CPP11_ARRAY_HPP + +#include "msgpack/v1/adaptor/cpp11/array.hpp" + +#endif // MSGPACK_TYPE_CPP11_ARRAY_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp11/array_char.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp11/array_char.hpp new file mode 100644 index 000000000000..8a9bc6dfe719 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp11/array_char.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP11_ARRAY_CHAR_HPP +#define MSGPACK_TYPE_CPP11_ARRAY_CHAR_HPP + +#include "msgpack/v1/adaptor/cpp11/array_char.hpp" + +#endif // MSGPACK_TYPE_CPP11_ARRAY_CHAR_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp11/array_unsigned_char.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp11/array_unsigned_char.hpp new file mode 100644 index 000000000000..0860a88af516 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp11/array_unsigned_char.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP11_ARRAY_UNSIGNED_CHAR_HPP +#define MSGPACK_TYPE_CPP11_ARRAY_UNSIGNED_CHAR_HPP + +#include "msgpack/v1/adaptor/cpp11/array_unsigned_char.hpp" + +#endif // MSGPACK_TYPE_CPP11_ARRAY_UNSIGNED_CHAR_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp11/chrono.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp11/chrono.hpp new file mode 100644 index 000000000000..48d93974573c --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp11/chrono.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2017 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP11_CHRONO_HPP +#define MSGPACK_TYPE_CPP11_CHRONO_HPP + +#include "msgpack/v1/adaptor/cpp11/chrono.hpp" + +#endif // MSGPACK_TYPE_CPP11_CHRONO_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp11/forward_list.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp11/forward_list.hpp new file mode 100644 index 000000000000..27ac9c0d1fa3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp11/forward_list.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP11_FORWARD_LIST_HPP +#define MSGPACK_TYPE_CPP11_FORWARD_LIST_HPP + +#include "msgpack/v1/adaptor/cpp11/forward_list.hpp" + +#endif // MSGPACK_TYPE_CPP11_FORWARD_LIST_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp11/reference_wrapper.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp11/reference_wrapper.hpp new file mode 100644 index 000000000000..6b09429c5e1d --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp11/reference_wrapper.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP11_REFERENCE_WRAPPER_HPP +#define MSGPACK_TYPE_CPP11_REFERENCE_WRAPPER_HPP + +#include "msgpack/v1/adaptor/cpp11/reference_wrapper.hpp" + +#endif // MSGPACK_TYPE_CPP11_REFERENCE_WRAPPER_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp11/shared_ptr.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp11/shared_ptr.hpp new file mode 100644 index 000000000000..2199a499d08d --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp11/shared_ptr.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP11_SHARED_PTR_HPP +#define MSGPACK_TYPE_CPP11_SHARED_PTR_HPP + +#include "msgpack/v1/adaptor/cpp11/shared_ptr.hpp" + +#endif // MSGPACK_TYPE_CPP11_SHARED_PTR_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp11/tuple.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp11/tuple.hpp new file mode 100644 index 000000000000..b833c2a26ba7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp11/tuple.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP11_TUPLE_HPP +#define MSGPACK_TYPE_CPP11_TUPLE_HPP + +#include "msgpack/v1/adaptor/cpp11/tuple.hpp" + +#endif // MSGPACK_TYPE_CPP11_TUPLE_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp11/unique_ptr.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp11/unique_ptr.hpp new file mode 100644 index 000000000000..ef1001283e6d --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp11/unique_ptr.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP11_UNIQUE_PTR_HPP +#define MSGPACK_TYPE_CPP11_UNIQUE_PTR_HPP + +#include "msgpack/v1/adaptor/cpp11/unique_ptr.hpp" + +#endif // MSGPACK_TYPE_CPP11_UNIQUE_PTR_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp11/unordered_map.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp11/unordered_map.hpp new file mode 100644 index 000000000000..dadbf2e2558c --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp11/unordered_map.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP11_UNORDERED_MAP_HPP +#define MSGPACK_TYPE_CPP11_UNORDERED_MAP_HPP + +#include "msgpack/v1/adaptor/cpp11/unordered_map.hpp" + +#endif // MSGPACK_TYPE_CPP11_UNORDERED_MAP_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp11/unordered_set.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp11/unordered_set.hpp new file mode 100644 index 000000000000..f2e58621109d --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp11/unordered_set.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP11_UNORDERED_SET_HPP +#define MSGPACK_TYPE_CPP11_UNORDERED_SET_HPP + +#include "msgpack/v1/adaptor/cpp11/unordered_set.hpp" + +#endif // MSGPACK_TYPE_CPP11_UNORDERED_SET_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp17/byte.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp17/byte.hpp new file mode 100644 index 000000000000..eebaa9603037 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp17/byte.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2018 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP17_BYTE_HPP +#define MSGPACK_TYPE_CPP17_BYTE_HPP + +#include "msgpack/v1/adaptor/cpp17/byte.hpp" + +#endif // MSGPACK_TYPE_CPP17_BYTE_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp17/carray_byte.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp17/carray_byte.hpp new file mode 100644 index 000000000000..c41bccac7748 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp17/carray_byte.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2018 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP17_CARRAY_BYTE_HPP +#define MSGPACK_TYPE_CPP17_CARRAY_BYTE_HPP + +#include "msgpack/v1/adaptor/cpp17/carray_byte.hpp" + +#endif // MSGPACK_TYPE_CPP17_CARRAY_BYTE_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp17/optional.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp17/optional.hpp new file mode 100644 index 000000000000..5df17d9f491f --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp17/optional.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2017 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP17_OPTIONAL_HPP +#define MSGPACK_TYPE_CPP17_OPTIONAL_HPP + +#include "msgpack/v1/adaptor/cpp17/optional.hpp" + +#endif // MSGPACK_TYPE_CPP17_OPTIONAL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp17/string_view.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp17/string_view.hpp new file mode 100644 index 000000000000..3f77e1bb1587 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp17/string_view.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2017 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP17_STRING_VIEW_HPP +#define MSGPACK_TYPE_CPP17_STRING_VIEW_HPP + +#include "msgpack/v1/adaptor/cpp17/string_view.hpp" + +#endif // MSGPACK_TYPE_CPP17_STRING_VIEW_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/cpp17/vector_byte.hpp b/third_party/msgpack/include/msgpack/adaptor/cpp17/vector_byte.hpp new file mode 100644 index 000000000000..8c5e6230a912 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/cpp17/vector_byte.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2018 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP17_VECTOR_BYTE_HPP +#define MSGPACK_TYPE_CPP17_VECTOR_BYTE_HPP + +#include "msgpack/v1/adaptor/cpp17/vector_byte.hpp" + +#endif // MSGPACK_TYPE_CPP17_VECTOR_BYTE_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/define.hpp b/third_party/msgpack/include/msgpack/adaptor/define.hpp new file mode 100644 index 000000000000..159910082447 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/define.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_DEFINE_HPP +#define MSGPACK_DEFINE_HPP + +#include "msgpack/adaptor/define_decl.hpp" + +#include "msgpack/v1/adaptor/define.hpp" + +#endif // MSGPACK_DEFINE_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/define_decl.hpp b/third_party/msgpack/include/msgpack/adaptor/define_decl.hpp new file mode 100644 index 000000000000..1880a8616500 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/define_decl.hpp @@ -0,0 +1,144 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_DEFINE_DECL_HPP +#define MSGPACK_DEFINE_DECL_HPP + +// BOOST_PP_VARIADICS is defined in boost/preprocessor/config/config.hpp +// http://www.boost.org/libs/preprocessor/doc/ref/variadics.html +// However, supporting compiler detection is not complete. msgpack-c requires +// variadic macro arguments support. So BOOST_PP_VARIADICS is defined here explicitly. +#if !defined(MSGPACK_PP_VARIADICS) +#define MSGPACK_PP_VARIADICS +#endif + +#include + +#include "msgpack/versioning.hpp" + +// for MSGPACK_ADD_ENUM +#include "msgpack/adaptor/int.hpp" + +#define MSGPACK_DEFINE_ARRAY(...) \ + template \ + void msgpack_pack(Packer& msgpack_pk) const \ + { \ + msgpack::type::make_define_array(__VA_ARGS__).msgpack_pack(msgpack_pk); \ + } \ + void msgpack_unpack(msgpack::object const& msgpack_o) \ + { \ + msgpack::type::make_define_array(__VA_ARGS__).msgpack_unpack(msgpack_o); \ + }\ + template \ + void msgpack_object(MSGPACK_OBJECT* msgpack_o, msgpack::zone& msgpack_z) const \ + { \ + msgpack::type::make_define_array(__VA_ARGS__).msgpack_object(msgpack_o, msgpack_z); \ + } + +#define MSGPACK_BASE_ARRAY(base) (*const_cast(static_cast(this))) +#define MSGPACK_NVP(name, value) (name) (value) + +#define MSGPACK_DEFINE_MAP_EACH_PROC(r, data, elem) \ + MSGPACK_PP_IF( \ + MSGPACK_PP_IS_BEGIN_PARENS(elem), \ + elem, \ + (MSGPACK_PP_STRINGIZE(elem))(elem) \ + ) + +#define MSGPACK_DEFINE_MAP_IMPL(...) \ + MSGPACK_PP_SEQ_TO_TUPLE( \ + MSGPACK_PP_SEQ_FOR_EACH( \ + MSGPACK_DEFINE_MAP_EACH_PROC, \ + 0, \ + MSGPACK_PP_VARIADIC_TO_SEQ(__VA_ARGS__) \ + ) \ + ) + +#define MSGPACK_DEFINE_MAP(...) \ + template \ + void msgpack_pack(Packer& msgpack_pk) const \ + { \ + msgpack::type::make_define_map \ + MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \ + .msgpack_pack(msgpack_pk); \ + } \ + void msgpack_unpack(msgpack::object const& msgpack_o) \ + { \ + msgpack::type::make_define_map \ + MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \ + .msgpack_unpack(msgpack_o); \ + }\ + template \ + void msgpack_object(MSGPACK_OBJECT* msgpack_o, msgpack::zone& msgpack_z) const \ + { \ + msgpack::type::make_define_map \ + MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \ + .msgpack_object(msgpack_o, msgpack_z); \ + } + +#define MSGPACK_BASE_MAP(base) \ + (MSGPACK_PP_STRINGIZE(base))(*const_cast(static_cast(this))) + +// MSGPACK_ADD_ENUM must be used in the global namespace. +#define MSGPACK_ADD_ENUM(enum_name) \ + namespace msgpack { \ + /** @cond */ \ + MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) { \ + /** @endcond */ \ + namespace adaptor { \ + template<> \ + struct convert { \ + msgpack::object const& operator()(msgpack::object const& msgpack_o, enum_name& msgpack_v) const { \ + msgpack::underlying_type::type tmp; \ + msgpack::operator>>(msgpack_o, tmp); \ + msgpack_v = static_cast(tmp); \ + return msgpack_o; \ + } \ + }; \ + template<> \ + struct object { \ + void operator()(msgpack::object& msgpack_o, const enum_name& msgpack_v) const { \ + msgpack::underlying_type::type tmp = static_cast::type>(msgpack_v); \ + msgpack::operator<<(msgpack_o, tmp); \ + } \ + }; \ + template<> \ + struct object_with_zone { \ + void operator()(msgpack::object::with_zone& msgpack_o, const enum_name& msgpack_v) const { \ + msgpack::underlying_type::type tmp = static_cast::type>(msgpack_v); \ + msgpack::operator<<(msgpack_o, tmp); \ + } \ + }; \ + template <> \ + struct pack { \ + template \ + msgpack::packer& operator()(msgpack::packer& msgpack_o, const enum_name& msgpack_v) const { \ + return msgpack::operator<<(msgpack_o, static_cast::type>(msgpack_v)); \ + } \ + }; \ + } \ + /** @cond */ \ + } \ + /** @endcond */ \ + } + +#if defined(MSGPACK_USE_DEFINE_MAP) +#define MSGPACK_DEFINE MSGPACK_DEFINE_MAP +#define MSGPACK_BASE MSGPACK_BASE_MAP +#else // defined(MSGPACK_USE_DEFINE_MAP) +#define MSGPACK_DEFINE MSGPACK_DEFINE_ARRAY +#define MSGPACK_BASE MSGPACK_BASE_ARRAY +#endif // defined(MSGPACK_USE_DEFINE_MAP) + + +#include "msgpack/v1/adaptor/define_decl.hpp" +#include "msgpack/v2/adaptor/define_decl.hpp" +#include "msgpack/v3/adaptor/define_decl.hpp" + +#endif // MSGPACK_DEFINE_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/deque.hpp b/third_party/msgpack/include/msgpack/adaptor/deque.hpp new file mode 100644 index 000000000000..dfb61b6bffd0 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/deque.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_DEQUE_HPP +#define MSGPACK_TYPE_DEQUE_HPP + +#include "msgpack/v1/adaptor/deque.hpp" + +#endif // MSGPACK_TYPE_DEQUE_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/ext.hpp b/third_party/msgpack/include/msgpack/adaptor/ext.hpp new file mode 100644 index 000000000000..37658dc9d694 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/ext.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_EXT_HPP +#define MSGPACK_TYPE_EXT_HPP + +#include "msgpack/adaptor/ext_decl.hpp" + +#include "msgpack/v1/adaptor/ext.hpp" + +#endif // MSGPACK_TYPE_EXT_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/ext_decl.hpp b/third_party/msgpack/include/msgpack/adaptor/ext_decl.hpp new file mode 100644 index 000000000000..7da30427be4a --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/ext_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_EXT_DECL_HPP +#define MSGPACK_TYPE_EXT_DECL_HPP + +#include "msgpack/v1/adaptor/ext_decl.hpp" +#include "msgpack/v2/adaptor/ext_decl.hpp" +#include "msgpack/v3/adaptor/ext_decl.hpp" + +#endif // MSGPACK_TYPE_EXT_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/fixint.hpp b/third_party/msgpack/include/msgpack/adaptor/fixint.hpp new file mode 100644 index 000000000000..1c49116e27b6 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/fixint.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_FIXINT_HPP +#define MSGPACK_TYPE_FIXINT_HPP + +#include "msgpack/adaptor/fixint_decl.hpp" + +#include "msgpack/v1/adaptor/fixint.hpp" + +#endif // MSGPACK_TYPE_FIXINT_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/fixint_decl.hpp b/third_party/msgpack/include/msgpack/adaptor/fixint_decl.hpp new file mode 100644 index 000000000000..3e73ded25897 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/fixint_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_FIXINT_DECL_HPP +#define MSGPACK_TYPE_FIXINT_DECL_HPP + +#include "msgpack/v1/adaptor/fixint_decl.hpp" +#include "msgpack/v2/adaptor/fixint_decl.hpp" +#include "msgpack/v3/adaptor/fixint_decl.hpp" + +#endif // MSGPACK_TYPE_FIXINT_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/float.hpp b/third_party/msgpack/include/msgpack/adaptor/float.hpp new file mode 100644 index 000000000000..5683c96d5c5b --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/float.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_FLOAT_HPP +#define MSGPACK_TYPE_FLOAT_HPP + +#include "msgpack/v1/adaptor/float.hpp" + +#endif // MSGPACK_TYPE_FLOAT_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/int.hpp b/third_party/msgpack/include/msgpack/adaptor/int.hpp new file mode 100644 index 000000000000..e2213e7e364e --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/int.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_INT_HPP +#define MSGPACK_TYPE_INT_HPP + +#include "msgpack/adaptor/int_decl.hpp" + +#include "msgpack/v1/adaptor/int.hpp" + +#endif // MSGPACK_TYPE_INT_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/int_decl.hpp b/third_party/msgpack/include/msgpack/adaptor/int_decl.hpp new file mode 100644 index 000000000000..f68ef8bc0512 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/int_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_INT_DECL_HPP +#define MSGPACK_TYPE_INT_DECL_HPP + +#include "msgpack/v1/adaptor/int_decl.hpp" +#include "msgpack/v2/adaptor/int_decl.hpp" +#include "msgpack/v3/adaptor/int_decl.hpp" + +#endif // MSGPACK_TYPE_INT_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/list.hpp b/third_party/msgpack/include/msgpack/adaptor/list.hpp new file mode 100644 index 000000000000..8761da3a9c8d --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/list.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_LIST_HPP +#define MSGPACK_TYPE_LIST_HPP + +#include "msgpack/v1/adaptor/list.hpp" + +#endif // MSGPACK_TYPE_LIST_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/map.hpp b/third_party/msgpack/include/msgpack/adaptor/map.hpp new file mode 100644 index 000000000000..7f0e22e22bb6 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/map.hpp @@ -0,0 +1,18 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_MAP_HPP +#define MSGPACK_TYPE_MAP_HPP + +#include "msgpack/adaptor/map_decl.hpp" + +#include "msgpack/v1/adaptor/map.hpp" + + +#endif // MSGPACK_TYPE_MAP_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/map_decl.hpp b/third_party/msgpack/include/msgpack/adaptor/map_decl.hpp new file mode 100644 index 000000000000..757688ec4f7d --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/map_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_MAP_DECL_HPP +#define MSGPACK_TYPE_MAP_DECL_HPP + +#include "msgpack/v1/adaptor/map_decl.hpp" +#include "msgpack/v2/adaptor/map_decl.hpp" +#include "msgpack/v3/adaptor/map_decl.hpp" + +#endif // MSGPACK_TYPE_MAP_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/msgpack_tuple.hpp b/third_party/msgpack/include/msgpack/adaptor/msgpack_tuple.hpp new file mode 100644 index 000000000000..a63927761453 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/msgpack_tuple.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2014 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_MSGPACK_TUPLE_HPP +#define MSGPACK_MSGPACK_TUPLE_HPP + +#include "msgpack/adaptor/msgpack_tuple_decl.hpp" + +#include "msgpack/v1/adaptor/msgpack_tuple.hpp" + +#endif // MSGPACK_MSGPACK_TUPLE_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/msgpack_tuple_decl.hpp b/third_party/msgpack/include/msgpack/adaptor/msgpack_tuple_decl.hpp new file mode 100644 index 000000000000..0c70b22654d6 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/msgpack_tuple_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_MSGPACK_TUPLE_DECL_HPP +#define MSGPACK_MSGPACK_TUPLE_DECL_HPP + +#include "msgpack/v1/adaptor/msgpack_tuple_decl.hpp" +#include "msgpack/v2/adaptor/msgpack_tuple_decl.hpp" +#include "msgpack/v3/adaptor/msgpack_tuple_decl.hpp" + +#endif // MSGPACK_MSGPACK_TUPLE_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/nil.hpp b/third_party/msgpack/include/msgpack/adaptor/nil.hpp new file mode 100644 index 000000000000..92f308125dcf --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/nil.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_NIL_HPP +#define MSGPACK_TYPE_NIL_HPP + +#include "msgpack/adaptor/nil_decl.hpp" + +#include "msgpack/v1/adaptor/nil.hpp" + +#endif // MSGPACK_TYPE_NIL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/nil_decl.hpp b/third_party/msgpack/include/msgpack/adaptor/nil_decl.hpp new file mode 100644 index 000000000000..d45f45bb9f95 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/nil_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_NIL_DECL_HPP +#define MSGPACK_TYPE_NIL_DECL_HPP + +#include "msgpack/v1/adaptor/nil_decl.hpp" +#include "msgpack/v2/adaptor/nil_decl.hpp" +#include "msgpack/v3/adaptor/nil_decl.hpp" + +#endif // MSGPACK_TYPE_NIL_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/pair.hpp b/third_party/msgpack/include/msgpack/adaptor/pair.hpp new file mode 100644 index 000000000000..0956aa9a6639 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/pair.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_PAIR_HPP +#define MSGPACK_TYPE_PAIR_HPP + +#include "msgpack/v1/adaptor/pair.hpp" + +#endif // MSGPACK_TYPE_PAIR_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/raw.hpp b/third_party/msgpack/include/msgpack/adaptor/raw.hpp new file mode 100644 index 000000000000..f85f882cca67 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/raw.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_RAW_HPP +#define MSGPACK_TYPE_RAW_HPP + +#include "msgpack/adaptor/raw_decl.hpp" + +#include "msgpack/v1/adaptor/raw.hpp" + +#endif // MSGPACK_TYPE_RAW_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/raw_decl.hpp b/third_party/msgpack/include/msgpack/adaptor/raw_decl.hpp new file mode 100644 index 000000000000..60777bddcc1e --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/raw_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_RAW_DECL_HPP +#define MSGPACK_TYPE_RAW_DECL_HPP + +#include "msgpack/v1/adaptor/raw_decl.hpp" +#include "msgpack/v2/adaptor/raw_decl.hpp" +#include "msgpack/v3/adaptor/raw_decl.hpp" + +#endif // MSGPACK_TYPE_RAW_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/set.hpp b/third_party/msgpack/include/msgpack/adaptor/set.hpp new file mode 100644 index 000000000000..fbf820aba976 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/set.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_SET_HPP +#define MSGPACK_TYPE_SET_HPP + +#include "msgpack/v1/adaptor/set.hpp" + +#endif // MSGPACK_TYPE_SET_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/size_equal_only.hpp b/third_party/msgpack/include/msgpack/adaptor/size_equal_only.hpp new file mode 100644 index 000000000000..de9d24731232 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/size_equal_only.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_SIZE_EQUAL_ONLY_HPP +#define MSGPACK_TYPE_SIZE_EQUAL_ONLY_HPP + +#include "msgpack/adaptor/size_equal_only_decl.hpp" + +#include "msgpack/v1/adaptor/size_equal_only.hpp" + +#endif // MSGPACK_TYPE_SIZE_EQUAL_ONLYL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/size_equal_only_decl.hpp b/third_party/msgpack/include/msgpack/adaptor/size_equal_only_decl.hpp new file mode 100644 index 000000000000..d3e5dcf7591a --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/size_equal_only_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_SIZE_EQUAL_ONLY_DECL_HPP +#define MSGPACK_TYPE_SIZE_EQUAL_ONLY_DECL_HPP + +#include "msgpack/v1/adaptor/size_equal_only_decl.hpp" +#include "msgpack/v2/adaptor/size_equal_only_decl.hpp" +#include "msgpack/v3/adaptor/size_equal_only_decl.hpp" + +#endif // MSGPACK_TYPE_SIZE_EQUAL_ONLY_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/string.hpp b/third_party/msgpack/include/msgpack/adaptor/string.hpp new file mode 100644 index 000000000000..8e3182548a83 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/string.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_STRING_HPP +#define MSGPACK_TYPE_STRING_HPP + +#include "msgpack/v1/adaptor/string.hpp" + +#endif // MSGPACK_TYPE_STRING_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/tr1/unordered_map.hpp b/third_party/msgpack/include/msgpack/adaptor/tr1/unordered_map.hpp new file mode 100644 index 000000000000..9c8190e855c1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/tr1/unordered_map.hpp @@ -0,0 +1,171 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2015 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_TR1_UNORDERED_MAP_HPP +#define MSGPACK_TYPE_TR1_UNORDERED_MAP_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) + +#define MSGPACK_HAS_STD_UNORDERED_MAP +#include +#define MSGPACK_STD_TR1 std + +#else // defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) + +#if __GNUC__ >= 4 + +#define MSGPACK_HAS_STD_TR1_UNORDERED_MAP + +#include +#define MSGPACK_STD_TR1 std::tr1 + +#endif // __GNUC__ >= 4 + +#endif // defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) + +#if defined(MSGPACK_STD_TR1) + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, MSGPACK_STD_TR1::unordered_map& v) const { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + msgpack::object_kv* p(o.via.map.ptr); + msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size); + MSGPACK_STD_TR1::unordered_map tmp; + for(; p != pend; ++p) { + K key; + p->key.convert(key); + p->val.convert(tmp[key]); + } + tmp.swap(v); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const MSGPACK_STD_TR1::unordered_map& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_map(size); + for(typename MSGPACK_STD_TR1::unordered_map::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(it->first); + o.pack(it->second); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const MSGPACK_STD_TR1::unordered_map& v) const { + o.type = msgpack::type::MAP; + if(v.empty()) { + o.via.map.ptr = MSGPACK_NULLPTR; + o.via.map.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + msgpack::object_kv* const pend = p + size; + o.via.map.ptr = p; + o.via.map.size = size; + typename MSGPACK_STD_TR1::unordered_map::const_iterator it(v.begin()); + do { + p->key = msgpack::object(it->first, o.zone); + p->val = msgpack::object(it->second, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, MSGPACK_STD_TR1::unordered_multimap& v) const { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + msgpack::object_kv* p(o.via.map.ptr); + msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size); + MSGPACK_STD_TR1::unordered_multimap tmp; + for(; p != pend; ++p) { + std::pair value; + p->key.convert(value.first); + p->val.convert(value.second); + tmp.insert(value); + } + tmp.swap(v); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const MSGPACK_STD_TR1::unordered_multimap& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_map(size); + for(typename MSGPACK_STD_TR1::unordered_multimap::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(it->first); + o.pack(it->second); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const MSGPACK_STD_TR1::unordered_multimap& v) const { + o.type = msgpack::type::MAP; + if(v.empty()) { + o.via.map.ptr = MSGPACK_NULLPTR; + o.via.map.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + msgpack::object_kv* const pend = p + size; + o.via.map.ptr = p; + o.via.map.size = size; + typename MSGPACK_STD_TR1::unordered_multimap::const_iterator it(v.begin()); + do { + p->key = msgpack::object(it->first, o.zone); + p->val = msgpack::object(it->second, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#undef MSGPACK_STD_TR1 + +#endif // MSGPACK_STD_TR1 + +#endif // MSGPACK_TYPE_TR1_UNORDERED_MAP_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/tr1/unordered_set.hpp b/third_party/msgpack/include/msgpack/adaptor/tr1/unordered_set.hpp new file mode 100644 index 000000000000..dd6c0448fc63 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/tr1/unordered_set.hpp @@ -0,0 +1,165 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2015 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_TR1_UNORDERED_SET_HPP +#define MSGPACK_TYPE_TR1_UNORDERED_SET_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) + +#define MSGPACK_HAS_STD_UNORDERED_SET +#include +#define MSGPACK_STD_TR1 std + +#else // defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) + +#if __GNUC__ >= 4 + +#define MSGPACK_HAS_STD_TR1_UNORDERED_SET + +#include +#define MSGPACK_STD_TR1 std::tr1 + +#endif // __GNUC__ >= 4 + +#endif // defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) + +#if defined(MSGPACK_STD_TR1) + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, MSGPACK_STD_TR1::unordered_set& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + msgpack::object* p = o.via.array.ptr + o.via.array.size; + msgpack::object* const pbegin = o.via.array.ptr; + MSGPACK_STD_TR1::unordered_set tmp; + while(p > pbegin) { + --p; + tmp.insert(p->as()); + } + tmp.swap(v); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const MSGPACK_STD_TR1::unordered_set& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for(typename MSGPACK_STD_TR1::unordered_set::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(*it); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const MSGPACK_STD_TR1::unordered_set& v) const { + o.type = msgpack::type::ARRAY; + if(v.empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + msgpack::object* const pend = p + size; + o.via.array.ptr = p; + o.via.array.size = size; + typename MSGPACK_STD_TR1::unordered_set::const_iterator it(v.begin()); + do { + *p = msgpack::object(*it, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, MSGPACK_STD_TR1::unordered_multiset& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + msgpack::object* p = o.via.array.ptr + o.via.array.size; + msgpack::object* const pbegin = o.via.array.ptr; + MSGPACK_STD_TR1::unordered_multiset tmp; + while(p > pbegin) { + --p; + tmp.insert(p->as()); + } + tmp.swap(v); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const MSGPACK_STD_TR1::unordered_multiset& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for(typename MSGPACK_STD_TR1::unordered_multiset::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(*it); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const MSGPACK_STD_TR1::unordered_multiset& v) const { + o.type = msgpack::type::ARRAY; + if(v.empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + msgpack::object* const pend = p + size; + o.via.array.ptr = p; + o.via.array.size = size; + typename MSGPACK_STD_TR1::unordered_multiset::const_iterator it(v.begin()); + do { + *p = msgpack::object(*it, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#undef MSGPACK_STD_TR1 + +#endif // MSGPACK_STD_TR1 + +#endif // MSGPACK_TYPE_TR1_UNORDERED_SET_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/v4raw.hpp b/third_party/msgpack/include/msgpack/adaptor/v4raw.hpp new file mode 100644 index 000000000000..52c0de37eebd --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/v4raw.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_V4RAW_HPP +#define MSGPACK_TYPE_V4RAW_HPP + +#include "msgpack/adaptor/v4raw_decl.hpp" + +#include "msgpack/v1/adaptor/v4raw.hpp" + +#endif // MSGPACK_TYPE_V4RAW_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/v4raw_decl.hpp b/third_party/msgpack/include/msgpack/adaptor/v4raw_decl.hpp new file mode 100644 index 000000000000..989351832299 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/v4raw_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_V4RAW_DECL_HPP +#define MSGPACK_TYPE_V4RAW_DECL_HPP + +#include "msgpack/v1/adaptor/v4raw_decl.hpp" +#include "msgpack/v2/adaptor/v4raw_decl.hpp" +#include "msgpack/v3/adaptor/v4raw_decl.hpp" + +#endif // MSGPACK_TYPE_V4RAW_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/vector.hpp b/third_party/msgpack/include/msgpack/adaptor/vector.hpp new file mode 100644 index 000000000000..5eb6caca016f --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/vector.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_VECTOR_HPP +#define MSGPACK_TYPE_VECTOR_HPP + +#include "msgpack/v1/adaptor/vector.hpp" + +#endif // MSGPACK_TYPE_VECTOR_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/vector_bool.hpp b/third_party/msgpack/include/msgpack/adaptor/vector_bool.hpp new file mode 100644 index 000000000000..f259ac9b82ad --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/vector_bool.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_VECTOR_BOOL_HPP +#define MSGPACK_TYPE_VECTOR_BOOL_HPP + +#include "msgpack/v1/adaptor/vector_bool.hpp" + +#endif // MSGPACK_TYPE_VECTOR_BOOL_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/vector_char.hpp b/third_party/msgpack/include/msgpack/adaptor/vector_char.hpp new file mode 100644 index 000000000000..d196efa4d90a --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/vector_char.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_VECTOR_CHAR_HPP +#define MSGPACK_TYPE_VECTOR_CHAR_HPP + +#include "msgpack/v1/adaptor/vector_char.hpp" + +#endif // MSGPACK_TYPE_VECTOR_CHAR_HPP diff --git a/third_party/msgpack/include/msgpack/adaptor/vector_unsigned_char.hpp b/third_party/msgpack/include/msgpack/adaptor/vector_unsigned_char.hpp new file mode 100644 index 000000000000..e71e0d369a18 --- /dev/null +++ b/third_party/msgpack/include/msgpack/adaptor/vector_unsigned_char.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_VECTOR_UNSIGNED_CHAR_HPP +#define MSGPACK_TYPE_VECTOR_UNSIGNED_CHAR_HPP + +#include "msgpack/v1/adaptor/vector_unsigned_char.hpp" + +#endif // MSGPACK_TYPE_VECTOR_UNSIGNED_CHAR_HPP diff --git a/third_party/msgpack/include/msgpack/cpp_config.hpp b/third_party/msgpack/include/msgpack/cpp_config.hpp new file mode 100644 index 000000000000..0b36d7ef0864 --- /dev/null +++ b/third_party/msgpack/include/msgpack/cpp_config.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ C++03/C++11 Adaptation +// +// Copyright (C) 2013-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_CPP_CONFIG_HPP +#define MSGPACK_CPP_CONFIG_HPP + +#include "msgpack/cpp_config_decl.hpp" + +#include "msgpack/v1/cpp_config.hpp" + +#endif // MSGPACK_CPP_CONFIG_HPP diff --git a/third_party/msgpack/include/msgpack/cpp_config_decl.hpp b/third_party/msgpack/include/msgpack/cpp_config_decl.hpp new file mode 100644 index 000000000000..332e2a81f389 --- /dev/null +++ b/third_party/msgpack/include/msgpack/cpp_config_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ C++03/C++11 Adaptation +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_CPP_CONFIG_DECL_HPP +#define MSGPACK_CPP_CONFIG_DECL_HPP + +#include "msgpack/v1/cpp_config_decl.hpp" +#include "msgpack/v2/cpp_config_decl.hpp" +#include "msgpack/v3/cpp_config_decl.hpp" + +#endif // MSGPACK_CPP_CONFIG_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/create_object_visitor.hpp b/third_party/msgpack/include/msgpack/create_object_visitor.hpp new file mode 100644 index 000000000000..40d69974a789 --- /dev/null +++ b/third_party/msgpack/include/msgpack/create_object_visitor.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ deserializing routine +// +// Copyright (C) 2018 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_CREATE_OBJECT_VISITOR_HPP +#define MSGPACK_CREATE_OBJECT_VISITOR_HPP + +#include "msgpack/create_object_visitor_decl.hpp" + +#include "msgpack/v2/create_object_visitor.hpp" + +#endif // MSGPACK_CREATE_OBJECT_VISITOR_HPP diff --git a/third_party/msgpack/include/msgpack/create_object_visitor_decl.hpp b/third_party/msgpack/include/msgpack/create_object_visitor_decl.hpp new file mode 100644 index 000000000000..56e81e1bbeca --- /dev/null +++ b/third_party/msgpack/include/msgpack/create_object_visitor_decl.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ deserializing routine +// +// Copyright (C) 2018 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_CREATE_OBJECT_VISITOR_DECL_HPP +#define MSGPACK_CREATE_OBJECT_VISITOR_DECL_HPP + +#include "msgpack/v2/create_object_visitor_decl.hpp" +#include "msgpack/v3/create_object_visitor_decl.hpp" + +#endif // MSGPACK_CREATE_OBJECT_VISITOR_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/fbuffer.h b/third_party/msgpack/include/msgpack/fbuffer.h new file mode 100644 index 000000000000..d766c839e62d --- /dev/null +++ b/third_party/msgpack/include/msgpack/fbuffer.h @@ -0,0 +1,38 @@ +/* + * MessagePack for C FILE* buffer adaptor + * + * Copyright (C) 2013 Vladimir Volodko + * + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ +#ifndef MSGPACK_FBUFFER_H +#define MSGPACK_FBUFFER_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/** + * @defgroup msgpack_fbuffer FILE* buffer + * @ingroup msgpack_buffer + * @{ + */ + +static inline int msgpack_fbuffer_write(void* data, const char* buf, size_t len) +{ + return (len == fwrite(buf, len, 1, (FILE *)data)) ? 0 : -1; +} + +/** @} */ + + +#ifdef __cplusplus +} +#endif + +#endif /* msgpack/fbuffer.h */ diff --git a/third_party/msgpack/include/msgpack/fbuffer.hpp b/third_party/msgpack/include/msgpack/fbuffer.hpp new file mode 100644 index 000000000000..6d51cd541d58 --- /dev/null +++ b/third_party/msgpack/include/msgpack/fbuffer.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ FILE* buffer adaptor +// +// Copyright (C) 2013 Vladimir Volodko +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_FBUFFER_HPP +#define MSGPACK_FBUFFER_HPP + +#include "msgpack/fbuffer_decl.hpp" + +#include "msgpack/v1/fbuffer.hpp" + +#endif // MSGPACK_FBUFFER_HPP diff --git a/third_party/msgpack/include/msgpack/fbuffer_decl.hpp b/third_party/msgpack/include/msgpack/fbuffer_decl.hpp new file mode 100644 index 000000000000..d1a5a6a52fc3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/fbuffer_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ FILE* buffer adaptor +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_FBUFFER_DECL_HPP +#define MSGPACK_FBUFFER_DECL_HPP + +#include "msgpack/v1/fbuffer_decl.hpp" +#include "msgpack/v2/fbuffer_decl.hpp" +#include "msgpack/v3/fbuffer_decl.hpp" + +#endif // MSGPACK_FBUFFER_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/gcc_atomic.h b/third_party/msgpack/include/msgpack/gcc_atomic.h new file mode 100644 index 000000000000..6b1b1a799654 --- /dev/null +++ b/third_party/msgpack/include/msgpack/gcc_atomic.h @@ -0,0 +1,25 @@ +/* + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ + +#ifndef MSGPACK_GCC_ATOMIC_H +#define MSGPACK_GCC_ATOMIC_H + +#if defined(__cplusplus) +extern "C" { +#endif + +typedef int _msgpack_atomic_counter_t; + +int _msgpack_sync_decr_and_fetch(volatile _msgpack_atomic_counter_t* ptr); +int _msgpack_sync_incr_and_fetch(volatile _msgpack_atomic_counter_t* ptr); + + +#if defined(__cplusplus) +} +#endif + + +#endif // MSGPACK_GCC_ATOMIC_H diff --git a/third_party/msgpack/include/msgpack/gcc_atomic.hpp b/third_party/msgpack/include/msgpack/gcc_atomic.hpp new file mode 100644 index 000000000000..9656e5331bc9 --- /dev/null +++ b/third_party/msgpack/include/msgpack/gcc_atomic.hpp @@ -0,0 +1,31 @@ +// +// MessagePack for C++ old gcc workaround for atomic operation +// +// Copyright (C) 2008-2013 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_GCC_ATOMIC_HPP +#define MSGPACK_GCC_ATOMIC_HPP + +#if defined(__GNUC__) && ((__GNUC__*10 + __GNUC_MINOR__) < 41) + +#include "msgpack/gcc_atomic.h" +#include + +int _msgpack_sync_decr_and_fetch(volatile _msgpack_atomic_counter_t* ptr) +{ + return __gnu_cxx::__exchange_and_add(ptr, -1) - 1; +} + +int _msgpack_sync_incr_and_fetch(volatile _msgpack_atomic_counter_t* ptr) +{ + return __gnu_cxx::__exchange_and_add(ptr, 1) + 1; +} + +#endif // old gcc workaround + +#endif /* gcc_atomic.hpp */ diff --git a/third_party/msgpack/include/msgpack/iterator.hpp b/third_party/msgpack/include/msgpack/iterator.hpp new file mode 100644 index 000000000000..a118b5925707 --- /dev/null +++ b/third_party/msgpack/include/msgpack/iterator.hpp @@ -0,0 +1,18 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 MIZUKI Hirata +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_ITERATOR_HPP +#define MSGPACK_ITERATOR_HPP + +#include + +#include + +#endif // MSGPACK_ITERATOR_HPP diff --git a/third_party/msgpack/include/msgpack/iterator_decl.hpp b/third_party/msgpack/include/msgpack/iterator_decl.hpp new file mode 100644 index 000000000000..5bf28cb10ee7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/iterator_decl.hpp @@ -0,0 +1,18 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_ITERATOR_DECL_HPP +#define MSGPACK_ITERATOR_DECL_HPP + +#include +#include +#include + +#endif // MSGPACK_ITERATOR_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/meta.hpp b/third_party/msgpack/include/msgpack/meta.hpp new file mode 100644 index 000000000000..7062cc551585 --- /dev/null +++ b/third_party/msgpack/include/msgpack/meta.hpp @@ -0,0 +1,18 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_META_HPP +#define MSGPACK_META_HPP + +#include "msgpack/meta_decl.hpp" + +#include "msgpack/v1/meta.hpp" + +#endif // MSGPACK_META_HPP diff --git a/third_party/msgpack/include/msgpack/meta_decl.hpp b/third_party/msgpack/include/msgpack/meta_decl.hpp new file mode 100644 index 000000000000..54380f8c8369 --- /dev/null +++ b/third_party/msgpack/include/msgpack/meta_decl.hpp @@ -0,0 +1,18 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_META_DECL_HPP +#define MSGPACK_META_DECL_HPP + +#include "msgpack/v1/meta_decl.hpp" +#include "msgpack/v2/meta_decl.hpp" +#include "msgpack/v3/meta_decl.hpp" + +#endif // MSGPACK_META_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/null_visitor.hpp b/third_party/msgpack/include/msgpack/null_visitor.hpp new file mode 100644 index 000000000000..523d0dd19227 --- /dev/null +++ b/third_party/msgpack/include/msgpack/null_visitor.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ deserializing routine +// +// Copyright (C) 2018 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_NULL_VISITOR_HPP +#define MSGPACK_NULL_VISITOR_HPP + +#include "msgpack/null_visitor_decl.hpp" + +#include "msgpack/v2/null_visitor.hpp" + +#endif // MSGPACK_NULL_VISITOR_HPP diff --git a/third_party/msgpack/include/msgpack/null_visitor_decl.hpp b/third_party/msgpack/include/msgpack/null_visitor_decl.hpp new file mode 100644 index 000000000000..b398ed245eb1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/null_visitor_decl.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ deserializing routine +// +// Copyright (C) 2018 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_NULL_VISITOR_DECL_HPP +#define MSGPACK_NULL_VISITOR_DECL_HPP + +#include "msgpack/v2/null_visitor_decl.hpp" +#include "msgpack/v3/null_visitor_decl.hpp" + +#endif // MSGPACK_NULL_VISITOR_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/object.h b/third_party/msgpack/include/msgpack/object.h new file mode 100644 index 000000000000..0da280f560f0 --- /dev/null +++ b/third_party/msgpack/include/msgpack/object.h @@ -0,0 +1,116 @@ +/* + * MessagePack for C dynamic typing routine + * + * Copyright (C) 2008-2009 FURUHASHI Sadayuki + * + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ +#ifndef MSGPACK_OBJECT_H +#define MSGPACK_OBJECT_H + +#include "zone.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/** + * @defgroup msgpack_object Dynamically typed object + * @ingroup msgpack + * @{ + */ + +typedef enum { + MSGPACK_OBJECT_NIL = 0x00, + MSGPACK_OBJECT_BOOLEAN = 0x01, + MSGPACK_OBJECT_POSITIVE_INTEGER = 0x02, + MSGPACK_OBJECT_NEGATIVE_INTEGER = 0x03, + MSGPACK_OBJECT_FLOAT32 = 0x0a, + MSGPACK_OBJECT_FLOAT64 = 0x04, + MSGPACK_OBJECT_FLOAT = 0x04, +#if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT) + MSGPACK_OBJECT_DOUBLE = MSGPACK_OBJECT_FLOAT, /* obsolete */ +#endif /* MSGPACK_USE_LEGACY_NAME_AS_FLOAT */ + MSGPACK_OBJECT_STR = 0x05, + MSGPACK_OBJECT_ARRAY = 0x06, + MSGPACK_OBJECT_MAP = 0x07, + MSGPACK_OBJECT_BIN = 0x08, + MSGPACK_OBJECT_EXT = 0x09 +} msgpack_object_type; + + +struct msgpack_object; +struct msgpack_object_kv; + +typedef struct { + uint32_t size; + struct msgpack_object* ptr; +} msgpack_object_array; + +typedef struct { + uint32_t size; + struct msgpack_object_kv* ptr; +} msgpack_object_map; + +typedef struct { + uint32_t size; + const char* ptr; +} msgpack_object_str; + +typedef struct { + uint32_t size; + const char* ptr; +} msgpack_object_bin; + +typedef struct { + int8_t type; + uint32_t size; + const char* ptr; +} msgpack_object_ext; + +typedef union { + bool boolean; + uint64_t u64; + int64_t i64; +#if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT) + double dec; /* obsolete*/ +#endif /* MSGPACK_USE_LEGACY_NAME_AS_FLOAT */ + double f64; + msgpack_object_array array; + msgpack_object_map map; + msgpack_object_str str; + msgpack_object_bin bin; + msgpack_object_ext ext; +} msgpack_object_union; + +typedef struct msgpack_object { + msgpack_object_type type; + msgpack_object_union via; +} msgpack_object; + +typedef struct msgpack_object_kv { + msgpack_object key; + msgpack_object val; +} msgpack_object_kv; + +MSGPACK_DLLEXPORT +void msgpack_object_print(FILE* out, msgpack_object o); + +MSGPACK_DLLEXPORT +int msgpack_object_print_buffer(char *buffer, size_t buffer_size, msgpack_object o); + +MSGPACK_DLLEXPORT +bool msgpack_object_equal(const msgpack_object x, const msgpack_object y); + +/** @} */ + + +#ifdef __cplusplus +} +#endif + +#endif /* msgpack/object.h */ diff --git a/third_party/msgpack/include/msgpack/object.hpp b/third_party/msgpack/include/msgpack/object.hpp new file mode 100644 index 000000000000..32799926661e --- /dev/null +++ b/third_party/msgpack/include/msgpack/object.hpp @@ -0,0 +1,18 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_OBJECT_HPP +#define MSGPACK_OBJECT_HPP + +#include "msgpack/object_decl.hpp" + +#include "msgpack/v1/object.hpp" +#include "msgpack/v2/object.hpp" + +#endif // MSGPACK_OBJECT_HPP diff --git a/third_party/msgpack/include/msgpack/object_decl.hpp b/third_party/msgpack/include/msgpack/object_decl.hpp new file mode 100644 index 000000000000..7aab1288da2b --- /dev/null +++ b/third_party/msgpack/include/msgpack/object_decl.hpp @@ -0,0 +1,18 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_OBJECT_DECL_HPP +#define MSGPACK_OBJECT_DECL_HPP + +#include "msgpack/v1/object_decl.hpp" +#include "msgpack/v2/object_decl.hpp" +#include "msgpack/v3/object_decl.hpp" + +#endif // MSGPACK_OBJECT_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/object_fwd.hpp b/third_party/msgpack/include/msgpack/object_fwd.hpp new file mode 100644 index 000000000000..515df9dc6cfe --- /dev/null +++ b/third_party/msgpack/include/msgpack/object_fwd.hpp @@ -0,0 +1,20 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_OBJECT_FWD_HPP +#define MSGPACK_OBJECT_FWD_HPP + +#include "msgpack/object_fwd_decl.hpp" + +#include "msgpack/v1/object_fwd.hpp" +#include "msgpack/v2/object_fwd.hpp" +#include "msgpack/v3/object_fwd.hpp" + +#endif // MSGPACK_OBJECT_FWD_HPP diff --git a/third_party/msgpack/include/msgpack/object_fwd_decl.hpp b/third_party/msgpack/include/msgpack/object_fwd_decl.hpp new file mode 100644 index 000000000000..c933c34516ac --- /dev/null +++ b/third_party/msgpack/include/msgpack/object_fwd_decl.hpp @@ -0,0 +1,18 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_OBJECT_FWD_DECL_HPP +#define MSGPACK_OBJECT_FWD_DECL_HPP + +#include "msgpack/v1/object_fwd_decl.hpp" +#include "msgpack/v2/object_fwd_decl.hpp" +#include "msgpack/v3/object_fwd_decl.hpp" + +#endif // MSGPACK_OBJECT_FWD_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/pack.h b/third_party/msgpack/include/msgpack/pack.h new file mode 100644 index 000000000000..f2dddb3c5fb2 --- /dev/null +++ b/third_party/msgpack/include/msgpack/pack.h @@ -0,0 +1,151 @@ +/* + * MessagePack for C packing routine + * + * Copyright (C) 2008-2009 FURUHASHI Sadayuki + * + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ +#ifndef MSGPACK_PACK_H +#define MSGPACK_PACK_H + +#include "pack_define.h" +#include "object.h" +#include "timestamp.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/** + * @defgroup msgpack_buffer Buffers + * @ingroup msgpack + * @{ + * @} + */ + +/** + * @defgroup msgpack_pack Serializer + * @ingroup msgpack + * @{ + */ + +typedef int (*msgpack_packer_write)(void* data, const char* buf, size_t len); + +typedef struct msgpack_packer { + void* data; + msgpack_packer_write callback; +} msgpack_packer; + +static void msgpack_packer_init(msgpack_packer* pk, void* data, msgpack_packer_write callback); + +static msgpack_packer* msgpack_packer_new(void* data, msgpack_packer_write callback); +static void msgpack_packer_free(msgpack_packer* pk); + +static int msgpack_pack_char(msgpack_packer* pk, char d); + +static int msgpack_pack_signed_char(msgpack_packer* pk, signed char d); +static int msgpack_pack_short(msgpack_packer* pk, short d); +static int msgpack_pack_int(msgpack_packer* pk, int d); +static int msgpack_pack_long(msgpack_packer* pk, long d); +static int msgpack_pack_long_long(msgpack_packer* pk, long long d); +static int msgpack_pack_unsigned_char(msgpack_packer* pk, unsigned char d); +static int msgpack_pack_unsigned_short(msgpack_packer* pk, unsigned short d); +static int msgpack_pack_unsigned_int(msgpack_packer* pk, unsigned int d); +static int msgpack_pack_unsigned_long(msgpack_packer* pk, unsigned long d); +static int msgpack_pack_unsigned_long_long(msgpack_packer* pk, unsigned long long d); + +static int msgpack_pack_uint8(msgpack_packer* pk, uint8_t d); +static int msgpack_pack_uint16(msgpack_packer* pk, uint16_t d); +static int msgpack_pack_uint32(msgpack_packer* pk, uint32_t d); +static int msgpack_pack_uint64(msgpack_packer* pk, uint64_t d); +static int msgpack_pack_int8(msgpack_packer* pk, int8_t d); +static int msgpack_pack_int16(msgpack_packer* pk, int16_t d); +static int msgpack_pack_int32(msgpack_packer* pk, int32_t d); +static int msgpack_pack_int64(msgpack_packer* pk, int64_t d); + +static int msgpack_pack_fix_uint8(msgpack_packer* pk, uint8_t d); +static int msgpack_pack_fix_uint16(msgpack_packer* pk, uint16_t d); +static int msgpack_pack_fix_uint32(msgpack_packer* pk, uint32_t d); +static int msgpack_pack_fix_uint64(msgpack_packer* pk, uint64_t d); +static int msgpack_pack_fix_int8(msgpack_packer* pk, int8_t d); +static int msgpack_pack_fix_int16(msgpack_packer* pk, int16_t d); +static int msgpack_pack_fix_int32(msgpack_packer* pk, int32_t d); +static int msgpack_pack_fix_int64(msgpack_packer* pk, int64_t d); + +static int msgpack_pack_float(msgpack_packer* pk, float d); +static int msgpack_pack_double(msgpack_packer* pk, double d); + +static int msgpack_pack_nil(msgpack_packer* pk); +static int msgpack_pack_true(msgpack_packer* pk); +static int msgpack_pack_false(msgpack_packer* pk); + +static int msgpack_pack_array(msgpack_packer* pk, size_t n); + +static int msgpack_pack_map(msgpack_packer* pk, size_t n); + +static int msgpack_pack_str(msgpack_packer* pk, size_t l); +static int msgpack_pack_str_body(msgpack_packer* pk, const void* b, size_t l); + +static int msgpack_pack_v4raw(msgpack_packer* pk, size_t l); +static int msgpack_pack_v4raw_body(msgpack_packer* pk, const void* b, size_t l); + +static int msgpack_pack_bin(msgpack_packer* pk, size_t l); +static int msgpack_pack_bin_body(msgpack_packer* pk, const void* b, size_t l); + +static int msgpack_pack_ext(msgpack_packer* pk, size_t l, int8_t type); +static int msgpack_pack_ext_body(msgpack_packer* pk, const void* b, size_t l); + +static int msgpack_pack_timestamp(msgpack_packer* pk, const msgpack_timestamp* d); + +MSGPACK_DLLEXPORT +int msgpack_pack_object(msgpack_packer* pk, msgpack_object d); + + +/** @} */ + + +#define msgpack_pack_inline_func(name) \ + inline int msgpack_pack ## name + +#define msgpack_pack_inline_func_cint(name) \ + inline int msgpack_pack ## name + +#define msgpack_pack_inline_func_fixint(name) \ + inline int msgpack_pack_fix ## name + +#define msgpack_pack_user msgpack_packer* + +#define msgpack_pack_append_buffer(user, buf, len) \ + return (*(user)->callback)((user)->data, (const char*)buf, len) + +#include "pack_template.h" + +inline void msgpack_packer_init(msgpack_packer* pk, void* data, msgpack_packer_write callback) +{ + pk->data = data; + pk->callback = callback; +} + +inline msgpack_packer* msgpack_packer_new(void* data, msgpack_packer_write callback) +{ + msgpack_packer* pk = (msgpack_packer*)calloc(1, sizeof(msgpack_packer)); + if(!pk) { return NULL; } + msgpack_packer_init(pk, data, callback); + return pk; +} + +inline void msgpack_packer_free(msgpack_packer* pk) +{ + free(pk); +} + + +#ifdef __cplusplus +} +#endif + +#endif /* msgpack/pack.h */ diff --git a/third_party/msgpack/include/msgpack/pack.hpp b/third_party/msgpack/include/msgpack/pack.hpp new file mode 100644 index 000000000000..518b457848a1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/pack.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ serializing routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_PACK_HPP +#define MSGPACK_PACK_HPP + +#include "msgpack/pack_decl.hpp" + +#include "msgpack/v1/pack.hpp" + +#endif // MSGPACK_PACK_HPP diff --git a/third_party/msgpack/include/msgpack/pack_decl.hpp b/third_party/msgpack/include/msgpack/pack_decl.hpp new file mode 100644 index 000000000000..5aaec94a859a --- /dev/null +++ b/third_party/msgpack/include/msgpack/pack_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ serializing routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_PACK_DECL_HPP +#define MSGPACK_PACK_DECL_HPP + +#include "msgpack/v1/pack_decl.hpp" +#include "msgpack/v2/pack_decl.hpp" +#include "msgpack/v3/pack_decl.hpp" + +#endif // MSGPACK_PACK_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/pack_define.h b/third_party/msgpack/include/msgpack/pack_define.h new file mode 100644 index 000000000000..ce98b67558a3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/pack_define.h @@ -0,0 +1,18 @@ +/* + * MessagePack unpacking routine template + * + * Copyright (C) 2008-2010 FURUHASHI Sadayuki + * + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ +#ifndef MSGPACK_PACK_DEFINE_H +#define MSGPACK_PACK_DEFINE_H + +#include "msgpack/sysdep.h" +#include +#include + +#endif /* msgpack/pack_define.h */ + diff --git a/third_party/msgpack/include/msgpack/pack_template.h b/third_party/msgpack/include/msgpack/pack_template.h new file mode 100644 index 000000000000..5e2313cb2d19 --- /dev/null +++ b/third_party/msgpack/include/msgpack/pack_template.h @@ -0,0 +1,937 @@ +/* + * MessagePack packing routine template + * + * Copyright (C) 2008-2010 FURUHASHI Sadayuki + * + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ + +#if MSGPACK_ENDIAN_LITTLE_BYTE +#define TAKE8_8(d) ((uint8_t*)&d)[0] +#define TAKE8_16(d) ((uint8_t*)&d)[0] +#define TAKE8_32(d) ((uint8_t*)&d)[0] +#define TAKE8_64(d) ((uint8_t*)&d)[0] +#elif MSGPACK_ENDIAN_BIG_BYTE +#define TAKE8_8(d) ((uint8_t*)&d)[0] +#define TAKE8_16(d) ((uint8_t*)&d)[1] +#define TAKE8_32(d) ((uint8_t*)&d)[3] +#define TAKE8_64(d) ((uint8_t*)&d)[7] +#else +#error msgpack-c supports only big endian and little endian +#endif + +#ifndef msgpack_pack_inline_func +#error msgpack_pack_inline_func template is not defined +#endif + +#ifndef msgpack_pack_user +#error msgpack_pack_user type is not defined +#endif + +#ifndef msgpack_pack_append_buffer +#error msgpack_pack_append_buffer callback is not defined +#endif + + +/* + * Integer + */ + +#define msgpack_pack_real_uint8(x, d) \ +do { \ + if(d < (1<<7)) { \ + /* fixnum */ \ + msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); \ + } else { \ + /* unsigned 8 */ \ + unsigned char buf[2] = {0xcc, TAKE8_8(d)}; \ + msgpack_pack_append_buffer(x, buf, 2); \ + } \ +} while(0) + +#define msgpack_pack_real_uint16(x, d) \ +do { \ + if(d < (1<<7)) { \ + /* fixnum */ \ + msgpack_pack_append_buffer(x, &TAKE8_16(d), 1); \ + } else if(d < (1<<8)) { \ + /* unsigned 8 */ \ + unsigned char buf[2] = {0xcc, TAKE8_16(d)}; \ + msgpack_pack_append_buffer(x, buf, 2); \ + } else { \ + /* unsigned 16 */ \ + unsigned char buf[3]; \ + buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ + msgpack_pack_append_buffer(x, buf, 3); \ + } \ +} while(0) + +#define msgpack_pack_real_uint32(x, d) \ +do { \ + if(d < (1<<8)) { \ + if(d < (1<<7)) { \ + /* fixnum */ \ + msgpack_pack_append_buffer(x, &TAKE8_32(d), 1); \ + } else { \ + /* unsigned 8 */ \ + unsigned char buf[2] = {0xcc, TAKE8_32(d)}; \ + msgpack_pack_append_buffer(x, buf, 2); \ + } \ + } else { \ + if(d < (1<<16)) { \ + /* unsigned 16 */ \ + unsigned char buf[3]; \ + buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ + msgpack_pack_append_buffer(x, buf, 3); \ + } else { \ + /* unsigned 32 */ \ + unsigned char buf[5]; \ + buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ + msgpack_pack_append_buffer(x, buf, 5); \ + } \ + } \ +} while(0) + +#define msgpack_pack_real_uint64(x, d) \ +do { \ + if(d < (1ULL<<8)) { \ + if(d < (1ULL<<7)) { \ + /* fixnum */ \ + msgpack_pack_append_buffer(x, &TAKE8_64(d), 1); \ + } else { \ + /* unsigned 8 */ \ + unsigned char buf[2] = {0xcc, TAKE8_64(d)}; \ + msgpack_pack_append_buffer(x, buf, 2); \ + } \ + } else { \ + if(d < (1ULL<<16)) { \ + /* unsigned 16 */ \ + unsigned char buf[3]; \ + buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ + msgpack_pack_append_buffer(x, buf, 3); \ + } else if(d < (1ULL<<32)) { \ + /* unsigned 32 */ \ + unsigned char buf[5]; \ + buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ + msgpack_pack_append_buffer(x, buf, 5); \ + } else { \ + /* unsigned 64 */ \ + unsigned char buf[9]; \ + buf[0] = 0xcf; _msgpack_store64(&buf[1], d); \ + msgpack_pack_append_buffer(x, buf, 9); \ + } \ + } \ +} while(0) + +#define msgpack_pack_real_int8(x, d) \ +do { \ + if(d < -(1<<5)) { \ + /* signed 8 */ \ + unsigned char buf[2] = {0xd0, TAKE8_8(d)}; \ + msgpack_pack_append_buffer(x, buf, 2); \ + } else { \ + /* fixnum */ \ + msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); \ + } \ +} while(0) + +#define msgpack_pack_real_int16(x, d) \ +do { \ + if(d < -(1<<5)) { \ + if(d < -(1<<7)) { \ + /* signed 16 */ \ + unsigned char buf[3]; \ + buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \ + msgpack_pack_append_buffer(x, buf, 3); \ + } else { \ + /* signed 8 */ \ + unsigned char buf[2] = {0xd0, TAKE8_16(d)}; \ + msgpack_pack_append_buffer(x, buf, 2); \ + } \ + } else if(d < (1<<7)) { \ + /* fixnum */ \ + msgpack_pack_append_buffer(x, &TAKE8_16(d), 1); \ + } else { \ + if(d < (1<<8)) { \ + /* unsigned 8 */ \ + unsigned char buf[2] = {0xcc, TAKE8_16(d)}; \ + msgpack_pack_append_buffer(x, buf, 2); \ + } else { \ + /* unsigned 16 */ \ + unsigned char buf[3]; \ + buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ + msgpack_pack_append_buffer(x, buf, 3); \ + } \ + } \ +} while(0) + +#define msgpack_pack_real_int32(x, d) \ +do { \ + if(d < -(1<<5)) { \ + if(d < -(1<<15)) { \ + /* signed 32 */ \ + unsigned char buf[5]; \ + buf[0] = 0xd2; _msgpack_store32(&buf[1], (int32_t)d); \ + msgpack_pack_append_buffer(x, buf, 5); \ + } else if(d < -(1<<7)) { \ + /* signed 16 */ \ + unsigned char buf[3]; \ + buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \ + msgpack_pack_append_buffer(x, buf, 3); \ + } else { \ + /* signed 8 */ \ + unsigned char buf[2] = {0xd0, TAKE8_32(d)}; \ + msgpack_pack_append_buffer(x, buf, 2); \ + } \ + } else if(d < (1<<7)) { \ + /* fixnum */ \ + msgpack_pack_append_buffer(x, &TAKE8_32(d), 1); \ + } else { \ + if(d < (1<<8)) { \ + /* unsigned 8 */ \ + unsigned char buf[2] = {0xcc, TAKE8_32(d)}; \ + msgpack_pack_append_buffer(x, buf, 2); \ + } else if(d < (1<<16)) { \ + /* unsigned 16 */ \ + unsigned char buf[3]; \ + buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ + msgpack_pack_append_buffer(x, buf, 3); \ + } else { \ + /* unsigned 32 */ \ + unsigned char buf[5]; \ + buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ + msgpack_pack_append_buffer(x, buf, 5); \ + } \ + } \ +} while(0) + +#define msgpack_pack_real_int64(x, d) \ +do { \ + if(d < -(1LL<<5)) { \ + if(d < -(1LL<<15)) { \ + if(d < -(1LL<<31)) { \ + /* signed 64 */ \ + unsigned char buf[9]; \ + buf[0] = 0xd3; _msgpack_store64(&buf[1], d); \ + msgpack_pack_append_buffer(x, buf, 9); \ + } else { \ + /* signed 32 */ \ + unsigned char buf[5]; \ + buf[0] = 0xd2; _msgpack_store32(&buf[1], (int32_t)d); \ + msgpack_pack_append_buffer(x, buf, 5); \ + } \ + } else { \ + if(d < -(1<<7)) { \ + /* signed 16 */ \ + unsigned char buf[3]; \ + buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \ + msgpack_pack_append_buffer(x, buf, 3); \ + } else { \ + /* signed 8 */ \ + unsigned char buf[2] = {0xd0, TAKE8_64(d)}; \ + msgpack_pack_append_buffer(x, buf, 2); \ + } \ + } \ + } else if(d < (1<<7)) { \ + /* fixnum */ \ + msgpack_pack_append_buffer(x, &TAKE8_64(d), 1); \ + } else { \ + if(d < (1LL<<16)) { \ + if(d < (1<<8)) { \ + /* unsigned 8 */ \ + unsigned char buf[2] = {0xcc, TAKE8_64(d)}; \ + msgpack_pack_append_buffer(x, buf, 2); \ + } else { \ + /* unsigned 16 */ \ + unsigned char buf[3]; \ + buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ + msgpack_pack_append_buffer(x, buf, 3); \ + } \ + } else { \ + if(d < (1LL<<32)) { \ + /* unsigned 32 */ \ + unsigned char buf[5]; \ + buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ + msgpack_pack_append_buffer(x, buf, 5); \ + } else { \ + /* unsigned 64 */ \ + unsigned char buf[9]; \ + buf[0] = 0xcf; _msgpack_store64(&buf[1], d); \ + msgpack_pack_append_buffer(x, buf, 9); \ + } \ + } \ + } \ +} while(0) + + +#ifdef msgpack_pack_inline_func_fixint + +msgpack_pack_inline_func_fixint(_uint8)(msgpack_pack_user x, uint8_t d) +{ + unsigned char buf[2] = {0xcc, TAKE8_8(d)}; + msgpack_pack_append_buffer(x, buf, 2); +} + +msgpack_pack_inline_func_fixint(_uint16)(msgpack_pack_user x, uint16_t d) +{ + unsigned char buf[3]; + buf[0] = 0xcd; _msgpack_store16(&buf[1], d); + msgpack_pack_append_buffer(x, buf, 3); +} + +msgpack_pack_inline_func_fixint(_uint32)(msgpack_pack_user x, uint32_t d) +{ + unsigned char buf[5]; + buf[0] = 0xce; _msgpack_store32(&buf[1], d); + msgpack_pack_append_buffer(x, buf, 5); +} + +msgpack_pack_inline_func_fixint(_uint64)(msgpack_pack_user x, uint64_t d) +{ + unsigned char buf[9]; + buf[0] = 0xcf; _msgpack_store64(&buf[1], d); + msgpack_pack_append_buffer(x, buf, 9); +} + +msgpack_pack_inline_func_fixint(_int8)(msgpack_pack_user x, int8_t d) +{ + unsigned char buf[2] = {0xd0, TAKE8_8(d)}; + msgpack_pack_append_buffer(x, buf, 2); +} + +msgpack_pack_inline_func_fixint(_int16)(msgpack_pack_user x, int16_t d) +{ + unsigned char buf[3]; + buf[0] = 0xd1; _msgpack_store16(&buf[1], d); + msgpack_pack_append_buffer(x, buf, 3); +} + +msgpack_pack_inline_func_fixint(_int32)(msgpack_pack_user x, int32_t d) +{ + unsigned char buf[5]; + buf[0] = 0xd2; _msgpack_store32(&buf[1], d); + msgpack_pack_append_buffer(x, buf, 5); +} + +msgpack_pack_inline_func_fixint(_int64)(msgpack_pack_user x, int64_t d) +{ + unsigned char buf[9]; + buf[0] = 0xd3; _msgpack_store64(&buf[1], d); + msgpack_pack_append_buffer(x, buf, 9); +} + +#undef msgpack_pack_inline_func_fixint +#endif + + +msgpack_pack_inline_func(_uint8)(msgpack_pack_user x, uint8_t d) +{ + msgpack_pack_real_uint8(x, d); +} + +msgpack_pack_inline_func(_uint16)(msgpack_pack_user x, uint16_t d) +{ + msgpack_pack_real_uint16(x, d); +} + +msgpack_pack_inline_func(_uint32)(msgpack_pack_user x, uint32_t d) +{ + msgpack_pack_real_uint32(x, d); +} + +msgpack_pack_inline_func(_uint64)(msgpack_pack_user x, uint64_t d) +{ + msgpack_pack_real_uint64(x, d); +} + +msgpack_pack_inline_func(_int8)(msgpack_pack_user x, int8_t d) +{ + msgpack_pack_real_int8(x, d); +} + +msgpack_pack_inline_func(_int16)(msgpack_pack_user x, int16_t d) +{ + msgpack_pack_real_int16(x, d); +} + +msgpack_pack_inline_func(_int32)(msgpack_pack_user x, int32_t d) +{ + msgpack_pack_real_int32(x, d); +} + +msgpack_pack_inline_func(_int64)(msgpack_pack_user x, int64_t d) +{ + msgpack_pack_real_int64(x, d); +} + +msgpack_pack_inline_func(_char)(msgpack_pack_user x, char d) +{ +#if defined(CHAR_MIN) +#if CHAR_MIN < 0 + msgpack_pack_real_int8(x, d); +#else + msgpack_pack_real_uint8(x, d); +#endif +#else +#error CHAR_MIN is not defined +#endif +} + +msgpack_pack_inline_func(_signed_char)(msgpack_pack_user x, signed char d) +{ + msgpack_pack_real_int8(x, d); +} + +msgpack_pack_inline_func(_unsigned_char)(msgpack_pack_user x, unsigned char d) +{ + msgpack_pack_real_uint8(x, d); +} + +#ifdef msgpack_pack_inline_func_cint + +msgpack_pack_inline_func_cint(_short)(msgpack_pack_user x, short d) +{ +#if defined(SIZEOF_SHORT) +#if SIZEOF_SHORT == 2 + msgpack_pack_real_int16(x, d); +#elif SIZEOF_SHORT == 4 + msgpack_pack_real_int32(x, d); +#else + msgpack_pack_real_int64(x, d); +#endif + +#elif defined(SHRT_MAX) +#if SHRT_MAX == 0x7fff + msgpack_pack_real_int16(x, d); +#elif SHRT_MAX == 0x7fffffff + msgpack_pack_real_int32(x, d); +#else + msgpack_pack_real_int64(x, d); +#endif + +#else +if(sizeof(short) == 2) { + msgpack_pack_real_int16(x, d); +} else if(sizeof(short) == 4) { + msgpack_pack_real_int32(x, d); +} else { + msgpack_pack_real_int64(x, d); +} +#endif +} + +msgpack_pack_inline_func_cint(_int)(msgpack_pack_user x, int d) +{ +#if defined(SIZEOF_INT) +#if SIZEOF_INT == 2 + msgpack_pack_real_int16(x, d); +#elif SIZEOF_INT == 4 + msgpack_pack_real_int32(x, d); +#else + msgpack_pack_real_int64(x, d); +#endif + +#elif defined(INT_MAX) +#if INT_MAX == 0x7fff + msgpack_pack_real_int16(x, d); +#elif INT_MAX == 0x7fffffff + msgpack_pack_real_int32(x, d); +#else + msgpack_pack_real_int64(x, d); +#endif + +#else +if(sizeof(int) == 2) { + msgpack_pack_real_int16(x, d); +} else if(sizeof(int) == 4) { + msgpack_pack_real_int32(x, d); +} else { + msgpack_pack_real_int64(x, d); +} +#endif +} + +msgpack_pack_inline_func_cint(_long)(msgpack_pack_user x, long d) +{ +#if defined(SIZEOF_LONG) +#if SIZEOF_LONG == 2 + msgpack_pack_real_int16(x, d); +#elif SIZEOF_LONG == 4 + msgpack_pack_real_int32(x, d); +#else + msgpack_pack_real_int64(x, d); +#endif + +#elif defined(LONG_MAX) +#if LONG_MAX == 0x7fffL + msgpack_pack_real_int16(x, d); +#elif LONG_MAX == 0x7fffffffL + msgpack_pack_real_int32(x, d); +#else + msgpack_pack_real_int64(x, d); +#endif + +#else +if(sizeof(long) == 2) { + msgpack_pack_real_int16(x, d); +} else if(sizeof(long) == 4) { + msgpack_pack_real_int32(x, d); +} else { + msgpack_pack_real_int64(x, d); +} +#endif +} + +msgpack_pack_inline_func_cint(_long_long)(msgpack_pack_user x, long long d) +{ +#if defined(SIZEOF_LONG_LONG) +#if SIZEOF_LONG_LONG == 2 + msgpack_pack_real_int16(x, d); +#elif SIZEOF_LONG_LONG == 4 + msgpack_pack_real_int32(x, d); +#else + msgpack_pack_real_int64(x, d); +#endif + +#elif defined(LLONG_MAX) +#if LLONG_MAX == 0x7fffL + msgpack_pack_real_int16(x, d); +#elif LLONG_MAX == 0x7fffffffL + msgpack_pack_real_int32(x, d); +#else + msgpack_pack_real_int64(x, d); +#endif + +#else +if(sizeof(long long) == 2) { + msgpack_pack_real_int16(x, d); +} else if(sizeof(long long) == 4) { + msgpack_pack_real_int32(x, d); +} else { + msgpack_pack_real_int64(x, d); +} +#endif +} + +msgpack_pack_inline_func_cint(_unsigned_short)(msgpack_pack_user x, unsigned short d) +{ +#if defined(SIZEOF_SHORT) +#if SIZEOF_SHORT == 2 + msgpack_pack_real_uint16(x, d); +#elif SIZEOF_SHORT == 4 + msgpack_pack_real_uint32(x, d); +#else + msgpack_pack_real_uint64(x, d); +#endif + +#elif defined(USHRT_MAX) +#if USHRT_MAX == 0xffffU + msgpack_pack_real_uint16(x, d); +#elif USHRT_MAX == 0xffffffffU + msgpack_pack_real_uint32(x, d); +#else + msgpack_pack_real_uint64(x, d); +#endif + +#else +if(sizeof(unsigned short) == 2) { + msgpack_pack_real_uint16(x, d); +} else if(sizeof(unsigned short) == 4) { + msgpack_pack_real_uint32(x, d); +} else { + msgpack_pack_real_uint64(x, d); +} +#endif +} + +msgpack_pack_inline_func_cint(_unsigned_int)(msgpack_pack_user x, unsigned int d) +{ +#if defined(SIZEOF_INT) +#if SIZEOF_INT == 2 + msgpack_pack_real_uint16(x, d); +#elif SIZEOF_INT == 4 + msgpack_pack_real_uint32(x, d); +#else + msgpack_pack_real_uint64(x, d); +#endif + +#elif defined(UINT_MAX) +#if UINT_MAX == 0xffffU + msgpack_pack_real_uint16(x, d); +#elif UINT_MAX == 0xffffffffU + msgpack_pack_real_uint32(x, d); +#else + msgpack_pack_real_uint64(x, d); +#endif + +#else +if(sizeof(unsigned int) == 2) { + msgpack_pack_real_uint16(x, d); +} else if(sizeof(unsigned int) == 4) { + msgpack_pack_real_uint32(x, d); +} else { + msgpack_pack_real_uint64(x, d); +} +#endif +} + +msgpack_pack_inline_func_cint(_unsigned_long)(msgpack_pack_user x, unsigned long d) +{ +#if defined(SIZEOF_LONG) +#if SIZEOF_LONG == 2 + msgpack_pack_real_uint16(x, d); +#elif SIZEOF_LONG == 4 + msgpack_pack_real_uint32(x, d); +#else + msgpack_pack_real_uint64(x, d); +#endif + +#elif defined(ULONG_MAX) +#if ULONG_MAX == 0xffffUL + msgpack_pack_real_uint16(x, d); +#elif ULONG_MAX == 0xffffffffUL + msgpack_pack_real_uint32(x, d); +#else + msgpack_pack_real_uint64(x, d); +#endif + +#else +if(sizeof(unsigned long) == 2) { + msgpack_pack_real_uint16(x, d); +} else if(sizeof(unsigned long) == 4) { + msgpack_pack_real_uint32(x, d); +} else { + msgpack_pack_real_uint64(x, d); +} +#endif +} + +msgpack_pack_inline_func_cint(_unsigned_long_long)(msgpack_pack_user x, unsigned long long d) +{ +#if defined(SIZEOF_LONG_LONG) +#if SIZEOF_LONG_LONG == 2 + msgpack_pack_real_uint16(x, d); +#elif SIZEOF_LONG_LONG == 4 + msgpack_pack_real_uint32(x, d); +#else + msgpack_pack_real_uint64(x, d); +#endif + +#elif defined(ULLONG_MAX) +#if ULLONG_MAX == 0xffffUL + msgpack_pack_real_uint16(x, d); +#elif ULLONG_MAX == 0xffffffffUL + msgpack_pack_real_uint32(x, d); +#else + msgpack_pack_real_uint64(x, d); +#endif + +#else +if(sizeof(unsigned long long) == 2) { + msgpack_pack_real_uint16(x, d); +} else if(sizeof(unsigned long long) == 4) { + msgpack_pack_real_uint32(x, d); +} else { + msgpack_pack_real_uint64(x, d); +} +#endif +} + +#undef msgpack_pack_inline_func_cint +#endif + + + +/* + * Float + */ + +msgpack_pack_inline_func(_float)(msgpack_pack_user x, float d) +{ + unsigned char buf[5]; + union { float f; uint32_t i; } mem; + mem.f = d; + buf[0] = 0xca; _msgpack_store32(&buf[1], mem.i); + msgpack_pack_append_buffer(x, buf, 5); +} + +msgpack_pack_inline_func(_double)(msgpack_pack_user x, double d) +{ + unsigned char buf[9]; + union { double f; uint64_t i; } mem; + mem.f = d; + buf[0] = 0xcb; +#if defined(TARGET_OS_IPHONE) + // ok +#elif defined(__arm__) && !(__ARM_EABI__) // arm-oabi + // https://github.com/msgpack/msgpack-perl/pull/1 + mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL); +#endif + _msgpack_store64(&buf[1], mem.i); + msgpack_pack_append_buffer(x, buf, 9); +} + + +/* + * Nil + */ + +msgpack_pack_inline_func(_nil)(msgpack_pack_user x) +{ + static const unsigned char d = 0xc0; + msgpack_pack_append_buffer(x, &d, 1); +} + + +/* + * Boolean + */ + +msgpack_pack_inline_func(_true)(msgpack_pack_user x) +{ + static const unsigned char d = 0xc3; + msgpack_pack_append_buffer(x, &d, 1); +} + +msgpack_pack_inline_func(_false)(msgpack_pack_user x) +{ + static const unsigned char d = 0xc2; + msgpack_pack_append_buffer(x, &d, 1); +} + + +/* + * Array + */ + +msgpack_pack_inline_func(_array)(msgpack_pack_user x, size_t n) +{ + if(n < 16) { + unsigned char d = 0x90 | (uint8_t)n; + msgpack_pack_append_buffer(x, &d, 1); + } else if(n < 65536) { + unsigned char buf[3]; + buf[0] = 0xdc; _msgpack_store16(&buf[1], (uint16_t)n); + msgpack_pack_append_buffer(x, buf, 3); + } else { + unsigned char buf[5]; + buf[0] = 0xdd; _msgpack_store32(&buf[1], (uint32_t)n); + msgpack_pack_append_buffer(x, buf, 5); + } +} + + +/* + * Map + */ + +msgpack_pack_inline_func(_map)(msgpack_pack_user x, size_t n) +{ + if(n < 16) { + unsigned char d = 0x80 | (uint8_t)n; + msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); + } else if(n < 65536) { + unsigned char buf[3]; + buf[0] = 0xde; _msgpack_store16(&buf[1], (uint16_t)n); + msgpack_pack_append_buffer(x, buf, 3); + } else { + unsigned char buf[5]; + buf[0] = 0xdf; _msgpack_store32(&buf[1], (uint32_t)n); + msgpack_pack_append_buffer(x, buf, 5); + } +} + + +/* + * Str + */ + +msgpack_pack_inline_func(_str)(msgpack_pack_user x, size_t l) +{ + if(l < 32) { + unsigned char d = 0xa0 | (uint8_t)l; + msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); + } else if(l < 256) { + unsigned char buf[2]; + buf[0] = 0xd9; buf[1] = (uint8_t)l; + msgpack_pack_append_buffer(x, buf, 2); + } else if(l < 65536) { + unsigned char buf[3]; + buf[0] = 0xda; _msgpack_store16(&buf[1], (uint16_t)l); + msgpack_pack_append_buffer(x, buf, 3); + } else { + unsigned char buf[5]; + buf[0] = 0xdb; _msgpack_store32(&buf[1], (uint32_t)l); + msgpack_pack_append_buffer(x, buf, 5); + } +} + +msgpack_pack_inline_func(_str_body)(msgpack_pack_user x, const void* b, size_t l) +{ + msgpack_pack_append_buffer(x, (const unsigned char*)b, l); +} + +/* + * Raw (V4) + */ + +msgpack_pack_inline_func(_v4raw)(msgpack_pack_user x, size_t l) +{ + if(l < 32) { + unsigned char d = 0xa0 | (uint8_t)l; + msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); + } else if(l < 65536) { + unsigned char buf[3]; + buf[0] = 0xda; _msgpack_store16(&buf[1], (uint16_t)l); + msgpack_pack_append_buffer(x, buf, 3); + } else { + unsigned char buf[5]; + buf[0] = 0xdb; _msgpack_store32(&buf[1], (uint32_t)l); + msgpack_pack_append_buffer(x, buf, 5); + } +} + +msgpack_pack_inline_func(_v4raw_body)(msgpack_pack_user x, const void* b, size_t l) +{ + msgpack_pack_append_buffer(x, (const unsigned char*)b, l); +} + +/* + * Bin + */ + +msgpack_pack_inline_func(_bin)(msgpack_pack_user x, size_t l) +{ + if(l < 256) { + unsigned char buf[2]; + buf[0] = 0xc4; buf[1] = (uint8_t)l; + msgpack_pack_append_buffer(x, buf, 2); + } else if(l < 65536) { + unsigned char buf[3]; + buf[0] = 0xc5; _msgpack_store16(&buf[1], (uint16_t)l); + msgpack_pack_append_buffer(x, buf, 3); + } else { + unsigned char buf[5]; + buf[0] = 0xc6; _msgpack_store32(&buf[1], (uint32_t)l); + msgpack_pack_append_buffer(x, buf, 5); + } +} + +msgpack_pack_inline_func(_bin_body)(msgpack_pack_user x, const void* b, size_t l) +{ + msgpack_pack_append_buffer(x, (const unsigned char*)b, l); +} + +/* + * Ext + */ + +msgpack_pack_inline_func(_ext)(msgpack_pack_user x, size_t l, int8_t type) +{ + switch(l) { + case 1: { + unsigned char buf[2]; + buf[0] = 0xd4; + buf[1] = type; + msgpack_pack_append_buffer(x, buf, 2); + } break; + case 2: { + unsigned char buf[2]; + buf[0] = 0xd5; + buf[1] = type; + msgpack_pack_append_buffer(x, buf, 2); + } break; + case 4: { + unsigned char buf[2]; + buf[0] = 0xd6; + buf[1] = type; + msgpack_pack_append_buffer(x, buf, 2); + } break; + case 8: { + unsigned char buf[2]; + buf[0] = 0xd7; + buf[1] = type; + msgpack_pack_append_buffer(x, buf, 2); + } break; + case 16: { + unsigned char buf[2]; + buf[0] = 0xd8; + buf[1] = type; + msgpack_pack_append_buffer(x, buf, 2); + } break; + default: + if(l < 256) { + unsigned char buf[3]; + buf[0] = 0xc7; + buf[1] = (unsigned char)l; + buf[2] = type; + msgpack_pack_append_buffer(x, buf, 3); + } else if(l < 65536) { + unsigned char buf[4]; + buf[0] = 0xc8; + _msgpack_store16(&buf[1], l); + buf[3] = type; + msgpack_pack_append_buffer(x, buf, 4); + } else { + unsigned char buf[6]; + buf[0] = 0xc9; + _msgpack_store32(&buf[1], l); + buf[5] = type; + msgpack_pack_append_buffer(x, buf, 6); + } + break; + } +} + +msgpack_pack_inline_func(_ext_body)(msgpack_pack_user x, const void* b, size_t l) +{ + msgpack_pack_append_buffer(x, (const unsigned char*)b, l); +} + +msgpack_pack_inline_func(_timestamp)(msgpack_pack_user x, const msgpack_timestamp* d) +{ + if ((((int64_t)d->tv_sec) >> 34) == 0) { + uint64_t data64 = ((uint64_t) d->tv_nsec << 34) | d->tv_sec; + if ((data64 & 0xffffffff00000000L) == 0) { + // timestamp 32 + char buf[4]; + uint32_t data32 = (uint32_t)data64; + msgpack_pack_ext(x, 4, -1); + _msgpack_store32(buf, data32); + msgpack_pack_append_buffer(x, buf, 4); + } else { + // timestamp 64 + char buf[8]; + msgpack_pack_ext(x, 8, -1); + _msgpack_store64(buf, data64); + msgpack_pack_append_buffer(x, buf, 8); + } + } else { + // timestamp 96 + char buf[12]; + _msgpack_store32(&buf[0], d->tv_nsec); + _msgpack_store64(&buf[4], d->tv_sec); + msgpack_pack_ext(x, 12, -1); + msgpack_pack_append_buffer(x, buf, 12); + } +} + +#undef msgpack_pack_inline_func +#undef msgpack_pack_user +#undef msgpack_pack_append_buffer + +#undef TAKE8_8 +#undef TAKE8_16 +#undef TAKE8_32 +#undef TAKE8_64 + +#undef msgpack_pack_real_uint8 +#undef msgpack_pack_real_uint16 +#undef msgpack_pack_real_uint32 +#undef msgpack_pack_real_uint64 +#undef msgpack_pack_real_int8 +#undef msgpack_pack_real_int16 +#undef msgpack_pack_real_int32 +#undef msgpack_pack_real_int64 diff --git a/third_party/msgpack/include/msgpack/parse.hpp b/third_party/msgpack/include/msgpack/parse.hpp new file mode 100644 index 000000000000..90e140276fce --- /dev/null +++ b/third_party/msgpack/include/msgpack/parse.hpp @@ -0,0 +1,18 @@ +// +// MessagePack for C++ deserializing routine +// +// Copyright (C) 2018 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_PARSE_HPP +#define MSGPACK_PARSE_HPP + +#include "msgpack/parse_decl.hpp" + +#include "msgpack/v2/parse.hpp" +#include "msgpack/v3/parse.hpp" + +#endif // MSGPACK_PARSE_HPP diff --git a/third_party/msgpack/include/msgpack/parse_decl.hpp b/third_party/msgpack/include/msgpack/parse_decl.hpp new file mode 100644 index 000000000000..381aa1a4ffde --- /dev/null +++ b/third_party/msgpack/include/msgpack/parse_decl.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ deserializing routine +// +// Copyright (C) 2018 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_PARSE_DECL_HPP +#define MSGPACK_PARSE_DECL_HPP + +#include "msgpack/v2/parse_decl.hpp" +#include "msgpack/v3/parse_decl.hpp" + +#endif // MSGPACK_PARSE_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/parse_return.hpp b/third_party/msgpack/include/msgpack/parse_return.hpp new file mode 100644 index 000000000000..c06d1891ad68 --- /dev/null +++ b/third_party/msgpack/include/msgpack/parse_return.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ deserializing routine +// +// Copyright (C) 2017 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_PARSE_RETURN_HPP +#define MSGPACK_PARSE_RETURN_HPP + +#include "msgpack/v1/parse_return.hpp" +#include "msgpack/v2/parse_return.hpp" +#include "msgpack/v3/parse_return.hpp" + +#endif // MSGPACK_PARSE_RETURN_HPP diff --git a/third_party/msgpack/include/msgpack/predef.h b/third_party/msgpack/include/msgpack/predef.h new file mode 100644 index 000000000000..0f8d5f589582 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef.h @@ -0,0 +1,24 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#if !defined(MSGPACK_PREDEF_H) || defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) +#ifndef MSGPACK_PREDEF_H +#define MSGPACK_PREDEF_H +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/architecture.h b/third_party/msgpack/include/msgpack/predef/architecture.h new file mode 100644 index 000000000000..63879a032fa4 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture.h @@ -0,0 +1,32 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#if !defined(MSGPACK_PREDEF_ARCHITECTURE_H) || defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) +#ifndef MSGPACK_PREDEF_ARCHITECTURE_H +#define MSGPACK_PREDEF_ARCHITECTURE_H +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +/*#include */ + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/architecture/alpha.h b/third_party/msgpack/include/msgpack/predef/architecture/alpha.h new file mode 100644 index 000000000000..e1a39d0e1319 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/alpha.h @@ -0,0 +1,59 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_ALPHA_H +#define MSGPACK_PREDEF_ARCHITECTURE_ALPHA_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_ALPHA`] + +[@http://en.wikipedia.org/wiki/DEC_Alpha DEC Alpha] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + [[`__alpha__`] [__predef_detection__]] + [[`__alpha`] [__predef_detection__]] + [[`_M_ALPHA`] [__predef_detection__]] + + [[`__alpha_ev4__`] [4.0.0]] + [[`__alpha_ev5__`] [5.0.0]] + [[`__alpha_ev6__`] [6.0.0]] + ] + */ + +#define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__alpha__) || defined(__alpha) || \ + defined(_M_ALPHA) +# undef MSGPACK_ARCH_ALPHA +# if !defined(MSGPACK_ARCH_ALPHA) && defined(__alpha_ev4__) +# define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER(4,0,0) +# endif +# if !defined(MSGPACK_ARCH_ALPHA) && defined(__alpha_ev5__) +# define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER(5,0,0) +# endif +# if !defined(MSGPACK_ARCH_ALPHA) && defined(__alpha_ev6__) +# define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER(6,0,0) +# endif +# if !defined(MSGPACK_ARCH_ALPHA) +# define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_ARCH_ALPHA +# define MSGPACK_ARCH_ALPHA_AVAILABLE +#endif + +#define MSGPACK_ARCH_ALPHA_NAME "DEC Alpha" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_ALPHA,MSGPACK_ARCH_ALPHA_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/arm.h b/third_party/msgpack/include/msgpack/predef/architecture/arm.h new file mode 100644 index 000000000000..c37f2d13064f --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/arm.h @@ -0,0 +1,70 @@ +/* +Copyright Rene Rivera 2008-2015 +Copyright Franz Detro 2014 +Copyright (c) Microsoft Corporation 2014 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_ARM_H +#define MSGPACK_PREDEF_ARCHITECTURE_ARM_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_ARM`] + +[@http://en.wikipedia.org/wiki/ARM_architecture ARM] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__arm__`] [__predef_detection__]] + [[`__arm64`] [__predef_detection__]] + [[`__thumb__`] [__predef_detection__]] + [[`__TARGET_ARCH_ARM`] [__predef_detection__]] + [[`__TARGET_ARCH_THUMB`] [__predef_detection__]] + [[`_M_ARM`] [__predef_detection__]] + + [[`__arm64`] [8.0.0]] + [[`__TARGET_ARCH_ARM`] [V.0.0]] + [[`__TARGET_ARCH_THUMB`] [V.0.0]] + [[`_M_ARM`] [V.0.0]] + ] + */ + +#define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__arm__) || defined(__arm64) || defined(__thumb__) || \ + defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB) || \ + defined(_M_ARM) +# undef MSGPACK_ARCH_ARM +# if !defined(MSGPACK_ARCH_ARM) && defined(__arm64) +# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(8,0,0) +# endif +# if !defined(MSGPACK_ARCH_ARM) && defined(__TARGET_ARCH_ARM) +# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(__TARGET_ARCH_ARM,0,0) +# endif +# if !defined(MSGPACK_ARCH_ARM) && defined(__TARGET_ARCH_THUMB) +# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(__TARGET_ARCH_THUMB,0,0) +# endif +# if !defined(MSGPACK_ARCH_ARM) && defined(_M_ARM) +# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(_M_ARM,0,0) +# endif +# if !defined(MSGPACK_ARCH_ARM) +# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_ARCH_ARM +# define MSGPACK_ARCH_ARM_AVAILABLE +#endif + +#define MSGPACK_ARCH_ARM_NAME "ARM" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_ARM,MSGPACK_ARCH_ARM_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/blackfin.h b/third_party/msgpack/include/msgpack/predef/architecture/blackfin.h new file mode 100644 index 000000000000..c3e580d87e50 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/blackfin.h @@ -0,0 +1,46 @@ +/* +Copyright Rene Rivera 2013-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_BLACKFIN_H +#define MSGPACK_PREDEF_ARCHITECTURE_BLACKFIN_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_BLACKFIN`] + +Blackfin Processors from Analog Devices. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__bfin__`] [__predef_detection__]] + [[`__BFIN__`] [__predef_detection__]] + [[`bfin`] [__predef_detection__]] + [[`BFIN`] [__predef_detection__]] + ] + */ + +#define MSGPACK_ARCH_BLACKFIN MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__bfin__) || defined(__BFIN__) || \ + defined(bfin) || defined(BFIN) +# undef MSGPACK_ARCH_BLACKFIN +# define MSGPACK_ARCH_BLACKFIN MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_ARCH_BLACKFIN +# define MSGPACK_ARCH_BLACKFIN_AVAILABLE +#endif + +#define MSGPACK_ARCH_BLACKFIN_NAME "Blackfin" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_BLACKFIN,MSGPACK_ARCH_BLACKFIN_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/convex.h b/third_party/msgpack/include/msgpack/predef/architecture/convex.h new file mode 100644 index 000000000000..6509ffd2a45c --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/convex.h @@ -0,0 +1,65 @@ +/* +Copyright Rene Rivera 2011-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_CONVEX_H +#define MSGPACK_PREDEF_ARCHITECTURE_CONVEX_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_CONVEX`] + +[@http://en.wikipedia.org/wiki/Convex_Computer Convex Computer] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__convex__`] [__predef_detection__]] + + [[`__convex_c1__`] [1.0.0]] + [[`__convex_c2__`] [2.0.0]] + [[`__convex_c32__`] [3.2.0]] + [[`__convex_c34__`] [3.4.0]] + [[`__convex_c38__`] [3.8.0]] + ] + */ + +#define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__convex__) +# undef MSGPACK_ARCH_CONVEX +# if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c1__) +# define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(1,0,0) +# endif +# if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c2__) +# define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(2,0,0) +# endif +# if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c32__) +# define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(3,2,0) +# endif +# if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c34__) +# define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(3,4,0) +# endif +# if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c38__) +# define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(3,8,0) +# endif +# if !defined(MSGPACK_ARCH_CONVEX) +# define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_ARCH_CONVEX +# define MSGPACK_ARCH_CONVEX_AVAILABLE +#endif + +#define MSGPACK_ARCH_CONVEX_NAME "Convex Computer" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_CONVEX,MSGPACK_ARCH_CONVEX_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/ia64.h b/third_party/msgpack/include/msgpack/predef/architecture/ia64.h new file mode 100644 index 000000000000..f6a0da03df7d --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/ia64.h @@ -0,0 +1,49 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_IA64_H +#define MSGPACK_PREDEF_ARCHITECTURE_IA64_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_IA64`] + +[@http://en.wikipedia.org/wiki/Ia64 Intel Itanium 64] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__ia64__`] [__predef_detection__]] + [[`_IA64`] [__predef_detection__]] + [[`__IA64__`] [__predef_detection__]] + [[`__ia64`] [__predef_detection__]] + [[`_M_IA64`] [__predef_detection__]] + [[`__itanium__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_ARCH_IA64 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__ia64__) || defined(_IA64) || \ + defined(__IA64__) || defined(__ia64) || \ + defined(_M_IA64) || defined(__itanium__) +# undef MSGPACK_ARCH_IA64 +# define MSGPACK_ARCH_IA64 MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_ARCH_IA64 +# define MSGPACK_ARCH_IA64_AVAILABLE +#endif + +#define MSGPACK_ARCH_IA64_NAME "Intel Itanium 64" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_IA64,MSGPACK_ARCH_IA64_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/m68k.h b/third_party/msgpack/include/msgpack/predef/architecture/m68k.h new file mode 100644 index 000000000000..0112a47358ef --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/m68k.h @@ -0,0 +1,82 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_M68K_H +#define MSGPACK_PREDEF_ARCHITECTURE_M68K_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_M68K`] + +[@http://en.wikipedia.org/wiki/M68k Motorola 68k] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__m68k__`] [__predef_detection__]] + [[`M68000`] [__predef_detection__]] + + [[`__mc68060__`] [6.0.0]] + [[`mc68060`] [6.0.0]] + [[`__mc68060`] [6.0.0]] + [[`__mc68040__`] [4.0.0]] + [[`mc68040`] [4.0.0]] + [[`__mc68040`] [4.0.0]] + [[`__mc68030__`] [3.0.0]] + [[`mc68030`] [3.0.0]] + [[`__mc68030`] [3.0.0]] + [[`__mc68020__`] [2.0.0]] + [[`mc68020`] [2.0.0]] + [[`__mc68020`] [2.0.0]] + [[`__mc68010__`] [1.0.0]] + [[`mc68010`] [1.0.0]] + [[`__mc68010`] [1.0.0]] + [[`__mc68000__`] [0.0.1]] + [[`mc68000`] [0.0.1]] + [[`__mc68000`] [0.0.1]] + ] + */ + +#define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__m68k__) || defined(M68000) +# undef MSGPACK_ARCH_M68K +# if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68060__) || defined(mc68060) || defined(__mc68060)) +# define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(6,0,0) +# endif +# if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68040__) || defined(mc68040) || defined(__mc68040)) +# define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(4,0,0) +# endif +# if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68030__) || defined(mc68030) || defined(__mc68030)) +# define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(3,0,0) +# endif +# if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68020__) || defined(mc68020) || defined(__mc68020)) +# define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(2,0,0) +# endif +# if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68010__) || defined(mc68010) || defined(__mc68010)) +# define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(1,0,0) +# endif +# if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68000__) || defined(mc68000) || defined(__mc68000)) +# define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +# if !defined(MSGPACK_ARCH_M68K) +# define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_ARCH_M68K +# define MSGPACK_ARCH_M68K_AVAILABLE +#endif + +#define MSGPACK_ARCH_M68K_NAME "Motorola 68k" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_M68K,MSGPACK_ARCH_M68K_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/mips.h b/third_party/msgpack/include/msgpack/predef/architecture/mips.h new file mode 100644 index 000000000000..c83021a65830 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/mips.h @@ -0,0 +1,73 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_MIPS_H +#define MSGPACK_PREDEF_ARCHITECTURE_MIPS_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_MIPS`] + +[@http://en.wikipedia.org/wiki/MIPS_architecture MIPS] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__mips__`] [__predef_detection__]] + [[`__mips`] [__predef_detection__]] + [[`__MIPS__`] [__predef_detection__]] + + [[`__mips`] [V.0.0]] + [[`_MIPS_ISA_MIPS1`] [1.0.0]] + [[`_R3000`] [1.0.0]] + [[`_MIPS_ISA_MIPS2`] [2.0.0]] + [[`__MIPS_ISA2__`] [2.0.0]] + [[`_R4000`] [2.0.0]] + [[`_MIPS_ISA_MIPS3`] [3.0.0]] + [[`__MIPS_ISA3__`] [3.0.0]] + [[`_MIPS_ISA_MIPS4`] [4.0.0]] + [[`__MIPS_ISA4__`] [4.0.0]] + ] + */ + +#define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__mips__) || defined(__mips) || \ + defined(__MIPS__) +# undef MSGPACK_ARCH_MIPS +# if !defined(MSGPACK_ARCH_MIPS) && (defined(__mips)) +# define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(__mips,0,0) +# endif +# if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS1) || defined(_R3000)) +# define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(1,0,0) +# endif +# if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS2) || defined(__MIPS_ISA2__) || defined(_R4000)) +# define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(2,0,0) +# endif +# if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS3) || defined(__MIPS_ISA3__)) +# define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(3,0,0) +# endif +# if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS4) || defined(__MIPS_ISA4__)) +# define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(4,0,0) +# endif +# if !defined(MSGPACK_ARCH_MIPS) +# define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_ARCH_MIPS +# define MSGPACK_ARCH_MIPS_AVAILABLE +#endif + +#define MSGPACK_ARCH_MIPS_NAME "MIPS" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_MIPS,MSGPACK_ARCH_MIPS_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/parisc.h b/third_party/msgpack/include/msgpack/predef/architecture/parisc.h new file mode 100644 index 000000000000..bbd8aa162429 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/parisc.h @@ -0,0 +1,64 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_PARISC_H +#define MSGPACK_PREDEF_ARCHITECTURE_PARISC_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_PARISK`] + +[@http://en.wikipedia.org/wiki/PA-RISC_family HP/PA RISC] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__hppa__`] [__predef_detection__]] + [[`__hppa`] [__predef_detection__]] + [[`__HPPA__`] [__predef_detection__]] + + [[`_PA_RISC1_0`] [1.0.0]] + [[`_PA_RISC1_1`] [1.1.0]] + [[`__HPPA11__`] [1.1.0]] + [[`__PA7100__`] [1.1.0]] + [[`_PA_RISC2_0`] [2.0.0]] + [[`__RISC2_0__`] [2.0.0]] + [[`__HPPA20__`] [2.0.0]] + [[`__PA8000__`] [2.0.0]] + ] + */ + +#define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__hppa__) || defined(__hppa) || defined(__HPPA__) +# undef MSGPACK_ARCH_PARISC +# if !defined(MSGPACK_ARCH_PARISC) && (defined(_PA_RISC1_0)) +# define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER(1,0,0) +# endif +# if !defined(MSGPACK_ARCH_PARISC) && (defined(_PA_RISC1_1) || defined(__HPPA11__) || defined(__PA7100__)) +# define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER(1,1,0) +# endif +# if !defined(MSGPACK_ARCH_PARISC) && (defined(_PA_RISC2_0) || defined(__RISC2_0__) || defined(__HPPA20__) || defined(__PA8000__)) +# define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER(2,0,0) +# endif +# if !defined(MSGPACK_ARCH_PARISC) +# define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_ARCH_PARISC +# define MSGPACK_ARCH_PARISC_AVAILABLE +#endif + +#define MSGPACK_ARCH_PARISC_NAME "HP/PA RISC" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_PARISC,MSGPACK_ARCH_PARISC_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/ppc.h b/third_party/msgpack/include/msgpack/predef/architecture/ppc.h new file mode 100644 index 000000000000..29cad9298bef --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/ppc.h @@ -0,0 +1,72 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_PPC_H +#define MSGPACK_PREDEF_ARCHITECTURE_PPC_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_PPC`] + +[@http://en.wikipedia.org/wiki/PowerPC PowerPC] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__powerpc`] [__predef_detection__]] + [[`__powerpc__`] [__predef_detection__]] + [[`__POWERPC__`] [__predef_detection__]] + [[`__ppc__`] [__predef_detection__]] + [[`_M_PPC`] [__predef_detection__]] + [[`_ARCH_PPC`] [__predef_detection__]] + [[`__PPCGECKO__`] [__predef_detection__]] + [[`__PPCBROADWAY__`] [__predef_detection__]] + [[`_XENON`] [__predef_detection__]] + + [[`__ppc601__`] [6.1.0]] + [[`_ARCH_601`] [6.1.0]] + [[`__ppc603__`] [6.3.0]] + [[`_ARCH_603`] [6.3.0]] + [[`__ppc604__`] [6.4.0]] + [[`__ppc604__`] [6.4.0]] + ] + */ + +#define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__powerpc) || defined(__powerpc__) || \ + defined(__POWERPC__) || defined(__ppc__) || \ + defined(_M_PPC) || defined(_ARCH_PPC) || \ + defined(__PPCGECKO__) || defined(__PPCBROADWAY__) || \ + defined(_XENON) +# undef MSGPACK_ARCH_PPC +# if !defined (MSGPACK_ARCH_PPC) && (defined(__ppc601__) || defined(_ARCH_601)) +# define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER(6,1,0) +# endif +# if !defined (MSGPACK_ARCH_PPC) && (defined(__ppc603__) || defined(_ARCH_603)) +# define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER(6,3,0) +# endif +# if !defined (MSGPACK_ARCH_PPC) && (defined(__ppc604__) || defined(__ppc604__)) +# define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER(6,4,0) +# endif +# if !defined (MSGPACK_ARCH_PPC) +# define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_ARCH_PPC +# define MSGPACK_ARCH_PPC_AVAILABLE +#endif + +#define MSGPACK_ARCH_PPC_NAME "PowerPC" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_PPC,MSGPACK_ARCH_PPC_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/pyramid.h b/third_party/msgpack/include/msgpack/predef/architecture/pyramid.h new file mode 100644 index 000000000000..5799d831b03f --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/pyramid.h @@ -0,0 +1,42 @@ +/* +Copyright Rene Rivera 2011-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_PYRAMID_H +#define MSGPACK_PREDEF_ARCHITECTURE_PYRAMID_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_PYRAMID`] + +Pyramid 9810 architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`pyr`] [__predef_detection__]] + ] + */ + +#define MSGPACK_ARCH_PYRAMID MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(pyr) +# undef MSGPACK_ARCH_PYRAMID +# define MSGPACK_ARCH_PYRAMID MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_ARCH_PYRAMID +# define MSGPACK_ARCH_PYRAMID_AVAILABLE +#endif + +#define MSGPACK_ARCH_PYRAMID_NAME "Pyramid 9810" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_PYRAMID,MSGPACK_ARCH_PYRAMID_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/rs6k.h b/third_party/msgpack/include/msgpack/predef/architecture/rs6k.h new file mode 100644 index 000000000000..241876059eb7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/rs6k.h @@ -0,0 +1,56 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_RS6K_H +#define MSGPACK_PREDEF_ARCHITECTURE_RS6K_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_RS6000`] + +[@http://en.wikipedia.org/wiki/RS/6000 RS/6000] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__THW_RS6000`] [__predef_detection__]] + [[`_IBMR2`] [__predef_detection__]] + [[`_POWER`] [__predef_detection__]] + [[`_ARCH_PWR`] [__predef_detection__]] + [[`_ARCH_PWR2`] [__predef_detection__]] + ] + */ + +#define MSGPACK_ARCH_RS6000 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__THW_RS6000) || defined(_IBMR2) || \ + defined(_POWER) || defined(_ARCH_PWR) || \ + defined(_ARCH_PWR2) +# undef MSGPACK_ARCH_RS6000 +# define MSGPACK_ARCH_RS6000 MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_ARCH_RS6000 +# define MSGPACK_ARCH_RS6000_AVAILABLE +#endif + +#define MSGPACK_ARCH_RS6000_NAME "RS/6000" + +#define MSGPACK_ARCH_PWR MSGPACK_ARCH_RS6000 + +#if MSGPACK_ARCH_PWR +# define MSGPACK_ARCH_PWR_AVAILABLE +#endif + +#define MSGPACK_ARCH_PWR_NAME MSGPACK_ARCH_RS6000_NAME + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_RS6000,MSGPACK_ARCH_RS6000_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/sparc.h b/third_party/msgpack/include/msgpack/predef/architecture/sparc.h new file mode 100644 index 000000000000..4cb764e59db1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/sparc.h @@ -0,0 +1,54 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_SPARC_H +#define MSGPACK_PREDEF_ARCHITECTURE_SPARC_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_SPARC`] + +[@http://en.wikipedia.org/wiki/SPARC SPARC] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__sparc__`] [__predef_detection__]] + [[`__sparc`] [__predef_detection__]] + + [[`__sparcv9`] [9.0.0]] + [[`__sparcv8`] [8.0.0]] + ] + */ + +#define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__sparc__) || defined(__sparc) +# undef MSGPACK_ARCH_SPARC +# if !defined(MSGPACK_ARCH_SPARC) && defined(__sparcv9) +# define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER(9,0,0) +# endif +# if !defined(MSGPACK_ARCH_SPARC) && defined(__sparcv8) +# define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER(8,0,0) +# endif +# if !defined(MSGPACK_ARCH_SPARC) +# define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_ARCH_SPARC +# define MSGPACK_ARCH_SPARC_AVAILABLE +#endif + +#define MSGPACK_ARCH_SPARC_NAME "SPARC" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SPARC,MSGPACK_ARCH_SPARC_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/superh.h b/third_party/msgpack/include/msgpack/predef/architecture/superh.h new file mode 100644 index 000000000000..8256d2b8b725 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/superh.h @@ -0,0 +1,67 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_SUPERH_H +#define MSGPACK_PREDEF_ARCHITECTURE_SUPERH_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_SH`] + +[@http://en.wikipedia.org/wiki/SuperH SuperH] architecture: +If available versions \[1-5\] are specifically detected. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__sh__`] [__predef_detection__]] + + [[`__SH5__`] [5.0.0]] + [[`__SH4__`] [4.0.0]] + [[`__sh3__`] [3.0.0]] + [[`__SH3__`] [3.0.0]] + [[`__sh2__`] [2.0.0]] + [[`__sh1__`] [1.0.0]] + ] + */ + +#define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__sh__) +# undef MSGPACK_ARCH_SH +# if !defined(MSGPACK_ARCH_SH) && (defined(__SH5__)) +# define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(5,0,0) +# endif +# if !defined(MSGPACK_ARCH_SH) && (defined(__SH4__)) +# define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(4,0,0) +# endif +# if !defined(MSGPACK_ARCH_SH) && (defined(__sh3__) || defined(__SH3__)) +# define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(3,0,0) +# endif +# if !defined(MSGPACK_ARCH_SH) && (defined(__sh2__)) +# define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(2,0,0) +# endif +# if !defined(MSGPACK_ARCH_SH) && (defined(__sh1__)) +# define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(1,0,0) +# endif +# if !defined(MSGPACK_ARCH_SH) +# define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_ARCH_SH +# define MSGPACK_ARCH_SH_AVAILABLE +#endif + +#define MSGPACK_ARCH_SH_NAME "SuperH" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SH,MSGPACK_ARCH_SH_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/sys370.h b/third_party/msgpack/include/msgpack/predef/architecture/sys370.h new file mode 100644 index 000000000000..a03b6911379c --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/sys370.h @@ -0,0 +1,43 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_SYS370_H +#define MSGPACK_PREDEF_ARCHITECTURE_SYS370_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_SYS370`] + +[@http://en.wikipedia.org/wiki/System/370 System/370] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__370__`] [__predef_detection__]] + [[`__THW_370__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_ARCH_SYS370 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__370__) || defined(__THW_370__) +# undef MSGPACK_ARCH_SYS370 +# define MSGPACK_ARCH_SYS370 MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_ARCH_SYS370 +# define MSGPACK_ARCH_SYS370_AVAILABLE +#endif + +#define MSGPACK_ARCH_SYS370_NAME "System/370" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SYS370,MSGPACK_ARCH_SYS370_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/sys390.h b/third_party/msgpack/include/msgpack/predef/architecture/sys390.h new file mode 100644 index 000000000000..20fbb1d3493e --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/sys390.h @@ -0,0 +1,43 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_SYS390_H +#define MSGPACK_PREDEF_ARCHITECTURE_SYS390_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_SYS390`] + +[@http://en.wikipedia.org/wiki/System/390 System/390] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__s390__`] [__predef_detection__]] + [[`__s390x__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_ARCH_SYS390 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__s390__) || defined(__s390x__) +# undef MSGPACK_ARCH_SYS390 +# define MSGPACK_ARCH_SYS390 MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_ARCH_SYS390 +# define MSGPACK_ARCH_SYS390_AVAILABLE +#endif + +#define MSGPACK_ARCH_SYS390_NAME "System/390" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SYS390,MSGPACK_ARCH_SYS390_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/x86.h b/third_party/msgpack/include/msgpack/predef/architecture/x86.h new file mode 100644 index 000000000000..02353b15d845 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/x86.h @@ -0,0 +1,38 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#include +#include + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_X86_H +#define MSGPACK_PREDEF_ARCHITECTURE_X86_H + +/*` +[heading `MSGPACK_ARCH_X86`] + +[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture. This is +a category to indicate that either `MSGPACK_ARCH_X86_32` or +`MSGPACK_ARCH_X86_64` is detected. + */ + +#define MSGPACK_ARCH_X86 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if MSGPACK_ARCH_X86_32 || MSGPACK_ARCH_X86_64 +# undef MSGPACK_ARCH_X86 +# define MSGPACK_ARCH_X86 MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_ARCH_X86 +# define MSGPACK_ARCH_X86_AVAILABLE +#endif + +#define MSGPACK_ARCH_X86_NAME "Intel x86" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_X86,MSGPACK_ARCH_X86_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/x86/32.h b/third_party/msgpack/include/msgpack/predef/architecture/x86/32.h new file mode 100644 index 000000000000..82cff0195e8e --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/x86/32.h @@ -0,0 +1,87 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_X86_32_H +#define MSGPACK_PREDEF_ARCHITECTURE_X86_32_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_X86_32`] + +[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture: +If available versions \[3-6\] are specifically detected. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`i386`] [__predef_detection__]] + [[`__i386__`] [__predef_detection__]] + [[`__i486__`] [__predef_detection__]] + [[`__i586__`] [__predef_detection__]] + [[`__i686__`] [__predef_detection__]] + [[`__i386`] [__predef_detection__]] + [[`_M_IX86`] [__predef_detection__]] + [[`_X86_`] [__predef_detection__]] + [[`__THW_INTEL__`] [__predef_detection__]] + [[`__I86__`] [__predef_detection__]] + [[`__INTEL__`] [__predef_detection__]] + + [[`__I86__`] [V.0.0]] + [[`_M_IX86`] [V.0.0]] + [[`__i686__`] [6.0.0]] + [[`__i586__`] [5.0.0]] + [[`__i486__`] [4.0.0]] + [[`__i386__`] [3.0.0]] + ] + */ + +#define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(i386) || defined(__i386__) || \ + defined(__i486__) || defined(__i586__) || \ + defined(__i686__) || defined(__i386) || \ + defined(_M_IX86) || defined(_X86_) || \ + defined(__THW_INTEL__) || defined(__I86__) || \ + defined(__INTEL__) +# undef MSGPACK_ARCH_X86_32 +# if !defined(MSGPACK_ARCH_X86_32) && defined(__I86__) +# define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(__I86__,0,0) +# endif +# if !defined(MSGPACK_ARCH_X86_32) && defined(_M_IX86) +# define MSGPACK_ARCH_X86_32 MSGPACK_PREDEF_MAKE_10_VV00(_M_IX86) +# endif +# if !defined(MSGPACK_ARCH_X86_32) && defined(__i686__) +# define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(6,0,0) +# endif +# if !defined(MSGPACK_ARCH_X86_32) && defined(__i586__) +# define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(5,0,0) +# endif +# if !defined(MSGPACK_ARCH_X86_32) && defined(__i486__) +# define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(4,0,0) +# endif +# if !defined(MSGPACK_ARCH_X86_32) && defined(__i386__) +# define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(3,0,0) +# endif +# if !defined(MSGPACK_ARCH_X86_32) +# define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_ARCH_X86_32 +# define MSGPACK_ARCH_X86_32_AVAILABLE +#endif + +#define MSGPACK_ARCH_X86_32_NAME "Intel x86-32" + +#include + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_X86_32,MSGPACK_ARCH_X86_32_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/x86/64.h b/third_party/msgpack/include/msgpack/predef/architecture/x86/64.h new file mode 100644 index 000000000000..72a05c26b2fc --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/x86/64.h @@ -0,0 +1,50 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_X86_64_H +#define MSGPACK_PREDEF_ARCHITECTURE_X86_64_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_X86_64`] + +[@http://en.wikipedia.org/wiki/Ia64 Intel IA-64] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__x86_64`] [__predef_detection__]] + [[`__x86_64__`] [__predef_detection__]] + [[`__amd64__`] [__predef_detection__]] + [[`__amd64`] [__predef_detection__]] + [[`_M_X64`] [__predef_detection__]] + ] + */ + +#define MSGPACK_ARCH_X86_64 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__x86_64) || defined(__x86_64__) || \ + defined(__amd64__) || defined(__amd64) || \ + defined(_M_X64) +# undef MSGPACK_ARCH_X86_64 +# define MSGPACK_ARCH_X86_64 MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_ARCH_X86_64 +# define MSGPACK_ARCH_X86_64_AVAILABLE +#endif + +#define MSGPACK_ARCH_X86_64_NAME "Intel x86-64" + +#include + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_X86_64,MSGPACK_ARCH_X86_64_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/architecture/z.h b/third_party/msgpack/include/msgpack/predef/architecture/z.h new file mode 100644 index 000000000000..f5e9f859ca0c --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/architecture/z.h @@ -0,0 +1,42 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ARCHITECTURE_Z_H +#define MSGPACK_PREDEF_ARCHITECTURE_Z_H + +#include +#include + +/*` +[heading `MSGPACK_ARCH_Z`] + +[@http://en.wikipedia.org/wiki/Z/Architecture z/Architecture] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__SYSC_ZARCH__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_ARCH_Z MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__SYSC_ZARCH__) +# undef MSGPACK_ARCH_Z +# define MSGPACK_ARCH_Z MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_ARCH_Z +# define MSGPACK_ARCH_Z_AVAILABLE +#endif + +#define MSGPACK_ARCH_Z_NAME "z/Architecture" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_Z,MSGPACK_ARCH_Z_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/compiler.h b/third_party/msgpack/include/msgpack/predef/compiler.h new file mode 100644 index 000000000000..56058166744f --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler.h @@ -0,0 +1,43 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#if !defined(MSGPACK_PREDEF_COMPILER_H) || defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) +#ifndef MSGPACK_PREDEF_COMPILER_H +#define MSGPACK_PREDEF_COMPILER_H +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/borland.h b/third_party/msgpack/include/msgpack/predef/compiler/borland.h new file mode 100644 index 000000000000..89e0d9f2ceb4 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/borland.h @@ -0,0 +1,63 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_BORLAND_H +#define MSGPACK_PREDEF_COMPILER_BORLAND_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_BORLAND`] + +[@http://en.wikipedia.org/wiki/C_plus_plus_builder Borland C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__BORLANDC__`] [__predef_detection__]] + [[`__CODEGEARC__`] [__predef_detection__]] + + [[`__BORLANDC__`] [V.R.P]] + [[`__CODEGEARC__`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_BORLAND MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__BORLANDC__) || defined(__CODEGEARC__) +# if !defined(MSGPACK_COMP_BORLAND_DETECTION) && (defined(__CODEGEARC__)) +# define MSGPACK_COMP_BORLAND_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRP(__CODEGEARC__) +# endif +# if !defined(MSGPACK_COMP_BORLAND_DETECTION) +# define MSGPACK_COMP_BORLAND_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRP(__BORLANDC__) +# endif +#endif + +#ifdef MSGPACK_COMP_BORLAND_DETECTION +# define MSGPACK_COMP_BORLAND_AVAILABLE +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_BORLAND_EMULATED MSGPACK_COMP_BORLAND_DETECTION +# else +# undef MSGPACK_COMP_BORLAND +# define MSGPACK_COMP_BORLAND MSGPACK_COMP_BORLAND_DETECTION +# endif +# include +#endif + +#define MSGPACK_COMP_BORLAND_NAME "Borland C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_BORLAND,MSGPACK_COMP_BORLAND_NAME) + +#ifdef MSGPACK_COMP_BORLAND_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_BORLAND_EMULATED,MSGPACK_COMP_BORLAND_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/clang.h b/third_party/msgpack/include/msgpack/predef/compiler/clang.h new file mode 100644 index 000000000000..93616cf53fe4 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/clang.h @@ -0,0 +1,56 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_CLANG_H +#define MSGPACK_PREDEF_COMPILER_CLANG_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_CLANG`] + +[@http://en.wikipedia.org/wiki/Clang Clang] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__clang__`] [__predef_detection__]] + + [[`__clang_major__`, `__clang_minor__`, `__clang_patchlevel__`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_CLANG MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__clang__) +# define MSGPACK_COMP_CLANG_DETECTION MSGPACK_VERSION_NUMBER(__clang_major__,__clang_minor__,__clang_patchlevel__) +#endif + +#ifdef MSGPACK_COMP_CLANG_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_CLANG_EMULATED MSGPACK_COMP_CLANG_DETECTION +# else +# undef MSGPACK_COMP_CLANG +# define MSGPACK_COMP_CLANG MSGPACK_COMP_CLANG_DETECTION +# endif +# define MSGPACK_COMP_CLANG_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_CLANG_NAME "Clang" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_CLANG,MSGPACK_COMP_CLANG_NAME) + +#ifdef MSGPACK_COMP_CLANG_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_CLANG_EMULATED,MSGPACK_COMP_CLANG_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/comeau.h b/third_party/msgpack/include/msgpack/predef/compiler/comeau.h new file mode 100644 index 000000000000..f944bca863d5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/comeau.h @@ -0,0 +1,61 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_COMEAU_H +#define MSGPACK_PREDEF_COMPILER_COMEAU_H + +#include +#include + +#define MSGPACK_COMP_COMO MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +/*` +[heading `MSGPACK_COMP_COMO`] + +[@http://en.wikipedia.org/wiki/Comeau_C/C%2B%2B Comeau C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__COMO__`] [__predef_detection__]] + + [[`__COMO_VERSION__`] [V.R.P]] + ] + */ + +#if defined(__COMO__) +# if !defined(MSGPACK_COMP_COMO_DETECTION) && defined(__COMO_VERSION__) +# define MSGPACK_COMP_COMO_DETECTION MSGPACK_PREDEF_MAKE_0X_VRP(__COMO_VERSION__) +# endif +# if !defined(MSGPACK_COMP_COMO_DETECTION) +# define MSGPACK_COMP_COMO_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#ifdef MSGPACK_COMP_COMO_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_COMO_EMULATED MSGPACK_COMP_COMO_DETECTION +# else +# undef MSGPACK_COMP_COMO +# define MSGPACK_COMP_COMO MSGPACK_COMP_COMO_DETECTION +# endif +# define MSGPACK_COMP_COMO_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_COMO_NAME "Comeau C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_COMO,MSGPACK_COMP_COMO_NAME) + +#ifdef MSGPACK_COMP_COMO_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_COMO_EMULATED,MSGPACK_COMP_COMO_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/compaq.h b/third_party/msgpack/include/msgpack/predef/compiler/compaq.h new file mode 100644 index 000000000000..b2771a73c8ea --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/compaq.h @@ -0,0 +1,66 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_COMPAQ_H +#define MSGPACK_PREDEF_COMPILER_COMPAQ_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_DEC`] + +[@http://www.openvms.compaq.com/openvms/brochures/deccplus/ Compaq C/C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__DECCXX`] [__predef_detection__]] + [[`__DECC`] [__predef_detection__]] + + [[`__DECCXX_VER`] [V.R.P]] + [[`__DECC_VER`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_DEC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__DECC) || defined(__DECCXX) +# if !defined(MSGPACK_COMP_DEC_DETECTION) && defined(__DECCXX_VER) +# define MSGPACK_COMP_DEC_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR0PP00(__DECCXX_VER) +# endif +# if !defined(MSGPACK_COMP_DEC_DETECTION) && defined(__DECC_VER) +# define MSGPACK_COMP_DEC_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR0PP00(__DECC_VER) +# endif +# if !defined(MSGPACK_COMP_DEC_DETECTION) +# define MSGPACK_COM_DEC_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#ifdef MSGPACK_COMP_DEC_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_DEC_EMULATED MSGPACK_COMP_DEC_DETECTION +# else +# undef MSGPACK_COMP_DEC +# define MSGPACK_COMP_DEC MSGPACK_COMP_DEC_DETECTION +# endif +# define MSGPACK_COMP_DEC_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_DEC_NAME "Compaq C/C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DEC,MSGPACK_COMP_DEC_NAME) + +#ifdef MSGPACK_COMP_DEC_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DEC_EMULATED,MSGPACK_COMP_DEC_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/diab.h b/third_party/msgpack/include/msgpack/predef/compiler/diab.h new file mode 100644 index 000000000000..a365a35c52b7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/diab.h @@ -0,0 +1,56 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_DIAB_H +#define MSGPACK_PREDEF_COMPILER_DIAB_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_DIAB`] + +[@http://www.windriver.com/products/development_suite/wind_river_compiler/ Diab C/C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__DCC__`] [__predef_detection__]] + + [[`__VERSION_NUMBER__`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_DIAB MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__DCC__) +# define MSGPACK_COMP_DIAB_DETECTION MSGPACK_PREDEF_MAKE_10_VRPP(__VERSION_NUMBER__) +#endif + +#ifdef MSGPACK_COMP_DIAB_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_DIAB_EMULATED MSGPACK_COMP_DIAB_DETECTION +# else +# undef MSGPACK_COMP_DIAB +# define MSGPACK_COMP_DIAB MSGPACK_COMP_DIAB_DETECTION +# endif +# define MSGPACK_COMP_DIAB_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_DIAB_NAME "Diab C/C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DIAB,MSGPACK_COMP_DIAB_NAME) + +#ifdef MSGPACK_COMP_DIAB_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DIAB_EMULATED,MSGPACK_COMP_DIAB_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/digitalmars.h b/third_party/msgpack/include/msgpack/predef/compiler/digitalmars.h new file mode 100644 index 000000000000..eca2a3123ecd --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/digitalmars.h @@ -0,0 +1,56 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_DIGITALMARS_H +#define MSGPACK_PREDEF_COMPILER_DIGITALMARS_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_DMC`] + +[@http://en.wikipedia.org/wiki/Digital_Mars Digital Mars] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__DMC__`] [__predef_detection__]] + + [[`__DMC__`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_DMC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__DMC__) +# define MSGPACK_COMP_DMC_DETECTION MSGPACK_PREDEF_MAKE_0X_VRP(__DMC__) +#endif + +#ifdef MSGPACK_COMP_DMC_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_DMC_EMULATED MSGPACK_COMP_DMC_DETECTION +# else +# undef MSGPACK_COMP_DMC +# define MSGPACK_COMP_DMC MSGPACK_COMP_DMC_DETECTION +# endif +# define MSGPACK_COMP_DMC_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_DMC_NAME "Digital Mars" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DMC,MSGPACK_COMP_DMC_NAME) + +#ifdef MSGPACK_COMP_DMC_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DMC_EMULATED,MSGPACK_COMP_DMC_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/dignus.h b/third_party/msgpack/include/msgpack/predef/compiler/dignus.h new file mode 100644 index 000000000000..8040baa9b444 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/dignus.h @@ -0,0 +1,56 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_DIGNUS_H +#define MSGPACK_PREDEF_COMPILER_DIGNUS_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_SYSC`] + +[@http://www.dignus.com/dcxx/ Dignus Systems/C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__SYSC__`] [__predef_detection__]] + + [[`__SYSC_VER__`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_SYSC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__SYSC__) +# define MSGPACK_COMP_SYSC_DETECTION MSGPACK_PREDEF_MAKE_10_VRRPP(__SYSC_VER__) +#endif + +#ifdef MSGPACK_COMP_SYSC_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_SYSC_EMULATED MSGPACK_COMP_SYSC_DETECTION +# else +# undef MSGPACK_COMP_SYSC +# define MSGPACK_COMP_SYSC MSGPACK_COMP_SYSC_DETECTION +# endif +# define MSGPACK_COMP_SYSC_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_SYSC_NAME "Dignus Systems/C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SYSC,MSGPACK_COMP_SYSC_NAME) + +#ifdef MSGPACK_COMP_SYSC_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SYSC_EMULATED,MSGPACK_COMP_SYSC_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/edg.h b/third_party/msgpack/include/msgpack/predef/compiler/edg.h new file mode 100644 index 000000000000..700f8bdc4dc6 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/edg.h @@ -0,0 +1,56 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_EDG_H +#define MSGPACK_PREDEF_COMPILER_EDG_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_EDG`] + +[@http://en.wikipedia.org/wiki/Edison_Design_Group EDG C++ Frontend] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__EDG__`] [__predef_detection__]] + + [[`__EDG_VERSION__`] [V.R.0]] + ] + */ + +#define MSGPACK_COMP_EDG MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__EDG__) +# define MSGPACK_COMP_EDG_DETECTION MSGPACK_PREDEF_MAKE_10_VRR(__EDG_VERSION__) +#endif + +#ifdef MSGPACK_COMP_EDG_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_EDG_EMULATED MSGPACK_COMP_EDG_DETECTION +# else +# undef MSGPACK_COMP_EDG +# define MSGPACK_COMP_EDG MSGPACK_COMP_EDG_DETECTION +# endif +# define MSGPACK_COMP_EDG_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_EDG_NAME "EDG C++ Frontend" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_EDG,MSGPACK_COMP_EDG_NAME) + +#ifdef MSGPACK_COMP_EDG_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_EDG_EMULATED,MSGPACK_COMP_EDG_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/ekopath.h b/third_party/msgpack/include/msgpack/predef/compiler/ekopath.h new file mode 100644 index 000000000000..72fda2723b77 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/ekopath.h @@ -0,0 +1,57 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_EKOPATH_H +#define MSGPACK_PREDEF_COMPILER_EKOPATH_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_PATH`] + +[@http://en.wikipedia.org/wiki/PathScale EKOpath] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__PATHCC__`] [__predef_detection__]] + + [[`__PATHCC__`, `__PATHCC_MINOR__`, `__PATHCC_PATCHLEVEL__`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_PATH MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__PATHCC__) +# define MSGPACK_COMP_PATH_DETECTION \ + MSGPACK_VERSION_NUMBER(__PATHCC__,__PATHCC_MINOR__,__PATHCC_PATCHLEVEL__) +#endif + +#ifdef MSGPACK_COMP_PATH_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_PATH_EMULATED MSGPACK_COMP_PATH_DETECTION +# else +# undef MSGPACK_COMP_PATH +# define MSGPACK_COMP_PATH MSGPACK_COMP_PATH_DETECTION +# endif +# define MSGPACK_COMP_PATH_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_PATH_NAME "EKOpath" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PATH,MSGPACK_COMP_PATH_NAME) + +#ifdef MSGPACK_COMP_PATH_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PATH_EMULATED,MSGPACK_COMP_PATH_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/gcc.h b/third_party/msgpack/include/msgpack/predef/compiler/gcc.h new file mode 100644 index 000000000000..03fcd2a7848b --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/gcc.h @@ -0,0 +1,68 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_GCC_H +#define MSGPACK_PREDEF_COMPILER_GCC_H + +/* Other compilers that emulate this one need to be detected first. */ + +#include + +#include +#include + +/*` +[heading `MSGPACK_COMP_GNUC`] + +[@http://en.wikipedia.org/wiki/GNU_Compiler_Collection Gnu GCC C/C++] compiler. +Version number available as major, minor, and patch (if available). + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__GNUC__`] [__predef_detection__]] + + [[`__GNUC__`, `__GNUC_MINOR__`, `__GNUC_PATCHLEVEL__`] [V.R.P]] + [[`__GNUC__`, `__GNUC_MINOR__`] [V.R.0]] + ] + */ + +#define MSGPACK_COMP_GNUC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__GNUC__) +# if !defined(MSGPACK_COMP_GNUC_DETECTION) && defined(__GNUC_PATCHLEVEL__) +# define MSGPACK_COMP_GNUC_DETECTION \ + MSGPACK_VERSION_NUMBER(__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__) +# endif +# if !defined(MSGPACK_COMP_GNUC_DETECTION) +# define MSGPACK_COMP_GNUC_DETECTION \ + MSGPACK_VERSION_NUMBER(__GNUC__,__GNUC_MINOR__,0) +# endif +#endif + +#ifdef MSGPACK_COMP_GNUC_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_GNUC_EMULATED MSGPACK_COMP_GNUC_DETECTION +# else +# undef MSGPACK_COMP_GNUC +# define MSGPACK_COMP_GNUC MSGPACK_COMP_GNUC_DETECTION +# endif +# define MSGPACK_COMP_GNUC_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_GNUC_NAME "Gnu GCC C/C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GNUC,MSGPACK_COMP_GNUC_NAME) + +#ifdef MSGPACK_COMP_GNUC_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GNUC_EMULATED,MSGPACK_COMP_GNUC_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/gcc_xml.h b/third_party/msgpack/include/msgpack/predef/compiler/gcc_xml.h new file mode 100644 index 000000000000..678cf71c7651 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/gcc_xml.h @@ -0,0 +1,53 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_GCC_XML_H +#define MSGPACK_PREDEF_COMPILER_GCC_XML_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_GCCXML`] + +[@http://www.gccxml.org/ GCC XML] compiler. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__GCCXML__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_COMP_GCCXML MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__GCCXML__) +# define MSGPACK_COMP_GCCXML_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#ifdef MSGPACK_COMP_GCCXML_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_GCCXML_EMULATED MSGPACK_COMP_GCCXML_DETECTION +# else +# undef MSGPACK_COMP_GCCXML +# define MSGPACK_COMP_GCCXML MSGPACK_COMP_GCCXML_DETECTION +# endif +# define MSGPACK_COMP_GCCXML_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_GCCXML_NAME "GCC XML" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GCCXML,MSGPACK_COMP_GCCXML_NAME) + +#ifdef MSGPACK_COMP_GCCXML_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GCCXML_EMULATED,MSGPACK_COMP_GCCXML_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/greenhills.h b/third_party/msgpack/include/msgpack/predef/compiler/greenhills.h new file mode 100644 index 000000000000..f99784367339 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/greenhills.h @@ -0,0 +1,66 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_GREENHILLS_H +#define MSGPACK_PREDEF_COMPILER_GREENHILLS_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_GHS`] + +[@http://en.wikipedia.org/wiki/Green_Hills_Software Green Hills C/C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__ghs`] [__predef_detection__]] + [[`__ghs__`] [__predef_detection__]] + + [[`__GHS_VERSION_NUMBER__`] [V.R.P]] + [[`__ghs`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_GHS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__ghs) || defined(__ghs__) +# if !defined(MSGPACK_COMP_GHS_DETECTION) && defined(__GHS_VERSION_NUMBER__) +# define MSGPACK_COMP_GHS_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__GHS_VERSION_NUMBER__) +# endif +# if !defined(MSGPACK_COMP_GHS_DETECTION) && defined(__ghs) +# define MSGPACK_COMP_GHS_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__ghs) +# endif +# if !defined(MSGPACK_COMP_GHS_DETECTION) +# define MSGPACK_COMP_GHS_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#ifdef MSGPACK_COMP_GHS_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_GHS_EMULATED MSGPACK_COMP_GHS_DETECTION +# else +# undef MSGPACK_COMP_GHS +# define MSGPACK_COMP_GHS MSGPACK_COMP_GHS_DETECTION +# endif +# define MSGPACK_COMP_GHS_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_GHS_NAME "Green Hills C/C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GHS,MSGPACK_COMP_GHS_NAME) + +#ifdef MSGPACK_COMP_GHS_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GHS_EMULATED,MSGPACK_COMP_GHS_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/hp_acc.h b/third_party/msgpack/include/msgpack/predef/compiler/hp_acc.h new file mode 100644 index 000000000000..5a47ae4df960 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/hp_acc.h @@ -0,0 +1,61 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_HP_ACC_H +#define MSGPACK_PREDEF_COMPILER_HP_ACC_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_HPACC`] + +HP aC++ compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__HP_aCC`] [__predef_detection__]] + + [[`__HP_aCC`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_HPACC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__HP_aCC) +# if !defined(MSGPACK_COMP_HPACC_DETECTION) && (__HP_aCC > 1) +# define MSGPACK_COMP_HPACC_DETECTION MSGPACK_PREDEF_MAKE_10_VVRRPP(__HP_aCC) +# endif +# if !defined(MSGPACK_COMP_HPACC_DETECTION) +# define MSGPACK_COMP_HPACC_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#ifdef MSGPACK_COMP_HPACC_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_HPACC_EMULATED MSGPACK_COMP_HPACC_DETECTION +# else +# undef MSGPACK_COMP_HPACC +# define MSGPACK_COMP_HPACC MSGPACK_COMP_HPACC_DETECTION +# endif +# define MSGPACK_COMP_HPACC_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_HPACC_NAME "HP aC++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HPACC,MSGPACK_COMP_HPACC_NAME) + +#ifdef MSGPACK_COMP_HPACC_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HPACC_EMULATED,MSGPACK_COMP_HPACC_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/iar.h b/third_party/msgpack/include/msgpack/predef/compiler/iar.h new file mode 100644 index 000000000000..2cce96003cc7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/iar.h @@ -0,0 +1,56 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_IAR_H +#define MSGPACK_PREDEF_COMPILER_IAR_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_IAR`] + +IAR C/C++ compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__IAR_SYSTEMS_ICC__`] [__predef_detection__]] + + [[`__VER__`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_IAR MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__IAR_SYSTEMS_ICC__) +# define MSGPACK_COMP_IAR_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR(__VER__) +#endif + +#ifdef MSGPACK_COMP_IAR_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_IAR_EMULATED MSGPACK_COMP_IAR_DETECTION +# else +# undef MSGPACK_COMP_IAR +# define MSGPACK_COMP_IAR MSGPACK_COMP_IAR_DETECTION +# endif +# define MSGPACK_COMP_IAR_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_IAR_NAME "IAR C/C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IAR,MSGPACK_COMP_IAR_NAME) + +#ifdef MSGPACK_COMP_IAR_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IAR_EMULATED,MSGPACK_COMP_IAR_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/ibm.h b/third_party/msgpack/include/msgpack/predef/compiler/ibm.h new file mode 100644 index 000000000000..fc4ecfae03a3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/ibm.h @@ -0,0 +1,72 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_IBM_H +#define MSGPACK_PREDEF_COMPILER_IBM_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_IBM`] + +[@http://en.wikipedia.org/wiki/VisualAge IBM XL C/C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__IBMCPP__`] [__predef_detection__]] + [[`__xlC__`] [__predef_detection__]] + [[`__xlc__`] [__predef_detection__]] + + [[`__COMPILER_VER__`] [V.R.P]] + [[`__xlC__`] [V.R.P]] + [[`__xlc__`] [V.R.P]] + [[`__IBMCPP__`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_IBM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__IBMCPP__) || defined(__xlC__) || defined(__xlc__) +# if !defined(MSGPACK_COMP_IBM_DETECTION) && defined(__COMPILER_VER__) +# define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_0X_VRRPPPP(__COMPILER_VER__) +# endif +# if !defined(MSGPACK_COMP_IBM_DETECTION) && defined(__xlC__) +# define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRR(__xlC__) +# endif +# if !defined(MSGPACK_COMP_IBM_DETECTION) && defined(__xlc__) +# define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRR(__xlc__) +# endif +# if !defined(MSGPACK_COMP_IBM_DETECTION) +# define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__IBMCPP__) +# endif +#endif + +#ifdef MSGPACK_COMP_IBM_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_IBM_EMULATED MSGPACK_COMP_IBM_DETECTION +# else +# undef MSGPACK_COMP_IBM +# define MSGPACK_COMP_IBM MSGPACK_COMP_IBM_DETECTION +# endif +# define MSGPACK_COMP_IBM_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_IBM_NAME "IBM XL C/C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IBM,MSGPACK_COMP_IBM_NAME) + +#ifdef MSGPACK_COMP_IBM_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IBM_EMULATED,MSGPACK_COMP_IBM_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/intel.h b/third_party/msgpack/include/msgpack/predef/compiler/intel.h new file mode 100644 index 000000000000..7a1d76efeeb4 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/intel.h @@ -0,0 +1,65 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_INTEL_H +#define MSGPACK_PREDEF_COMPILER_INTEL_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_INTEL`] + +[@http://en.wikipedia.org/wiki/Intel_C%2B%2B Intel C/C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__INTEL_COMPILER`] [__predef_detection__]] + [[`__ICL`] [__predef_detection__]] + [[`__ICC`] [__predef_detection__]] + [[`__ECC`] [__predef_detection__]] + + [[`__INTEL_COMPILER`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_INTEL MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || \ + defined(__ECC) +# if !defined(MSGPACK_COMP_INTEL_DETECTION) && defined(__INTEL_COMPILER) +# define MSGPACK_COMP_INTEL_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__INTEL_COMPILER) +# endif +# if !defined(MSGPACK_COMP_INTEL_DETECTION) +# define MSGPACK_COMP_INTEL_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#ifdef MSGPACK_COMP_INTEL_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_INTEL_EMULATED MSGPACK_COMP_INTEL_DETECTION +# else +# undef MSGPACK_COMP_INTEL +# define MSGPACK_COMP_INTEL MSGPACK_COMP_INTEL_DETECTION +# endif +# define MSGPACK_COMP_INTEL_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_INTEL_NAME "Intel C/C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_INTEL,MSGPACK_COMP_INTEL_NAME) + +#ifdef MSGPACK_COMP_INTEL_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_INTEL_EMULATED,MSGPACK_COMP_INTEL_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/kai.h b/third_party/msgpack/include/msgpack/predef/compiler/kai.h new file mode 100644 index 000000000000..232d54d5f0b3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/kai.h @@ -0,0 +1,56 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_KAI_H +#define MSGPACK_PREDEF_COMPILER_KAI_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_KCC`] + +Kai C++ compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__KCC`] [__predef_detection__]] + + [[`__KCC_VERSION`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_KCC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__KCC) +# define MSGPACK_COMP_KCC_DETECTION MSGPACK_PREDEF_MAKE_0X_VRPP(__KCC_VERSION) +#endif + +#ifdef MSGPACK_COMP_KCC_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_KCC_EMULATED MSGPACK_COMP_KCC_DETECTION +# else +# undef MSGPACK_COMP_KCC +# define MSGPACK_COMP_KCC MSGPACK_COMP_KCC_DETECTION +# endif +# define MSGPACK_COMP_KCC_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_KCC_NAME "Kai C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_KCC,MSGPACK_COMP_KCC_NAME) + +#ifdef MSGPACK_COMP_KCC_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_KCC_EMULATED,MSGPACK_COMP_KCC_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/llvm.h b/third_party/msgpack/include/msgpack/predef/compiler/llvm.h new file mode 100644 index 000000000000..873d3087316b --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/llvm.h @@ -0,0 +1,57 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_LLVM_H +#define MSGPACK_PREDEF_COMPILER_LLVM_H + +/* Other compilers that emulate this one need to be detected first. */ + +#include + +#include +#include + +/*` +[heading `MSGPACK_COMP_LLVM`] + +[@http://en.wikipedia.org/wiki/LLVM LLVM] compiler. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__llvm__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_COMP_LLVM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__llvm__) +# define MSGPACK_COMP_LLVM_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#ifdef MSGPACK_COMP_LLVM_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_LLVM_EMULATED MSGPACK_COMP_LLVM_DETECTION +# else +# undef MSGPACK_COMP_LLVM +# define MSGPACK_COMP_LLVM MSGPACK_COMP_LLVM_DETECTION +# endif +# define MSGPACK_COMP_LLVM_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_LLVM_NAME "LLVM" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_LLVM,MSGPACK_COMP_LLVM_NAME) + +#ifdef MSGPACK_COMP_LLVM_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_LLVM_EMULATED,MSGPACK_COMP_LLVM_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/metaware.h b/third_party/msgpack/include/msgpack/predef/compiler/metaware.h new file mode 100644 index 000000000000..a3c66adcd3c7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/metaware.h @@ -0,0 +1,53 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_METAWARE_H +#define MSGPACK_PREDEF_COMPILER_METAWARE_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_HIGHC`] + +MetaWare High C/C++ compiler. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__HIGHC__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_COMP_HIGHC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__HIGHC__) +# define MSGPACK_COMP_HIGHC_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#ifdef MSGPACK_COMP_HIGHC_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_HIGHC_EMULATED MSGPACK_COMP_HIGHC_DETECTION +# else +# undef MSGPACK_COMP_HIGHC +# define MSGPACK_COMP_HIGHC MSGPACK_COMP_HIGHC_DETECTION +# endif +# define MSGPACK_COMP_HIGHC_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_HIGHC_NAME "MetaWare High C/C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HIGHC,MSGPACK_COMP_HIGHC_NAME) + +#ifdef MSGPACK_COMP_HIGHC_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HIGHC_EMULATED,MSGPACK_COMP_HIGHC_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/metrowerks.h b/third_party/msgpack/include/msgpack/predef/compiler/metrowerks.h new file mode 100644 index 000000000000..2b902b371c81 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/metrowerks.h @@ -0,0 +1,77 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_METROWERKS_H +#define MSGPACK_PREDEF_COMPILER_METROWERKS_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_MWERKS`] + +[@http://en.wikipedia.org/wiki/CodeWarrior Metrowerks CodeWarrior] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__MWERKS__`] [__predef_detection__]] + [[`__CWCC__`] [__predef_detection__]] + + [[`__CWCC__`] [V.R.P]] + [[`__MWERKS__`] [V.R.P >= 4.2.0]] + [[`__MWERKS__`] [9.R.0]] + [[`__MWERKS__`] [8.R.0]] + ] + */ + +#define MSGPACK_COMP_MWERKS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__MWERKS__) || defined(__CWCC__) +# if !defined(MSGPACK_COMP_MWERKS_DETECTION) && defined(__CWCC__) +# define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_PREDEF_MAKE_0X_VRPP(__CWCC__) +# endif +# if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x4200) +# define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_PREDEF_MAKE_0X_VRPP(__MWERKS__) +# endif +# if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3204) // note the "skip": 04->9.3 +# define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER(9,(__MWERKS__)%100-1,0) +# endif +# if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3200) +# define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER(9,(__MWERKS__)%100,0) +# endif +# if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3000) +# define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER(8,(__MWERKS__)%100,0) +# endif +# if !defined(MSGPACK_COMP_MWERKS_DETECTION) +# define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#ifdef MSGPACK_COMP_MWERKS_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_MWERKS_EMULATED MSGPACK_COMP_MWERKS_DETECTION +# else +# undef MSGPACK_COMP_MWERKS +# define MSGPACK_COMP_MWERKS MSGPACK_COMP_MWERKS_DETECTION +# endif +# define MSGPACK_COMP_MWERKS_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_MWERKS_NAME "Metrowerks CodeWarrior" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MWERKS,MSGPACK_COMP_MWERKS_NAME) + +#ifdef MSGPACK_COMP_MWERKS_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MWERKS_EMULATED,MSGPACK_COMP_MWERKS_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/microtec.h b/third_party/msgpack/include/msgpack/predef/compiler/microtec.h new file mode 100644 index 000000000000..bc9c360284ae --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/microtec.h @@ -0,0 +1,53 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_MICROTEC_H +#define MSGPACK_PREDEF_COMPILER_MICROTEC_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_MRI`] + +[@http://www.mentor.com/microtec/ Microtec C/C++] compiler. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`_MRI`] [__predef_detection__]] + ] + */ + +#define MSGPACK_COMP_MRI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(_MRI) +# define MSGPACK_COMP_MRI_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#ifdef MSGPACK_COMP_MRI_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_MRI_EMULATED MSGPACK_COMP_MRI_DETECTION +# else +# undef MSGPACK_COMP_MRI +# define MSGPACK_COMP_MRI MSGPACK_COMP_MRI_DETECTION +# endif +# define MSGPACK_COMP_MRI_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_MRI_NAME "Microtec C/C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MRI,MSGPACK_COMP_MRI_NAME) + +#ifdef MSGPACK_COMP_MRI_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MRI_EMULATED,MSGPACK_COMP_MRI_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/mpw.h b/third_party/msgpack/include/msgpack/predef/compiler/mpw.h new file mode 100644 index 000000000000..81788f9dfdb9 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/mpw.h @@ -0,0 +1,63 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_MPW_H +#define MSGPACK_PREDEF_COMPILER_MPW_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_MPW`] + +[@http://en.wikipedia.org/wiki/Macintosh_Programmer%27s_Workshop MPW C++] compiler. +Version number available as major, and minor. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__MRC__`] [__predef_detection__]] + [[`MPW_C`] [__predef_detection__]] + [[`MPW_CPLUS`] [__predef_detection__]] + + [[`__MRC__`] [V.R.0]] + ] + */ + +#define MSGPACK_COMP_MPW MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__MRC__) || defined(MPW_C) || defined(MPW_CPLUS) +# if !defined(MSGPACK_COMP_MPW_DETECTION) && defined(__MRC__) +# define MSGPACK_COMP_MPW_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRR(__MRC__) +# endif +# if !defined(MSGPACK_COMP_MPW_DETECTION) +# define MSGPACK_COMP_MPW_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#ifdef MSGPACK_COMP_MPW_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_MPW_EMULATED MSGPACK_COMP_MPW_DETECTION +# else +# undef MSGPACK_COMP_MPW +# define MSGPACK_COMP_MPW MSGPACK_COMP_MPW_DETECTION +# endif +# define MSGPACK_COMP_MPW_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_MPW_NAME "MPW C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MPW,MSGPACK_COMP_MPW_NAME) + +#ifdef MSGPACK_COMP_MPW_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MPW_EMULATED,MSGPACK_COMP_MPW_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/palm.h b/third_party/msgpack/include/msgpack/predef/compiler/palm.h new file mode 100644 index 000000000000..0134cd29399c --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/palm.h @@ -0,0 +1,56 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_PALM_H +#define MSGPACK_PREDEF_COMPILER_PALM_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_PALM`] + +Palm C/C++ compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`_PACC_VER`] [__predef_detection__]] + + [[`_PACC_VER`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_PALM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(_PACC_VER) +# define MSGPACK_COMP_PALM_DETECTION MSGPACK_PREDEF_MAKE_0X_VRRPP000(_PACC_VER) +#endif + +#ifdef MSGPACK_COMP_PALM_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_PALM_EMULATED MSGPACK_COMP_PALM_DETECTION +# else +# undef MSGPACK_COMP_PALM +# define MSGPACK_COMP_PALM MSGPACK_COMP_PALM_DETECTION +# endif +# define MSGPACK_COMP_PALM_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_PALM_NAME "Palm C/C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PALM,MSGPACK_COMP_PALM_NAME) + +#ifdef MSGPACK_COMP_PALM_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PALM_EMULATED,MSGPACK_COMP_PALM_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/pgi.h b/third_party/msgpack/include/msgpack/predef/compiler/pgi.h new file mode 100644 index 000000000000..a8399dd37159 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/pgi.h @@ -0,0 +1,60 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_PGI_H +#define MSGPACK_PREDEF_COMPILER_PGI_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_PGI`] + +[@http://en.wikipedia.org/wiki/The_Portland_Group Portland Group C/C++] compiler. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__PGI`] [__predef_detection__]] + + [[`__PGIC__`, `__PGIC_MINOR__`, `__PGIC_PATCHLEVEL__`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_PGI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__PGI) +# if !defined(MSGPACK_COMP_PGI_DETECTION) && (defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__)) +# define MSGPACK_COMP_PGI_DETECTION MSGPACK_VERSION_NUMBER(__PGIC__,__PGIC_MINOR__,__PGIC_PATCHLEVEL__) +# endif +# if !defined(MSGPACK_COMP_PGI_DETECTION) +# define MSGPACK_COMP_PGI_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#ifdef MSGPACK_COMP_PGI_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_PGI_EMULATED MSGPACK_COMP_PGI_DETECTION +# else +# undef MSGPACK_COMP_PGI +# define MSGPACK_COMP_PGI MSGPACK_COMP_PGI_DETECTION +# endif +# define MSGPACK_COMP_PGI_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_PGI_NAME "Portland Group C/C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PGI,MSGPACK_COMP_PGI_NAME) + +#ifdef MSGPACK_COMP_PGI_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PGI_EMULATED,MSGPACK_COMP_PGI_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/sgi_mipspro.h b/third_party/msgpack/include/msgpack/predef/compiler/sgi_mipspro.h new file mode 100644 index 000000000000..673b9bedc605 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/sgi_mipspro.h @@ -0,0 +1,66 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_SGI_MIPSPRO_H +#define MSGPACK_PREDEF_COMPILER_SGI_MIPSPRO_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_SGI`] + +[@http://en.wikipedia.org/wiki/MIPSpro SGI MIPSpro] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__sgi`] [__predef_detection__]] + [[`sgi`] [__predef_detection__]] + + [[`_SGI_COMPILER_VERSION`] [V.R.P]] + [[`_COMPILER_VERSION`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_SGI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__sgi) || defined(sgi) +# if !defined(MSGPACK_COMP_SGI_DETECTION) && defined(_SGI_COMPILER_VERSION) +# define MSGPACK_COMP_SGI_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(_SGI_COMPILER_VERSION) +# endif +# if !defined(MSGPACK_COMP_SGI_DETECTION) && defined(_COMPILER_VERSION) +# define MSGPACK_COMP_SGI_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(_COMPILER_VERSION) +# endif +# if !defined(MSGPACK_COMP_SGI_DETECTION) +# define MSGPACK_COMP_SGI_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#ifdef MSGPACK_COMP_SGI_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_SGI_EMULATED MSGPACK_COMP_SGI_DETECTION +# else +# undef MSGPACK_COMP_SGI +# define MSGPACK_COMP_SGI MSGPACK_COMP_SGI_DETECTION +# endif +# define MSGPACK_COMP_SGI_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_SGI_NAME "SGI MIPSpro" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SGI,MSGPACK_COMP_SGI_NAME) + +#ifdef MSGPACK_COMP_SGI_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SGI_EMULATED,MSGPACK_COMP_SGI_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/sunpro.h b/third_party/msgpack/include/msgpack/predef/compiler/sunpro.h new file mode 100644 index 000000000000..0b77334eded2 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/sunpro.h @@ -0,0 +1,76 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_SUNPRO_H +#define MSGPACK_PREDEF_COMPILER_SUNPRO_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_SUNPRO`] + +[@http://en.wikipedia.org/wiki/Oracle_Solaris_Studio Oracle Solaris Studio] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__SUNPRO_CC`] [__predef_detection__]] + [[`__SUNPRO_C`] [__predef_detection__]] + + [[`__SUNPRO_CC`] [V.R.P]] + [[`__SUNPRO_C`] [V.R.P]] + [[`__SUNPRO_CC`] [VV.RR.P]] + [[`__SUNPRO_C`] [VV.RR.P]] + ] + */ + +#define MSGPACK_COMP_SUNPRO MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__SUNPRO_CC) || defined(__SUNPRO_C) +# if !defined(MSGPACK_COMP_SUNPRO_DETECTION) && defined(__SUNPRO_CC) +# if (__SUNPRO_CC < 0x5100) +# define MSGPACK_COMP_SUNPRO_DETECTION MSGPACK_PREDEF_MAKE_0X_VRP(__SUNPRO_CC) +# else +# define MSGPACK_COMP_SUNPRO_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRRP(__SUNPRO_CC) +# endif +# endif +# if !defined(MSGPACK_COMP_SUNPRO_DETECTION) && defined(__SUNPRO_C) +# if (__SUNPRO_C < 0x5100) +# define MSGPACK_COMP_SUNPRO_DETECTION MSGPACK_PREDEF_MAKE_0X_VRP(__SUNPRO_C) +# else +# define MSGPACK_COMP_SUNPRO_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRRP(__SUNPRO_C) +# endif +# endif +# if !defined(MSGPACK_COMP_SUNPRO_DETECTION) +# define MSGPACK_COMP_SUNPRO_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#ifdef MSGPACK_COMP_SUNPRO_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_SUNPRO_EMULATED MSGPACK_COMP_SUNPRO_DETECTION +# else +# undef MSGPACK_COMP_SUNPRO +# define MSGPACK_COMP_SUNPRO MSGPACK_COMP_SUNPRO_DETECTION +# endif +# define MSGPACK_COMP_SUNPRO_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_SUNPRO_NAME "Oracle Solaris Studio" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SUNPRO,MSGPACK_COMP_SUNPRO_NAME) + +#ifdef MSGPACK_COMP_SUNPRO_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SUNPRO_EMULATED,MSGPACK_COMP_SUNPRO_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/tendra.h b/third_party/msgpack/include/msgpack/predef/compiler/tendra.h new file mode 100644 index 000000000000..e90df56006b8 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/tendra.h @@ -0,0 +1,53 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_TENDRA_H +#define MSGPACK_PREDEF_COMPILER_TENDRA_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_TENDRA`] + +[@http://en.wikipedia.org/wiki/TenDRA_Compiler TenDRA C/C++] compiler. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__TenDRA__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_COMP_TENDRA MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__TenDRA__) +# define MSGPACK_COMP_TENDRA_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#ifdef MSGPACK_COMP_TENDRA_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_TENDRA_EMULATED MSGPACK_COMP_TENDRA_DETECTION +# else +# undef MSGPACK_COMP_TENDRA +# define MSGPACK_COMP_TENDRA MSGPACK_COMP_TENDRA_DETECTION +# endif +# define MSGPACK_COMP_TENDRA_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_TENDRA_NAME "TenDRA C/C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_TENDRA,MSGPACK_COMP_TENDRA_NAME) + +#ifdef MSGPACK_COMP_TENDRA_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_TENDRA_EMULATED,MSGPACK_COMP_TENDRA_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/visualc.h b/third_party/msgpack/include/msgpack/predef/compiler/visualc.h new file mode 100644 index 000000000000..547a5bf19741 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/visualc.h @@ -0,0 +1,91 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_VISUALC_H +#define MSGPACK_PREDEF_COMPILER_VISUALC_H + +/* Other compilers that emulate this one need to be detected first. */ + +#include + +#include +#include + +/*` +[heading `MSGPACK_COMP_MSVC`] + +[@http://en.wikipedia.org/wiki/Visual_studio Microsoft Visual C/C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`_MSC_VER`] [__predef_detection__]] + + [[`_MSC_FULL_VER`] [V.R.P]] + [[`_MSC_VER`] [V.R.0]] + ] + */ + +#define MSGPACK_COMP_MSVC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(_MSC_VER) +# if !defined (_MSC_FULL_VER) +# define MSGPACK_COMP_MSVC_BUILD 0 +# else + /* how many digits does the build number have? */ +# if _MSC_FULL_VER / 10000 == _MSC_VER + /* four digits */ +# define MSGPACK_COMP_MSVC_BUILD (_MSC_FULL_VER % 10000) +# elif _MSC_FULL_VER / 100000 == _MSC_VER + /* five digits */ +# define MSGPACK_COMP_MSVC_BUILD (_MSC_FULL_VER % 100000) +# else +# error "Cannot determine build number from _MSC_FULL_VER" +# endif +# endif + /* + VS2014 was skipped in the release sequence for MS. Which + means that the compiler and VS product versions are no longer + in sync. Hence we need to use different formulas for + mapping from MSC version to VS product version. + */ +# if (_MSC_VER >= 1900) +# define MSGPACK_COMP_MSVC_DETECTION MSGPACK_VERSION_NUMBER(\ + _MSC_VER/100-5,\ + _MSC_VER%100,\ + MSGPACK_COMP_MSVC_BUILD) +# else +# define MSGPACK_COMP_MSVC_DETECTION MSGPACK_VERSION_NUMBER(\ + _MSC_VER/100-6,\ + _MSC_VER%100,\ + MSGPACK_COMP_MSVC_BUILD) +# endif +#endif + +#ifdef MSGPACK_COMP_MSVC_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_MSVC_EMULATED MSGPACK_COMP_MSVC_DETECTION +# else +# undef MSGPACK_COMP_MSVC +# define MSGPACK_COMP_MSVC MSGPACK_COMP_MSVC_DETECTION +# endif +# define MSGPACK_COMP_MSVC_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_MSVC_NAME "Microsoft Visual C/C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MSVC,MSGPACK_COMP_MSVC_NAME) + +#ifdef MSGPACK_COMP_MSVC_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MSVC_EMULATED,MSGPACK_COMP_MSVC_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/compiler/watcom.h b/third_party/msgpack/include/msgpack/predef/compiler/watcom.h new file mode 100644 index 000000000000..6e3022ac47b1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/compiler/watcom.h @@ -0,0 +1,56 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_WATCOM_H +#define MSGPACK_PREDEF_COMPILER_WATCOM_H + +#include +#include + +/*` +[heading `MSGPACK_COMP_WATCOM`] + +[@http://en.wikipedia.org/wiki/Watcom Watcom C++] compiler. +Version number available as major, and minor. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__WATCOMC__`] [__predef_detection__]] + + [[`__WATCOMC__`] [V.R.P]] + ] + */ + +#define MSGPACK_COMP_WATCOM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__WATCOMC__) +# define MSGPACK_COMP_WATCOM_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR(__WATCOMC__) +#endif + +#ifdef MSGPACK_COMP_WATCOM_DETECTION +# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) +# define MSGPACK_COMP_WATCOM_EMULATED MSGPACK_COMP_WATCOM_DETECTION +# else +# undef MSGPACK_COMP_WATCOM +# define MSGPACK_COMP_WATCOM MSGPACK_COMP_WATCOM_DETECTION +# endif +# define MSGPACK_COMP_WATCOM_AVAILABLE +# include +#endif + +#define MSGPACK_COMP_WATCOM_NAME "Watcom C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_WATCOM,MSGPACK_COMP_WATCOM_NAME) + +#ifdef MSGPACK_COMP_WATCOM_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_WATCOM_EMULATED,MSGPACK_COMP_WATCOM_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/detail/_cassert.h b/third_party/msgpack/include/msgpack/predef/detail/_cassert.h new file mode 100644 index 000000000000..155ebebdb9f9 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/detail/_cassert.h @@ -0,0 +1,17 @@ +/* +Copyright Rene Rivera 2011-2012 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_DETAIL__CASSERT_H +#define MSGPACK_PREDEF_DETAIL__CASSERT_H + +#if defined(__cplusplus) +#include +#else +#include +#endif + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/detail/_exception.h b/third_party/msgpack/include/msgpack/predef/detail/_exception.h new file mode 100644 index 000000000000..ca157b953737 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/detail/_exception.h @@ -0,0 +1,15 @@ +/* +Copyright Rene Rivera 2011-2012 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_DETAIL__EXCEPTION_H +#define MSGPACK_PREDEF_DETAIL__EXCEPTION_H + +#if defined(__cplusplus) +#include +#endif + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/detail/comp_detected.h b/third_party/msgpack/include/msgpack/predef/detail/comp_detected.h new file mode 100644 index 000000000000..3996fd3979f1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/detail/comp_detected.h @@ -0,0 +1,10 @@ +/* +Copyright Rene Rivera 2014 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_DETAIL_COMP_DETECTED +#define MSGPACK_PREDEF_DETAIL_COMP_DETECTED 1 +#endif diff --git a/third_party/msgpack/include/msgpack/predef/detail/endian_compat.h b/third_party/msgpack/include/msgpack/predef/detail/endian_compat.h new file mode 100644 index 000000000000..1b4a66581cdd --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/detail/endian_compat.h @@ -0,0 +1,26 @@ +/* +Copyright Rene Rivera 2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_DETAIL_ENDIAN_COMPAT_H +#define MSGPACK_PREDEF_DETAIL_ENDIAN_COMPAT_H + +#include + +#if MSGPACK_ENDIAN_BIG_BYTE +# define MSGPACK_BIG_ENDIAN +# define MSGPACK_BYTE_ORDER 4321 +#endif +#if MSGPACK_ENDIAN_LITTLE_BYTE +# define MSGPACK_LITTLE_ENDIAN +# define MSGPACK_BYTE_ORDER 1234 +#endif +#if MSGPACK_ENDIAN_LITTLE_WORD +# define MSGPACK_PDP_ENDIAN +# define MSGPACK_BYTE_ORDER 2134 +#endif + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/detail/os_detected.h b/third_party/msgpack/include/msgpack/predef/detail/os_detected.h new file mode 100644 index 000000000000..f9f23b787e7a --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/detail/os_detected.h @@ -0,0 +1,10 @@ +/* +Copyright Rene Rivera 2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_DETAIL_OS_DETECTED +#define MSGPACK_PREDEF_DETAIL_OS_DETECTED 1 +#endif diff --git a/third_party/msgpack/include/msgpack/predef/detail/platform_detected.h b/third_party/msgpack/include/msgpack/predef/detail/platform_detected.h new file mode 100644 index 000000000000..782b3a291dcf --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/detail/platform_detected.h @@ -0,0 +1,10 @@ +/* +Copyright Rene Rivera 2014 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_DETAIL_PLAT_DETECTED +#define MSGPACK_PREDEF_DETAIL_PLAT_DETECTED 1 +#endif diff --git a/third_party/msgpack/include/msgpack/predef/detail/test.h b/third_party/msgpack/include/msgpack/predef/detail/test.h new file mode 100644 index 000000000000..1414060350f7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/detail/test.h @@ -0,0 +1,17 @@ +/* +Copyright Rene Rivera 2011-2012 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_DETAIL_TEST_H +#define MSGPACK_PREDEF_DETAIL_TEST_H + +#if !defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) + +#define MSGPACK_PREDEF_DECLARE_TEST(x,s) + +#endif + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/detail/test_def.h b/third_party/msgpack/include/msgpack/predef/detail/test_def.h new file mode 100644 index 000000000000..924c1e5f2d1b --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/detail/test_def.h @@ -0,0 +1,71 @@ +/* +Copyright Rene Rivera 2011-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ +#include + +#define MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS + +void * add_predef_entry(const char * name, const char * description, unsigned value) +#undef MSGPACK_PREDEF_DECLARE_TEST +#define MSGPACK_PREDEF_DECLARE_TEST(x,s) void predef_entry_##x() { add_predef_entry(#x, s, x) } +#include + +#undef MSGPACK_PREDEF_DECLARE_TEST +#define MSGPACK_PREDEF_DECLARE_TEST(x,s) predef_entry_##x() +void create_predef_entries() +{ +#include +} + +#ifdef __cplusplus +#include +#include +#include +using namespace std +#else +#include +#include +#include +#endif + +typedef struct predef_info +{ + const char * name + const char * description + unsigned value +} predef_info + +#ifdef __cplusplus +using namespace std +#endif + +unsigned generated_predef_info_count = 0 +predef_info* generated_predef_info = 0 +void * add_predef_entry(const char * name, const char * description, unsigned value) +{ + if (0 == generated_predef_info_count) + { + generated_predef_info_count = 1 + generated_predef_info = (predef_info*)malloc(sizeof(predef_info)) + } + else + { + generated_predef_info_count += 1 + generated_predef_info = (predef_info*)realloc(generated_predef_info, + generated_predef_info_count*sizeof(predef_info)) + } + generated_predef_info[generated_predef_info_count-1].name = name + generated_predef_info[generated_predef_info_count-1].description = description + generated_predef_info[generated_predef_info_count-1].value = value + return 0 +} + +int predef_info_compare(const void * a, const void * b) +{ + const predef_info * i = (const predef_info *)a + const predef_info * j = (const predef_info *)b + return strcmp(i->name,j->name) +} diff --git a/third_party/msgpack/include/msgpack/predef/hardware.h b/third_party/msgpack/include/msgpack/predef/hardware.h new file mode 100644 index 000000000000..328409839d80 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/hardware.h @@ -0,0 +1,16 @@ +/* +Copyright Charly Chevalier 2015 +Copyright Joel Falcou 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#if !defined(MSGPACK_PREDEF_HARDWARE_H) || defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) +#ifndef MSGPACK_PREDEF_HARDWARE_H +#define MSGPACK_PREDEF_HARDWARE_H +#endif + +#include + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/hardware/simd.h b/third_party/msgpack/include/msgpack/predef/hardware/simd.h new file mode 100644 index 000000000000..30489d22b949 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/hardware/simd.h @@ -0,0 +1,119 @@ +/* +Copyright Charly Chevalier 2015 +Copyright Joel Falcou 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#include +#include +#include +#include + +#ifndef MSGPACK_PREDEF_HARDWARE_SIMD_H +#define MSGPACK_PREDEF_HARDWARE_SIMD_H + +#include + +/*` + [section Using the `MSGPACK_HW_SIMD_*` predefs] + [include ../doc/hardware_simd.qbk] + [endsect] + + [/ --------------------------- ] + + [section `MSGPACK_HW_SIMD_*`] + + [heading `MSGPACK_HW_SIMD`] + + The SIMD extension detected for a specific architectures. + Version number depends on the detected extension. + + [table + [[__predef_symbol__] [__predef_version__]] + + [[`MSGPACK_HW_SIMD_X86_AVAILABLE`] [__predef_detection__]] + [[`MSGPACK_HW_SIMD_X86_AMD_AVAILABLE`] [__predef_detection__]] + [[`MSGPACK_HW_SIMD_ARM_AVAILABLE`] [__predef_detection__]] + [[`MSGPACK_HW_SIMD_PPC_AVAILABLE`] [__predef_detection__]] + ] + + [include ../include/msgpack/predef/hardware/simd/x86.h] + [include ../include/msgpack/predef/hardware/simd/x86_amd.h] + [include ../include/msgpack/predef/hardware/simd/arm.h] + [include ../include/msgpack/predef/hardware/simd/ppc.h] + + [endsect] + + [/ --------------------------- ] + + [section `MSGPACK_HW_SIMD_X86_*_VERSION`] + [include ../include/msgpack/predef/hardware/simd/x86/versions.h] + [endsect] + + [section `MSGPACK_HW_SIMD_X86_AMD_*_VERSION`] + [include ../include/msgpack/predef/hardware/simd/x86_amd/versions.h] + [endsect] + + [section `MSGPACK_HW_SIMD_ARM_*_VERSION`] + [include ../include/msgpack/predef/hardware/simd/arm/versions.h] + [endsect] + + [section `MSGPACK_HW_SIMD_PPC_*_VERSION`] + [include ../include/msgpack/predef/hardware/simd/ppc/versions.h] + [endsect] + + */ + +// We check if SIMD extension of multiples architectures have been detected, +// if yes, then this is an error! +// +// NOTE: _X86_AMD implies _X86, so there is no need to check for it here! +// +#if defined(MSGPACK_HW_SIMD_ARM_AVAILABLE) && defined(MSGPACK_HW_SIMD_PPC_AVAILABLE) ||\ + defined(MSGPACK_HW_SIMD_ARM_AVAILABLE) && defined(MSGPACK_HW_SIMD_X86_AVAILABLE) ||\ + defined(MSGPACK_HW_SIMD_PPC_AVAILABLE) && defined(MSGPACK_HW_SIMD_X86_AVAILABLE) +# error "Multiple SIMD architectures detected, this cannot happen!" +#endif + +#if defined(MSGPACK_HW_SIMD_X86_AVAILABLE) && defined(MSGPACK_HW_SIMD_X86_AMD_AVAILABLE) + // If both standard _X86 and _X86_AMD are available, + // then take the biggest version of the two! +# if MSGPACK_HW_SIMD_X86 >= MSGPACK_HW_SIMD_X86_AMD +# define MSGPACK_HW_SIMD MSGPACK_HW_SIMD_X86 +# else +# define MSGPACK_HW_SIMD MSGPACK_HW_SIMD_X86_AMD +# endif +#endif + +#if !defined(MSGPACK_HW_SIMD) + // At this point, only one of these two is defined +# if defined(MSGPACK_HW_SIMD_X86_AVAILABLE) +# define MSGPACK_HW_SIMD MSGPACK_HW_SIMD_X86 +# endif +# if defined(MSGPACK_HW_SIMD_X86_AMD_AVAILABLE) +# define MSGPACK_HW_SIMD MSGPACK_HW_SIMD_X86_AMD +# endif +#endif + +#if defined(MSGPACK_HW_SIMD_ARM_AVAILABLE) +# define MSGPACK_HW_SIMD MSGPACK_HW_SIMD_ARM +#endif + +#if defined(MSGPACK_HW_SIMD_PPC_AVAILABLE) +# define MSGPACK_HW_SIMD MSGPACK_HW_SIMD_PPC +#endif + +#if defined(MSGPACK_HW_SIMD) +# define MSGPACK_HW_SIMD_AVAILABLE +#else +# define MSGPACK_HW_SIMD MSGPACK_VERSION_NUMBER_NOT_AVAILABLE +#endif + +#define MSGPACK_HW_SIMD_NAME "Hardware SIMD" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_HW_SIMD, MSGPACK_HW_SIMD_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/hardware/simd/arm.h b/third_party/msgpack/include/msgpack/predef/hardware/simd/arm.h new file mode 100644 index 000000000000..0c22dbdc1f22 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/hardware/simd/arm.h @@ -0,0 +1,57 @@ +/* +Copyright Charly Chevalier 2015 +Copyright Joel Falcou 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_HARDWARE_SIMD_ARM_H +#define MSGPACK_PREDEF_HARDWARE_SIMD_ARM_H + +#include +#include + +/*` + [heading `MSGPACK_HW_SIMD_ARM`] + + The SIMD extension for ARM (*if detected*). + Version number depends on the most recent detected extension. + + [table + [[__predef_symbol__] [__predef_version__]] + + [[`__ARM_NEON__`] [__predef_detection__]] + [[`__aarch64__`] [__predef_detection__]] + [[`_M_ARM`] [__predef_detection__]] + ] + + [table + [[__predef_symbol__] [__predef_version__]] + + [[`__ARM_NEON__`] [MSGPACK_HW_SIMD_ARM_NEON_VERSION]] + [[`__aarch64__`] [MSGPACK_HW_SIMD_ARM_NEON_VERSION]] + [[`_M_ARM`] [MSGPACK_HW_SIMD_ARM_NEON_VERSION]] + ] + + */ + +#define MSGPACK_HW_SIMD_ARM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#undef MSGPACK_HW_SIMD_ARM +#if !defined(MSGPACK_HW_SIMD_ARM) && (defined(__ARM_NEON__) || defined(__aarch64__) || defined (_M_ARM)) +# define MSGPACK_HW_SIMD_ARM MSGPACK_HW_SIMD_ARM_NEON_VERSION +#endif + +#if !defined(MSGPACK_HW_SIMD_ARM) +# define MSGPACK_HW_SIMD_ARM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE +#else +# define MSGPACK_HW_SIMD_ARM_AVAILABLE +#endif + +#define MSGPACK_HW_SIMD_ARM_NAME "ARM SIMD" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_HW_SIMD_ARM, MSGPACK_HW_SIMD_ARM_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/hardware/simd/arm/versions.h b/third_party/msgpack/include/msgpack/predef/hardware/simd/arm/versions.h new file mode 100644 index 000000000000..6df71bd01011 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/hardware/simd/arm/versions.h @@ -0,0 +1,32 @@ +/* +Copyright Charly Chevalier 2015 +Copyright Joel Falcou 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_HARDWARE_SIMD_ARM_VERSIONS_H +#define MSGPACK_PREDEF_HARDWARE_SIMD_ARM_VERSIONS_H + +#include + +/*` + Those defines represent ARM SIMD extensions versions. + + [note You *MUST* compare them with the predef `MSGPACK_HW_SIMD_ARM`.] + */ + +// --------------------------------- + +/*` + [heading `MSGPACK_HW_SIMD_ARM_NEON_VERSION`] + + The [@https://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] + ARM extension version number. + + Version number is: *1.0.0*. + */ +#define MSGPACK_HW_SIMD_ARM_NEON_VERSION MSGPACK_VERSION_NUMBER(1, 0, 0) + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/hardware/simd/ppc.h b/third_party/msgpack/include/msgpack/predef/hardware/simd/ppc.h new file mode 100644 index 000000000000..708cbbaffa8a --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/hardware/simd/ppc.h @@ -0,0 +1,69 @@ +/* +Copyright Charly Chevalier 2015 +Copyright Joel Falcou 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_HARDWARE_SIMD_PPC_H +#define MSGPACK_PREDEF_HARDWARE_SIMD_PPC_H + +#include +#include + +/*` + [heading `MSGPACK_HW_SIMD_PPC`] + + The SIMD extension for PowerPC (*if detected*). + Version number depends on the most recent detected extension. + + [table + [[__predef_symbol__] [__predef_version__]] + + [[`__VECTOR4DOUBLE__`] [__predef_detection__]] + + [[`__ALTIVEC__`] [__predef_detection__]] + [[`__VEC__`] [__predef_detection__]] + + [[`__VSX__`] [__predef_detection__]] + ] + + [table + [[__predef_symbol__] [__predef_version__]] + + [[`__VECTOR4DOUBLE__`] [MSGPACK_HW_SIMD_PPC_QPX_VERSION]] + + [[`__ALTIVEC__`] [MSGPACK_HW_SIMD_PPC_VMX_VERSION]] + [[`__VEC__`] [MSGPACK_HW_SIMD_PPC_VMX_VERSION]] + + [[`__VSX__`] [MSGPACK_HW_SIMD_PPC_VSX_VERSION]] + ] + + */ + +#define MSGPACK_HW_SIMD_PPC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#undef MSGPACK_HW_SIMD_PPC +#if !defined(MSGPACK_HW_SIMD_PPC) && defined(__VECTOR4DOUBLE__) +# define MSGPACK_HW_SIMD_PPC MSGPACK_HW_SIMD_PPC_QPX_VERSION +#endif +#if !defined(MSGPACK_HW_SIMD_PPC) && defined(__VSX__) +# define MSGPACK_HW_SIMD_PPC MSGPACK_HW_SIMD_PPC_VSX_VERSION +#endif +#if !defined(MSGPACK_HW_SIMD_PPC) && (defined(__ALTIVEC__) || defined(__VEC__)) +# define MSGPACK_HW_SIMD_PPC MSGPACK_HW_SIMD_PPC_VMX_VERSION +#endif + +#if !defined(MSGPACK_HW_SIMD_PPC) +# define MSGPACK_HW_SIMD_PPC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE +#else +# define MSGPACK_HW_SIMD_PPC_AVAILABLE +#endif + +#define MSGPACK_HW_SIMD_PPC_NAME "PPC SIMD" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_HW_SIMD_PPC, MSGPACK_HW_SIMD_PPC_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/hardware/simd/ppc/versions.h b/third_party/msgpack/include/msgpack/predef/hardware/simd/ppc/versions.h new file mode 100644 index 000000000000..0ef40f9bcf95 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/hardware/simd/ppc/versions.h @@ -0,0 +1,51 @@ +/* +Copyright Charly Chevalier 2015 +Copyright Joel Falcou 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_HARDWARE_SIMD_PPC_VERSIONS_H +#define MSGPACK_PREDEF_HARDWARE_SIMD_PPC_VERSIONS_H + +#include + +/*` + Those defines represent Power PC SIMD extensions versions. + + [note You *MUST* compare them with the predef `MSGPACK_HW_SIMD_PPC`.] + */ + +// --------------------------------- + +/*` + [heading `MSGPACK_HW_SIMD_PPC_VMX_VERSION`] + + The [@https://en.wikipedia.org/wiki/AltiVec#VMX128 VMX] powerpc extension + version number. + + Version number is: *1.0.0*. + */ +#define MSGPACK_HW_SIMD_PPC_VMX_VERSION MSGPACK_VERSION_NUMBER(1, 0, 0) + +/*` + [heading `MSGPACK_HW_SIMD_PPC_VSX_VERSION`] + + The [@https://en.wikipedia.org/wiki/AltiVec#VSX VSX] powerpc extension version + number. + + Version number is: *1.1.0*. + */ +#define MSGPACK_HW_SIMD_PPC_VSX_VERSION MSGPACK_VERSION_NUMBER(1, 1, 0) + +/*` + [heading `MSGPACK_HW_SIMD_PPC_QPX_VERSION`] + + The QPX powerpc extension version number. + + Version number is: *2.0.0*. + */ +#define MSGPACK_HW_SIMD_PPC_QPX_VERSION MSGPACK_VERSION_NUMBER(2, 0, 0) + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/hardware/simd/x86.h b/third_party/msgpack/include/msgpack/predef/hardware/simd/x86.h new file mode 100644 index 000000000000..a3e56168c30c --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/hardware/simd/x86.h @@ -0,0 +1,123 @@ +/* +Copyright Charly Chevalier 2015 +Copyright Joel Falcou 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_HARDWARE_SIMD_X86_H +#define MSGPACK_PREDEF_HARDWARE_SIMD_X86_H + +#include +#include + +/*` + [heading `MSGPACK_HW_SIMD_X86`] + + The SIMD extension for x86 (*if detected*). + Version number depends on the most recent detected extension. + + [table + [[__predef_symbol__] [__predef_version__]] + + [[`__SSE__`] [__predef_detection__]] + [[`_M_X64`] [__predef_detection__]] + [[`_M_IX86_FP >= 1`] [__predef_detection__]] + + [[`__SSE2__`] [__predef_detection__]] + [[`_M_X64`] [__predef_detection__]] + [[`_M_IX86_FP >= 2`] [__predef_detection__]] + + [[`__SSE3__`] [__predef_detection__]] + + [[`__SSSE3__`] [__predef_detection__]] + + [[`__SSE4_1__`] [__predef_detection__]] + + [[`__SSE4_2__`] [__predef_detection__]] + + [[`__AVX__`] [__predef_detection__]] + + [[`__FMA__`] [__predef_detection__]] + + [[`__AVX2__`] [__predef_detection__]] + ] + + [table + [[__predef_symbol__] [__predef_version__]] + + [[`__SSE__`] [MSGPACK_HW_SIMD_X86_SSE_VERSION]] + [[`_M_X64`] [MSGPACK_HW_SIMD_X86_SSE_VERSION]] + [[`_M_IX86_FP >= 1`] [MSGPACK_HW_SIMD_X86_SSE_VERSION]] + + [[`__SSE2__`] [MSGPACK_HW_SIMD_X86_SSE2_VERSION]] + [[`_M_X64`] [MSGPACK_HW_SIMD_X86_SSE2_VERSION]] + [[`_M_IX86_FP >= 2`] [MSGPACK_HW_SIMD_X86_SSE2_VERSION]] + + [[`__SSE3__`] [MSGPACK_HW_SIMD_X86_SSE3_VERSION]] + + [[`__SSSE3__`] [MSGPACK_HW_SIMD_X86_SSSE3_VERSION]] + + [[`__SSE4_1__`] [MSGPACK_HW_SIMD_X86_SSE4_1_VERSION]] + + [[`__SSE4_2__`] [MSGPACK_HW_SIMD_X86_SSE4_2_VERSION]] + + [[`__AVX__`] [MSGPACK_HW_SIMD_X86_AVX_VERSION]] + + [[`__FMA__`] [MSGPACK_HW_SIMD_X86_FMA3_VERSION]] + + [[`__AVX2__`] [MSGPACK_HW_SIMD_X86_AVX2_VERSION]] + ] + + */ + +#define MSGPACK_HW_SIMD_X86 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#undef MSGPACK_HW_SIMD_X86 +#if !defined(MSGPACK_HW_SIMD_X86) && defined(__MIC__) +# define MSGPACK_HW_SIMD_X86 MSGPACK_HW_SIMD_X86_MIC_VERSION +#endif +#if !defined(MSGPACK_HW_SIMD_X86) && defined(__AVX2__) +# define MSGPACK_HW_SIMD_X86 MSGPACK_HW_SIMD_X86_AVX2_VERSION +#endif +#if !defined(MSGPACK_HW_SIMD_X86) && defined(__AVX__) +# define MSGPACK_HW_SIMD_X86 MSGPACK_HW_SIMD_X86_AVX_VERSION +#endif +#if !defined(MSGPACK_HW_SIMD_X86) && defined(__FMA__) +# define MSGPACK_HW_SIMD_X86 MSGPACK_HW_SIMD_X86_FMA_VERSION +#endif +#if !defined(MSGPACK_HW_SIMD_X86) && defined(__SSE4_2__) +# define MSGPACK_HW_SIMD_X86 MSGPACK_HW_SIMD_X86_SSE4_2_VERSION +#endif +#if !defined(MSGPACK_HW_SIMD_X86) && defined(__SSE4_1__) +# define MSGPACK_HW_SIMD_X86 MSGPACK_HW_SIMD_X86_SSE4_1_VERSION +#endif +#if !defined(MSGPACK_HW_SIMD_X86) && defined(__SSSE3__) +# define MSGPACK_HW_SIMD_X86 MSGPACK_HW_SIMD_X86_SSSE3_VERSION +#endif +#if !defined(MSGPACK_HW_SIMD_X86) && defined(__SSE3__) +# define MSGPACK_HW_SIMD_X86 MSGPACK_HW_SIMD_X86_SSE3_VERSION +#endif +#if !defined(MSGPACK_HW_SIMD_X86) && (defined(__SSE2__) || defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 2)) +# define MSGPACK_HW_SIMD_X86 MSGPACK_HW_SIMD_X86_SSE2_VERSION +#endif +#if !defined(MSGPACK_HW_SIMD_X86) && (defined(__SSE__) || defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 1)) +# define MSGPACK_HW_SIMD_X86 MSGPACK_HW_SIMD_X86_SSE_VERSION +#endif +#if !defined(MSGPACK_HW_SIMD_X86) && defined(__MMX__) +# define MSGPACK_HW_SIMD_X86 MSGPACK_HW_SIMD_X86_MMX_VERSION +#endif + +#if !defined(MSGPACK_HW_SIMD_X86) +# define MSGPACK_HW_SIMD_X86 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE +#else +# define MSGPACK_HW_SIMD_X86_AVAILABLE +#endif + +#define MSGPACK_HW_SIMD_X86_NAME "x86 SIMD" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_HW_SIMD_X86, MSGPACK_HW_SIMD_X86_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/hardware/simd/x86/versions.h b/third_party/msgpack/include/msgpack/predef/hardware/simd/x86/versions.h new file mode 100644 index 000000000000..a9f965071af6 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/hardware/simd/x86/versions.h @@ -0,0 +1,129 @@ +/* +Copyright Charly Chevalier 2015 +Copyright Joel Falcou 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_HARDWARE_SIMD_X86_VERSIONS_H +#define MSGPACK_PREDEF_HARDWARE_SIMD_X86_VERSIONS_H + +#include + +/*` + Those defines represent x86 SIMD extensions versions. + + [note You *MUST* compare them with the predef `MSGPACK_HW_SIMD_X86`.] + */ + +// --------------------------------- + +/*` + [heading `MSGPACK_HW_SIMD_X86_MMX_VERSION`] + + The [@https://en.wikipedia.org/wiki/MMX_(instruction_set) MMX] x86 extension + version number. + + Version number is: *0.99.0*. + */ +#define MSGPACK_HW_SIMD_X86_MMX_VERSION MSGPACK_VERSION_NUMBER(0, 99, 0) + +/*` + [heading `MSGPACK_HW_SIMD_X86_SSE_VERSION`] + + The [@https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions SSE] x86 extension + version number. + + Version number is: *1.0.0*. + */ +#define MSGPACK_HW_SIMD_X86_SSE_VERSION MSGPACK_VERSION_NUMBER(1, 0, 0) + +/*` + [heading `MSGPACK_HW_SIMD_X86_SSE2_VERSION`] + + The [@https://en.wikipedia.org/wiki/SSE2 SSE2] x86 extension version number. + + Version number is: *2.0.0*. + */ +#define MSGPACK_HW_SIMD_X86_SSE2_VERSION MSGPACK_VERSION_NUMBER(2, 0, 0) + +/*` + [heading `MSGPACK_HW_SIMD_X86_SSE3_VERSION`] + + The [@https://en.wikipedia.org/wiki/SSE3 SSE3] x86 extension version number. + + Version number is: *3.0.0*. + */ +#define MSGPACK_HW_SIMD_X86_SSE3_VERSION MSGPACK_VERSION_NUMBER(3, 0, 0) + +/*` + [heading `MSGPACK_HW_SIMD_X86_SSSE3_VERSION`] + + The [@https://en.wikipedia.org/wiki/SSSE3 SSSE3] x86 extension version number. + + Version number is: *3.1.0*. + */ +#define MSGPACK_HW_SIMD_X86_SSSE3_VERSION MSGPACK_VERSION_NUMBER(3, 1, 0) + +/*` + [heading `MSGPACK_HW_SIMD_X86_SSE4_1_VERSION`] + + The [@https://en.wikipedia.org/wiki/SSE4#SSE4.1 SSE4_1] x86 extension version + number. + + Version number is: *4.1.0*. + */ +#define MSGPACK_HW_SIMD_X86_SSE4_1_VERSION MSGPACK_VERSION_NUMBER(4, 1, 0) + +/*` + [heading `MSGPACK_HW_SIMD_X86_SSE4_2_VERSION`] + + The [@https://en.wikipedia.org/wiki/SSE4##SSE4.2 SSE4_2] x86 extension version + number. + + Version number is: *4.2.0*. + */ +#define MSGPACK_HW_SIMD_X86_SSE4_2_VERSION MSGPACK_VERSION_NUMBER(4, 2, 0) + +/*` + [heading `MSGPACK_HW_SIMD_X86_AVX_VERSION`] + + The [@https://en.wikipedia.org/wiki/Advanced_Vector_Extensions AVX] x86 + extension version number. + + Version number is: *5.0.0*. + */ +#define MSGPACK_HW_SIMD_X86_AVX_VERSION MSGPACK_VERSION_NUMBER(5, 0, 0) + +/*` + [heading `MSGPACK_HW_SIMD_X86_FMA3_VERSION`] + + The [@https://en.wikipedia.org/wiki/FMA_instruction_set FMA3] x86 extension + version number. + + Version number is: *5.2.0*. + */ +#define MSGPACK_HW_SIMD_X86_FMA3_VERSION MSGPACK_VERSION_NUMBER(5, 2, 0) + +/*` + [heading `MSGPACK_HW_SIMD_X86_AVX2_VERSION`] + + The [@https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2 AVX2] + x86 extension version number. + + Version number is: *5.3.0*. + */ +#define MSGPACK_HW_SIMD_X86_AVX2_VERSION MSGPACK_VERSION_NUMBER(5, 3, 0) + +/*` + [heading `MSGPACK_HW_SIMD_X86_MIC_VERSION`] + + The [@https://en.wikipedia.org/wiki/Xeon_Phi MIC] (Xeon Phi) x86 extension + version number. + + Version number is: *9.0.0*. + */ +#define MSGPACK_HW_SIMD_X86_MIC_VERSION MSGPACK_VERSION_NUMBER(9, 0, 0) + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/hardware/simd/x86_amd.h b/third_party/msgpack/include/msgpack/predef/hardware/simd/x86_amd.h new file mode 100644 index 000000000000..6ea56714ea49 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/hardware/simd/x86_amd.h @@ -0,0 +1,87 @@ +/* +Copyright Charly Chevalier 2015 +Copyright Joel Falcou 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_HARDWARE_SIMD_X86_AMD_H +#define MSGPACK_PREDEF_HARDWARE_SIMD_X86_AMD_H + +#include +#include + +/*` + [heading `MSGPACK_HW_SIMD_X86_AMD`] + + The SIMD extension for x86 (AMD) (*if detected*). + Version number depends on the most recent detected extension. + + [table + [[__predef_symbol__] [__predef_version__]] + + [[`__SSE4A__`] [__predef_detection__]] + + [[`__FMA4__`] [__predef_detection__]] + + [[`__XOP__`] [__predef_detection__]] + + [[`MSGPACK_HW_SIMD_X86`] [__predef_detection__]] + ] + + [table + [[__predef_symbol__] [__predef_version__]] + + [[`__SSE4A__`] [MSGPACK_HW_SIMD_X86_SSE4A_VERSION]] + + [[`__FMA4__`] [MSGPACK_HW_SIMD_X86_FMA4_VERSION]] + + [[`__XOP__`] [MSGPACK_HW_SIMD_X86_XOP_VERSION]] + + [[`MSGPACK_HW_SIMD_X86`] [MSGPACK_HW_SIMD_X86]] + ] + + [note This predef includes every other x86 SIMD extensions and also has other + more specific extensions (FMA4, XOP, SSE4a). You should use this predef + instead of `MSGPACK_HW_SIMD_X86` to test if those specific extensions have + been detected.] + + */ + +#define MSGPACK_HW_SIMD_X86_AMD MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +// AMD CPUs also use x86 architecture. We first try to detect if any AMD +// specific extension are detected, if yes, then try to detect more recent x86 +// common extensions. + +#undef MSGPACK_HW_SIMD_X86_AMD +#if !defined(MSGPACK_HW_SIMD_X86_AMD) && defined(__XOP__) +# define MSGPACK_HW_SIMD_X86_AMD MSGPACK_HW_SIMD_X86_AMD_XOP_VERSION +#endif +#if !defined(MSGPACK_HW_SIMD_X86_AMD) && defined(__FMA4__) +# define MSGPACK_HW_SIMD_X86_AMD MSGPACK_HW_SIMD_X86_AMD_FMA4_VERSION +#endif +#if !defined(MSGPACK_HW_SIMD_X86_AMD) && defined(__SSE4A__) +# define MSGPACK_HW_SIMD_X86_AMD MSGPACK_HW_SIMD_X86_AMD_SSE4A_VERSION +#endif + +#if !defined(MSGPACK_HW_SIMD_X86_AMD) +# define MSGPACK_HW_SIMD_X86_AMD MSGPACK_VERSION_NUMBER_NOT_AVAILABLE +#else + // At this point, we know that we have an AMD CPU, we do need to check for + // other x86 extensions to determine the final version number. +# include +# if MSGPACK_HW_SIMD_X86 > MSGPACK_HW_SIMD_X86_AMD +# undef MSGPACK_HW_SIMD_X86_AMD +# define MSGPACK_HW_SIMD_X86_AMD MSGPACK_HW_SIMD_X86 +# endif +# define MSGPACK_HW_SIMD_X86_AMD_AVAILABLE +#endif + +#define MSGPACK_HW_SIMD_X86_AMD_NAME "x86 (AMD) SIMD" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_HW_SIMD_X86_AMD, MSGPACK_HW_SIMD_X86_AMD_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/hardware/simd/x86_amd/versions.h b/third_party/msgpack/include/msgpack/predef/hardware/simd/x86_amd/versions.h new file mode 100644 index 000000000000..0bd4529985f5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/hardware/simd/x86_amd/versions.h @@ -0,0 +1,51 @@ +/* +Copyright Charly Chevalier 2015 +Copyright Joel Falcou 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_HARDWARE_SIMD_X86_AMD_VERSIONS_H +#define MSGPACK_PREDEF_HARDWARE_SIMD_X86_AMD_VERSIONS_H + +#include + +/*` + Those defines represent x86 (AMD specific) SIMD extensions versions. + + [note You *MUST* compare them with the predef `MSGPACK_HW_SIMD_X86_AMD`.] + */ + + +// --------------------------------- + +/*` + [heading `MSGPACK_HW_SIMD_X86_SSE4A_VERSION`] + + [@https://en.wikipedia.org/wiki/SSE4##SSE4A SSE4A] x86 extension (AMD specific). + + Version number is: *4.0.0*. + */ +#define MSGPACK_HW_SIMD_X86_AMD_SSE4A_VERSION MSGPACK_VERSION_NUMBER(4, 0, 0) + +/*` + [heading `MSGPACK_HW_SIMD_X86_FMA4_VERSION`] + + [@https://en.wikipedia.org/wiki/FMA_instruction_set#FMA4_instruction_set FMA4] x86 extension (AMD specific). + + Version number is: *5.1.0*. + */ +#define MSGPACK_HW_SIMD_X86_AMD_FMA4_VERSION MSGPACK_VERSION_NUMBER(5, 1, 0) + +/*` + [heading `MSGPACK_HW_SIMD_X86_XOP_VERSION`] + + [@https://en.wikipedia.org/wiki/XOP_instruction_set XOP] x86 extension (AMD specific). + + Version number is: *5.1.1*. + */ +#define MSGPACK_HW_SIMD_X86_AMD_XOP_VERSION MSGPACK_VERSION_NUMBER(5, 1, 1) + + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/language.h b/third_party/msgpack/include/msgpack/predef/language.h new file mode 100644 index 000000000000..7652c32cb68e --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/language.h @@ -0,0 +1,17 @@ +/* +Copyright Rene Rivera 2011-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#if !defined(MSGPACK_PREDEF_LANGUAGE_H) || defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) +#ifndef MSGPACK_PREDEF_LANGUAGE_H +#define MSGPACK_PREDEF_LANGUAGE_H +#endif + +#include +#include +#include + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/language/objc.h b/third_party/msgpack/include/msgpack/predef/language/objc.h new file mode 100644 index 000000000000..ee201debf46f --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/language/objc.h @@ -0,0 +1,42 @@ +/* +Copyright Rene Rivera 2011-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LANGUAGE_OBJC_H +#define MSGPACK_PREDEF_LANGUAGE_OBJC_H + +#include +#include + +/*` +[heading `MSGPACK_LANG_OBJC`] + +[@http://en.wikipedia.org/wiki/Objective-C Objective-C] language. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__OBJC__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_LANG_OBJC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__OBJC__) +# undef MSGPACK_LANG_OBJC +# define MSGPACK_LANG_OBJC MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_LANG_OBJC +# define MSGPACK_LANG_OBJC_AVAILABLE +#endif + +#define MSGPACK_LANG_OBJC_NAME "Objective-C" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_OBJC,MSGPACK_LANG_OBJC_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/language/stdc.h b/third_party/msgpack/include/msgpack/predef/language/stdc.h new file mode 100644 index 000000000000..5c9165054686 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/language/stdc.h @@ -0,0 +1,53 @@ +/* +Copyright Rene Rivera 2011-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LANGUAGE_STDC_H +#define MSGPACK_PREDEF_LANGUAGE_STDC_H + +#include +#include + +/*` +[heading `MSGPACK_LANG_STDC`] + +[@http://en.wikipedia.org/wiki/C_(programming_language) Standard C] language. +If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__STDC__`] [__predef_detection__]] + + [[`__STDC_VERSION__`] [V.R.P]] + ] + */ + +#define MSGPACK_LANG_STDC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__STDC__) +# undef MSGPACK_LANG_STDC +# if defined(__STDC_VERSION__) +# if (__STDC_VERSION__ > 100) +# define MSGPACK_LANG_STDC MSGPACK_PREDEF_MAKE_YYYYMM(__STDC_VERSION__) +# else +# define MSGPACK_LANG_STDC MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +# else +# define MSGPACK_LANG_STDC MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_LANG_STDC +# define MSGPACK_LANG_STDC_AVAILABLE +#endif + +#define MSGPACK_LANG_STDC_NAME "Standard C" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDC,MSGPACK_LANG_STDC_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/language/stdcpp.h b/third_party/msgpack/include/msgpack/predef/language/stdcpp.h new file mode 100644 index 000000000000..07f1024d36c7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/language/stdcpp.h @@ -0,0 +1,121 @@ +/* +Copyright Rene Rivera 2011-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LANGUAGE_STDCPP_H +#define MSGPACK_PREDEF_LANGUAGE_STDCPP_H + +#include +#include + +/*` +[heading `MSGPACK_LANG_STDCPP`] + +[@http://en.wikipedia.org/wiki/C%2B%2B Standard C++] language. +If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. +Because of the way the C++ standardization process works the +defined version year will not be the commonly known year of the standard. +Specifically the defined versions are: + +[table Detected Version Number vs. C++ Standard Year + [[Detected Version Number] [Standard Year] [C++ Standard]] + [[27.11.1] [1998] [ISO/IEC 14882:1998]] + [[41.12.1] [2011] [ISO/IEC 14882:2011]] +] + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__cplusplus`] [__predef_detection__]] + + [[`__cplusplus`] [YYYY.MM.1]] + ] + */ + +#define MSGPACK_LANG_STDCPP MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__cplusplus) +# undef MSGPACK_LANG_STDCPP +# if (__cplusplus > 100) +# define MSGPACK_LANG_STDCPP MSGPACK_PREDEF_MAKE_YYYYMM(__cplusplus) +# else +# define MSGPACK_LANG_STDCPP MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_LANG_STDCPP +# define MSGPACK_LANG_STDCPP_AVAILABLE +#endif + +#define MSGPACK_LANG_STDCPP_NAME "Standard C++" + +/*` +[heading `MSGPACK_LANG_STDCPPCLI`] + +[@http://en.wikipedia.org/wiki/C%2B%2B/CLI Standard C++/CLI] language. +If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__cplusplus_cli`] [__predef_detection__]] + + [[`__cplusplus_cli`] [YYYY.MM.1]] + ] + */ + +#define MSGPACK_LANG_STDCPPCLI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__cplusplus_cli) +# undef MSGPACK_LANG_STDCPPCLI +# if (__cplusplus_cli > 100) +# define MSGPACK_LANG_STDCPPCLI MSGPACK_PREDEF_MAKE_YYYYMM(__cplusplus_cli) +# else +# define MSGPACK_LANG_STDCPPCLI MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_LANG_STDCPPCLI +# define MSGPACK_LANG_STDCPPCLI_AVAILABLE +#endif + +#define MSGPACK_LANG_STDCPPCLI_NAME "Standard C++/CLI" + +/*` +[heading `MSGPACK_LANG_STDECPP`] + +[@http://en.wikipedia.org/wiki/Embedded_C%2B%2B Standard Embedded C++] language. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__embedded_cplusplus`] [__predef_detection__]] + ] + */ + +#define MSGPACK_LANG_STDECPP MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__embedded_cplusplus) +# undef MSGPACK_LANG_STDECPP +# define MSGPACK_LANG_STDECPP MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_LANG_STDECPP +# define MSGPACK_LANG_STDECPP_AVAILABLE +#endif + +#define MSGPACK_LANG_STDECPP_NAME "Standard Embedded C++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDCPP,MSGPACK_LANG_STDCPP_NAME) + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDCPPCLI,MSGPACK_LANG_STDCPPCLI_NAME) + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDECPP,MSGPACK_LANG_STDECPP_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/library.h b/third_party/msgpack/include/msgpack/predef/library.h new file mode 100644 index 000000000000..3c96c4b979e5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library.h @@ -0,0 +1,16 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#if !defined(MSGPACK_PREDEF_LIBRARY_H) || defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) +#ifndef MSGPACK_PREDEF_LIBRARY_H +#define MSGPACK_PREDEF_LIBRARY_H +#endif + +#include +#include + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/library/c.h b/third_party/msgpack/include/msgpack/predef/library/c.h new file mode 100644 index 000000000000..2817bf91f184 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/c.h @@ -0,0 +1,20 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#if !defined(MSGPACK_PREDEF_LIBRARY_C_H) || defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) +#ifndef MSGPACK_PREDEF_LIBRARY_C_H +#define MSGPACK_PREDEF_LIBRARY_C_H +#endif + +#include + +#include +#include +#include +#include + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/library/c/_prefix.h b/third_party/msgpack/include/msgpack/predef/library/c/_prefix.h new file mode 100644 index 000000000000..d16c373bcc16 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/c/_prefix.h @@ -0,0 +1,13 @@ +/* +Copyright Rene Rivera 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_C__PREFIX_H +#define MSGPACK_PREDEF_LIBRARY_C__PREFIX_H + +#include + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/library/c/gnu.h b/third_party/msgpack/include/msgpack/predef/library/c/gnu.h new file mode 100644 index 000000000000..0d8903205169 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/c/gnu.h @@ -0,0 +1,61 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_C_GNU_H +#define MSGPACK_PREDEF_LIBRARY_C_GNU_H + +#include +#include + +#include + +#if defined(__STDC__) +#include +#elif defined(__cplusplus) +#include +#endif + +/*` +[heading `MSGPACK_LIB_C_GNU`] + +[@http://en.wikipedia.org/wiki/Glibc GNU glibc] Standard C library. +Version number available as major, and minor. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__GLIBC__`] [__predef_detection__]] + [[`__GNU_LIBRARY__`] [__predef_detection__]] + + [[`__GLIBC__`, `__GLIBC_MINOR__`] [V.R.0]] + [[`__GNU_LIBRARY__`, `__GNU_LIBRARY_MINOR__`] [V.R.0]] + ] + */ + +#define MSGPACK_LIB_C_GNU MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__GLIBC__) || defined(__GNU_LIBRARY__) +# undef MSGPACK_LIB_C_GNU +# if defined(__GLIBC__) +# define MSGPACK_LIB_C_GNU \ + MSGPACK_VERSION_NUMBER(__GLIBC__,__GLIBC_MINOR__,0) +# else +# define MSGPACK_LIB_C_GNU \ + MSGPACK_VERSION_NUMBER(__GNU_LIBRARY__,__GNU_LIBRARY_MINOR__,0) +# endif +#endif + +#if MSGPACK_LIB_C_GNU +# define MSGPACK_LIB_C_GNU_AVAILABLE +#endif + +#define MSGPACK_LIB_C_GNU_NAME "GNU" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_C_GNU,MSGPACK_LIB_C_GNU_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/library/c/uc.h b/third_party/msgpack/include/msgpack/predef/library/c/uc.h new file mode 100644 index 000000000000..39893d4d344b --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/c/uc.h @@ -0,0 +1,47 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_C_UC_H +#define MSGPACK_PREDEF_LIBRARY_C_UC_H + +#include + +#include +#include + +/*` +[heading `MSGPACK_LIB_C_UC`] + +[@http://en.wikipedia.org/wiki/Uclibc uClibc] Standard C library. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__UCLIBC__`] [__predef_detection__]] + + [[`__UCLIBC_MAJOR__`, `__UCLIBC_MINOR__`, `__UCLIBC_SUBLEVEL__`] [V.R.P]] + ] + */ + +#define MSGPACK_LIB_C_UC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__UCLIBC__) +# undef MSGPACK_LIB_C_UC +# define MSGPACK_LIB_C_UC MSGPACK_VERSION_NUMBER(\ + __UCLIBC_MAJOR__,__UCLIBC_MINOR__,__UCLIBC_SUBLEVEL__) +#endif + +#if MSGPACK_LIB_C_UC +# define MSGPACK_LIB_C_UC_AVAILABLE +#endif + +#define MSGPACK_LIB_C_UC_NAME "uClibc" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_C_UC,MSGPACK_LIB_C_UC_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/library/c/vms.h b/third_party/msgpack/include/msgpack/predef/library/c/vms.h new file mode 100644 index 000000000000..35253649ee2e --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/c/vms.h @@ -0,0 +1,47 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_C_VMS_H +#define MSGPACK_PREDEF_LIBRARY_C_VMS_H + +#include + +#include +#include + +/*` +[heading `MSGPACK_LIB_C_VMS`] + +VMS libc Standard C library. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__CRTL_VER`] [__predef_detection__]] + + [[`__CRTL_VER`] [V.R.P]] + ] + */ + +#define MSGPACK_LIB_C_VMS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__CRTL_VER) +# undef MSGPACK_LIB_C_VMS +# define MSGPACK_LIB_C_VMS MSGPACK_PREDEF_MAKE_10_VVRR0PP00(__CRTL_VER) +#endif + +#if MSGPACK_LIB_C_VMS +# define MSGPACK_LIB_C_VMS_AVAILABLE +#endif + +#define MSGPACK_LIB_C_VMS_NAME "VMS" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_C_VMS,MSGPACK_LIB_C_VMS_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/library/c/zos.h b/third_party/msgpack/include/msgpack/predef/library/c/zos.h new file mode 100644 index 000000000000..9bae6ef78aea --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/c/zos.h @@ -0,0 +1,56 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_C_ZOS_H +#define MSGPACK_PREDEF_LIBRARY_C_ZOS_H + +#include + +#include +#include + +/*` +[heading `MSGPACK_LIB_C_ZOS`] + +z/OS libc Standard C library. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__LIBREL__`] [__predef_detection__]] + + [[`__LIBREL__`] [V.R.P]] + [[`__TARGET_LIB__`] [V.R.P]] + ] + */ + +#define MSGPACK_LIB_C_ZOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__LIBREL__) +# undef MSGPACK_LIB_C_ZOS +# if !defined(MSGPACK_LIB_C_ZOS) && defined(__LIBREL__) +# define MSGPACK_LIB_C_ZOS MSGPACK_PREDEF_MAKE_0X_VRRPPPP(__LIBREL__) +# endif +# if !defined(MSGPACK_LIB_C_ZOS) && defined(__TARGET_LIB__) +# define MSGPACK_LIB_C_ZOS MSGPACK_PREDEF_MAKE_0X_VRRPPPP(__TARGET_LIB__) +# endif +# if !defined(MSGPACK_LIB_C_ZOS) +# define MSGPACK_LIB_C_ZOS MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_LIB_C_ZOS +# define MSGPACK_LIB_C_ZOS_AVAILABLE +#endif + +#define MSGPACK_LIB_C_ZOS_NAME "z/OS" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_C_ZOS,MSGPACK_LIB_C_ZOS_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/library/std.h b/third_party/msgpack/include/msgpack/predef/library/std.h new file mode 100644 index 000000000000..14ff2bffa844 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/std.h @@ -0,0 +1,25 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ +#if !defined(MSGPACK_PREDEF_LIBRARY_STD_H) || defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) +#ifndef MSGPACK_PREDEF_LIBRARY_STD_H +#define MSGPACK_PREDEF_LIBRARY_STD_H +#endif + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/library/std/_prefix.h b/third_party/msgpack/include/msgpack/predef/library/std/_prefix.h new file mode 100644 index 000000000000..6f9f56649dd3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/std/_prefix.h @@ -0,0 +1,23 @@ +/* +Copyright Rene Rivera 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef MSGPACK_PREDEF_LIBRARY_STD__PREFIX_H +#define MSGPACK_PREDEF_LIBRARY_STD__PREFIX_H + +/* +We need to include an STD header to gives us the context +of which library we are using. The "smallest" code-wise header +seems to be . Boost uses but as far +as I can tell (RR) it's not a stand-alone header in most +implementations. Using also has the benefit of +being available in EC++, so we get a chance to make this work +for embedded users. And since it's not a header impacted by TR1 +there's no magic needed for inclusion in the face of the +Boost.TR1 library. +*/ +#include + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/library/std/cxx.h b/third_party/msgpack/include/msgpack/predef/library/std/cxx.h new file mode 100644 index 000000000000..605184481ede --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/std/cxx.h @@ -0,0 +1,46 @@ +/* +Copyright Rene Rivera 2011-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_STD_CXX_H +#define MSGPACK_PREDEF_LIBRARY_STD_CXX_H + +#include + +#include +#include + +/*` +[heading `MSGPACK_LIB_STD_CXX`] + +[@http://libcxx.llvm.org/ libc++] C++ Standard Library. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`_LIBCPP_VERSION`] [__predef_detection__]] + + [[`_LIBCPP_VERSION`] [V.0.P]] + ] + */ + +#define MSGPACK_LIB_STD_CXX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(_LIBCPP_VERSION) +# undef MSGPACK_LIB_STD_CXX +# define MSGPACK_LIB_STD_CXX MSGPACK_PREDEF_MAKE_10_VPPP(_LIBCPP_VERSION) +#endif + +#if MSGPACK_LIB_STD_CXX +# define MSGPACK_LIB_STD_CXX_AVAILABLE +#endif + +#define MSGPACK_LIB_STD_CXX_NAME "libc++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_CXX,MSGPACK_LIB_STD_CXX_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/library/std/dinkumware.h b/third_party/msgpack/include/msgpack/predef/library/std/dinkumware.h new file mode 100644 index 000000000000..7e82bda1d6d9 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/std/dinkumware.h @@ -0,0 +1,52 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_STD_DINKUMWARE_H +#define MSGPACK_PREDEF_LIBRARY_STD_DINKUMWARE_H + +#include + +#include +#include + +/*` +[heading `MSGPACK_LIB_STD_DINKUMWARE`] + +[@http://en.wikipedia.org/wiki/Dinkumware Dinkumware] Standard C++ Library. +If available version number as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`_YVALS`, `__IBMCPP__`] [__predef_detection__]] + [[`_CPPLIB_VER`] [__predef_detection__]] + + [[`_CPPLIB_VER`] [V.R.0]] + ] + */ + +#define MSGPACK_LIB_STD_DINKUMWARE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) +# undef MSGPACK_LIB_STD_DINKUMWARE +# if defined(_CPPLIB_VER) +# define MSGPACK_LIB_STD_DINKUMWARE MSGPACK_PREDEF_MAKE_10_VVRR(_CPPLIB_VER) +# else +# define MSGPACK_LIB_STD_DINKUMWARE MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_LIB_STD_DINKUMWARE +# define MSGPACK_LIB_STD_DINKUMWARE_AVAILABLE +#endif + +#define MSGPACK_LIB_STD_DINKUMWARE_NAME "Dinkumware" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_DINKUMWARE,MSGPACK_LIB_STD_DINKUMWARE_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/library/std/libcomo.h b/third_party/msgpack/include/msgpack/predef/library/std/libcomo.h new file mode 100644 index 000000000000..54f58b5247cf --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/std/libcomo.h @@ -0,0 +1,47 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_STD_LIBCOMO_H +#define MSGPACK_PREDEF_LIBRARY_STD_LIBCOMO_H + +#include + +#include +#include + +/*` +[heading `MSGPACK_LIB_STD_COMO`] + +[@http://www.comeaucomputing.com/libcomo/ Comeau Computing] Standard C++ Library. +Version number available as major. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__LIBCOMO__`] [__predef_detection__]] + + [[`__LIBCOMO_VERSION__`] [V.0.0]] + ] + */ + +#define MSGPACK_LIB_STD_COMO MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__LIBCOMO__) +# undef MSGPACK_LIB_STD_COMO +# define MSGPACK_LIB_STD_COMO MSGPACK_VERSION_NUMBER(__LIBCOMO_VERSION__,0,0) +#endif + +#if MSGPACK_LIB_STD_COMO +# define MSGPACK_LIB_STD_COMO_AVAILABLE +#endif + +#define MSGPACK_LIB_STD_COMO_NAME "Comeau Computing" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_COMO,MSGPACK_LIB_STD_COMO_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/library/std/modena.h b/third_party/msgpack/include/msgpack/predef/library/std/modena.h new file mode 100644 index 000000000000..a8f750178696 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/std/modena.h @@ -0,0 +1,45 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_STD_MODENA_H +#define MSGPACK_PREDEF_LIBRARY_STD_MODENA_H + +#include + +#include +#include + +/*` +[heading `MSGPACK_LIB_STD_MSIPL`] + +[@http://modena.us/ Modena Software Lib++] Standard C++ Library. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`MSIPL_COMPILE_H`] [__predef_detection__]] + [[`__MSIPL_COMPILE_H`] [__predef_detection__]] + ] + */ + +#define MSGPACK_LIB_STD_MSIPL MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(MSIPL_COMPILE_H) || defined(__MSIPL_COMPILE_H) +# undef MSGPACK_LIB_STD_MSIPL +# define MSGPACK_LIB_STD_MSIPL MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_LIB_STD_MSIPL +# define MSGPACK_LIB_STD_MSIPL_AVAILABLE +#endif + +#define MSGPACK_LIB_STD_MSIPL_NAME "Modena Software Lib++" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_MSIPL,MSGPACK_LIB_STD_MSIPL_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/library/std/msl.h b/third_party/msgpack/include/msgpack/predef/library/std/msl.h new file mode 100644 index 000000000000..187a6e1d52ca --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/std/msl.h @@ -0,0 +1,53 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_STD_MSL_H +#define MSGPACK_PREDEF_LIBRARY_STD_MSL_H + +#include + +#include +#include + +/*` +[heading `MSGPACK_LIB_STD_MSL`] + +[@http://www.freescale.com/ Metrowerks] Standard C++ Library. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__MSL_CPP__`] [__predef_detection__]] + [[`__MSL__`] [__predef_detection__]] + + [[`__MSL_CPP__`] [V.R.P]] + [[`__MSL__`] [V.R.P]] + ] + */ + +#define MSGPACK_LIB_STD_MSL MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__MSL_CPP__) || defined(__MSL__) +# undef MSGPACK_LIB_STD_MSL +# if defined(__MSL_CPP__) +# define MSGPACK_LIB_STD_MSL MSGPACK_PREDEF_MAKE_0X_VRPP(__MSL_CPP__) +# else +# define MSGPACK_LIB_STD_MSL MSGPACK_PREDEF_MAKE_0X_VRPP(__MSL__) +# endif +#endif + +#if MSGPACK_LIB_STD_MSL +# define MSGPACK_LIB_STD_MSL_AVAILABLE +#endif + +#define MSGPACK_LIB_STD_MSL_NAME "Metrowerks" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_MSL,MSGPACK_LIB_STD_MSL_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/library/std/roguewave.h b/third_party/msgpack/include/msgpack/predef/library/std/roguewave.h new file mode 100644 index 000000000000..94ccaf9c2dfb --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/std/roguewave.h @@ -0,0 +1,56 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_STD_ROGUEWAVE_H +#define MSGPACK_PREDEF_LIBRARY_STD_ROGUEWAVE_H + +#include + +#include +#include + +/*` +[heading `MSGPACK_LIB_STD_RW`] + +[@http://stdcxx.apache.org/ Roguewave] Standard C++ library. +If available version number as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__STD_RWCOMPILER_H__`] [__predef_detection__]] + [[`_RWSTD_VER`] [__predef_detection__]] + + [[`_RWSTD_VER`] [V.R.P]] + ] + */ + +#define MSGPACK_LIB_STD_RW MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) +# undef MSGPACK_LIB_STD_RW +# if defined(_RWSTD_VER) +# if _RWSTD_VER < 0x010000 +# define MSGPACK_LIB_STD_RW MSGPACK_PREDEF_MAKE_0X_VVRRP(_RWSTD_VER) +# else +# define MSGPACK_LIB_STD_RW MSGPACK_PREDEF_MAKE_0X_VVRRPP(_RWSTD_VER) +# endif +# else +# define MSGPACK_LIB_STD_RW MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_LIB_STD_RW +# define MSGPACK_LIB_STD_RW_AVAILABLE +#endif + +#define MSGPACK_LIB_STD_RW_NAME "Roguewave" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_RW,MSGPACK_LIB_STD_RW_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/library/std/sgi.h b/third_party/msgpack/include/msgpack/predef/library/std/sgi.h new file mode 100644 index 000000000000..b23b9ed37c95 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/std/sgi.h @@ -0,0 +1,51 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_STD_SGI_H +#define MSGPACK_PREDEF_LIBRARY_STD_SGI_H + +#include + +#include +#include + +/*` +[heading `MSGPACK_LIB_STD_SGI`] + +[@http://www.sgi.com/tech/stl/ SGI] Standard C++ library. +If available version number as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__STL_CONFIG_H`] [__predef_detection__]] + + [[`__SGI_STL`] [V.R.P]] + ] + */ + +#define MSGPACK_LIB_STD_SGI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__STL_CONFIG_H) +# undef MSGPACK_LIB_STD_SGI +# if defined(__SGI_STL) +# define MSGPACK_LIB_STD_SGI MSGPACK_PREDEF_MAKE_0X_VRP(__SGI_STL) +# else +# define MSGPACK_LIB_STD_SGI MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_LIB_STD_SGI +# define MSGPACK_LIB_STD_SGI_AVAILABLE +#endif + +#define MSGPACK_LIB_STD_SGI_NAME "SGI" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_SGI,MSGPACK_LIB_STD_SGI_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/library/std/stdcpp3.h b/third_party/msgpack/include/msgpack/predef/library/std/stdcpp3.h new file mode 100644 index 000000000000..6a5de28ad2fe --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/std/stdcpp3.h @@ -0,0 +1,53 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_STD_STDCPP3_H +#define MSGPACK_PREDEF_LIBRARY_STD_STDCPP3_H + +#include + +#include +#include + +/*` +[heading `MSGPACK_LIB_STD_GNU`] + +[@http://gcc.gnu.org/libstdc++/ GNU libstdc++] Standard C++ library. +Version number available as year (from 1970), month, and day. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__GLIBCXX__`] [__predef_detection__]] + [[`__GLIBCPP__`] [__predef_detection__]] + + [[`__GLIBCXX__`] [V.R.P]] + [[`__GLIBCPP__`] [V.R.P]] + ] + */ + +#define MSGPACK_LIB_STD_GNU MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__GLIBCPP__) || defined(__GLIBCXX__) +# undef MSGPACK_LIB_STD_GNU +# if defined(__GLIBCXX__) +# define MSGPACK_LIB_STD_GNU MSGPACK_PREDEF_MAKE_YYYYMMDD(__GLIBCXX__) +# else +# define MSGPACK_LIB_STD_GNU MSGPACK_PREDEF_MAKE_YYYYMMDD(__GLIBCPP__) +# endif +#endif + +#if MSGPACK_LIB_STD_GNU +# define MSGPACK_LIB_STD_GNU_AVAILABLE +#endif + +#define MSGPACK_LIB_STD_GNU_NAME "GNU" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_GNU,MSGPACK_LIB_STD_GNU_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/library/std/stlport.h b/third_party/msgpack/include/msgpack/predef/library/std/stlport.h new file mode 100644 index 000000000000..667ff04f165a --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/std/stlport.h @@ -0,0 +1,59 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_STD_STLPORT_H +#define MSGPACK_PREDEF_LIBRARY_STD_STLPORT_H + +#include + +#include +#include + +/*` +[heading `MSGPACK_LIB_STD_STLPORT`] + +[@http://sourceforge.net/projects/stlport/ STLport Standard C++] library. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__SGI_STL_PORT`] [__predef_detection__]] + [[`_STLPORT_VERSION`] [__predef_detection__]] + + [[`_STLPORT_MAJOR`, `_STLPORT_MINOR`, `_STLPORT_PATCHLEVEL`] [V.R.P]] + [[`_STLPORT_VERSION`] [V.R.P]] + [[`__SGI_STL_PORT`] [V.R.P]] + ] + */ + +#define MSGPACK_LIB_STD_STLPORT MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) +# undef MSGPACK_LIB_STD_STLPORT +# if !defined(MSGPACK_LIB_STD_STLPORT) && defined(_STLPORT_MAJOR) +# define MSGPACK_LIB_STD_STLPORT \ + MSGPACK_VERSION_NUMBER(_STLPORT_MAJOR,_STLPORT_MINOR,_STLPORT_PATCHLEVEL) +# endif +# if !defined(MSGPACK_LIB_STD_STLPORT) && defined(_STLPORT_VERSION) +# define MSGPACK_LIB_STD_STLPORT MSGPACK_PREDEF_MAKE_0X_VRP(_STLPORT_VERSION) +# endif +# if !defined(MSGPACK_LIB_STD_STLPORT) +# define MSGPACK_LIB_STD_STLPORT MSGPACK_PREDEF_MAKE_0X_VRP(__SGI_STL_PORT) +# endif +#endif + +#if MSGPACK_LIB_STD_STLPORT +# define MSGPACK_LIB_STD_STLPORT_AVAILABLE +#endif + +#define MSGPACK_LIB_STD_STLPORT_NAME "STLport" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_STLPORT,MSGPACK_LIB_STD_STLPORT_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/library/std/vacpp.h b/third_party/msgpack/include/msgpack/predef/library/std/vacpp.h new file mode 100644 index 000000000000..4b4adac908d1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/library/std/vacpp.h @@ -0,0 +1,44 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_LIBRARY_STD_VACPP_H +#define MSGPACK_PREDEF_LIBRARY_STD_VACPP_H + +#include + +#include +#include + +/*` +[heading `MSGPACK_LIB_STD_IBM`] + +[@http://www.ibm.com/software/awdtools/xlcpp/ IBM VACPP Standard C++] library. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__IBMCPP__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_LIB_STD_IBM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__IBMCPP__) +# undef MSGPACK_LIB_STD_IBM +# define MSGPACK_LIB_STD_IBM MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_LIB_STD_IBM +# define MSGPACK_LIB_STD_IBM_AVAILABLE +#endif + +#define MSGPACK_LIB_STD_IBM_NAME "IBM VACPP" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_IBM,MSGPACK_LIB_STD_IBM_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/make.h b/third_party/msgpack/include/msgpack/predef/make.h new file mode 100644 index 000000000000..a0d8b128c991 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/make.h @@ -0,0 +1,89 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ +#include + +#ifndef MSGPACK_PREDEF_MAKE_H +#define MSGPACK_PREDEF_MAKE_H + +/* +Shorthands for the common version number formats used by vendors... +*/ + +/*` +[heading `MSGPACK_PREDEF_MAKE_..` macros] + +These set of macros decompose common vendor version number +macros which are composed version, revision, and patch digits. +The naming convention indicates: + +* The base of the specified version number. "`MSGPACK_PREDEF_MAKE_0X`" for + hexadecimal digits, and "`MSGPACK_PREDEF_MAKE_10`" for decimal digits. +* The format of the vendor version number. Where "`V`" indicates the version digits, + "`R`" indicates the revision digits, "`P`" indicates the patch digits, and "`0`" + indicates an ignored digit. + +Macros are: +*/ +/*` `MSGPACK_PREDEF_MAKE_0X_VRP(V)` */ +#define MSGPACK_PREDEF_MAKE_0X_VRP(V) MSGPACK_VERSION_NUMBER((V&0xF00)>>8,(V&0xF0)>>4,(V&0xF)) +/*` `MSGPACK_PREDEF_MAKE_0X_VVRP(V)` */ +#define MSGPACK_PREDEF_MAKE_0X_VVRP(V) MSGPACK_VERSION_NUMBER((V&0xFF00)>>8,(V&0xF0)>>4,(V&0xF)) +/*` `MSGPACK_PREDEF_MAKE_0X_VRPP(V)` */ +#define MSGPACK_PREDEF_MAKE_0X_VRPP(V) MSGPACK_VERSION_NUMBER((V&0xF000)>>12,(V&0xF00)>>8,(V&0xFF)) +/*` `MSGPACK_PREDEF_MAKE_0X_VVRR(V)` */ +#define MSGPACK_PREDEF_MAKE_0X_VVRR(V) MSGPACK_VERSION_NUMBER((V&0xFF00)>>8,(V&0xFF),0) +/*` `MSGPACK_PREDEF_MAKE_0X_VRRPPPP(V)` */ +#define MSGPACK_PREDEF_MAKE_0X_VRRPPPP(V) MSGPACK_VERSION_NUMBER((V&0xF000000)>>24,(V&0xFF0000)>>16,(V&0xFFFF)) +/*` `MSGPACK_PREDEF_MAKE_0X_VVRRP(V)` */ +#define MSGPACK_PREDEF_MAKE_0X_VVRRP(V) MSGPACK_VERSION_NUMBER((V&0xFF000)>>12,(V&0xFF0)>>4,(V&0xF)) +/*` `MSGPACK_PREDEF_MAKE_0X_VRRPP000(V)` */ +#define MSGPACK_PREDEF_MAKE_0X_VRRPP000(V) MSGPACK_VERSION_NUMBER((V&0xF0000000)>>28,(V&0xFF00000)>>20,(V&0xFF000)>>12) +/*` `MSGPACK_PREDEF_MAKE_0X_VVRRPP(V)` */ +#define MSGPACK_PREDEF_MAKE_0X_VVRRPP(V) MSGPACK_VERSION_NUMBER((V&0xFF0000)>>16,(V&0xFF00)>>8,(V&0xFF)) +/*` `MSGPACK_PREDEF_MAKE_10_VPPP(V)` */ +#define MSGPACK_PREDEF_MAKE_10_VPPP(V) MSGPACK_VERSION_NUMBER(((V)/1000)%10,0,(V)%1000) +/*` `MSGPACK_PREDEF_MAKE_10_VRP(V)` */ +#define MSGPACK_PREDEF_MAKE_10_VRP(V) MSGPACK_VERSION_NUMBER(((V)/100)%10,((V)/10)%10,(V)%10) +/*` `MSGPACK_PREDEF_MAKE_10_VRP000(V)` */ +#define MSGPACK_PREDEF_MAKE_10_VRP000(V) MSGPACK_VERSION_NUMBER(((V)/100000)%10,((V)/10000)%10,((V)/1000)%10) +/*` `MSGPACK_PREDEF_MAKE_10_VRPP(V)` */ +#define MSGPACK_PREDEF_MAKE_10_VRPP(V) MSGPACK_VERSION_NUMBER(((V)/1000)%10,((V)/100)%10,(V)%100) +/*` `MSGPACK_PREDEF_MAKE_10_VRR(V)` */ +#define MSGPACK_PREDEF_MAKE_10_VRR(V) MSGPACK_VERSION_NUMBER(((V)/100)%10,(V)%100,0) +/*` `MSGPACK_PREDEF_MAKE_10_VRRPP(V)` */ +#define MSGPACK_PREDEF_MAKE_10_VRRPP(V) MSGPACK_VERSION_NUMBER(((V)/10000)%10,((V)/100)%100,(V)%100) +/*` `MSGPACK_PREDEF_MAKE_10_VRR000(V)` */ +#define MSGPACK_PREDEF_MAKE_10_VRR000(V) MSGPACK_VERSION_NUMBER(((V)/100000)%10,((V)/1000)%100,0) +/*` `MSGPACK_PREDEF_MAKE_10_VV00(V)` */ +#define MSGPACK_PREDEF_MAKE_10_VV00(V) MSGPACK_VERSION_NUMBER(((V)/100)%100,0,0) +/*` `MSGPACK_PREDEF_MAKE_10_VVRR(V)` */ +#define MSGPACK_PREDEF_MAKE_10_VVRR(V) MSGPACK_VERSION_NUMBER(((V)/100)%100,(V)%100,0) +/*` `MSGPACK_PREDEF_MAKE_10_VVRRPP(V)` */ +#define MSGPACK_PREDEF_MAKE_10_VVRRPP(V) MSGPACK_VERSION_NUMBER(((V)/10000)%100,((V)/100)%100,(V)%100) +/*` `MSGPACK_PREDEF_MAKE_10_VVRR0PP00(V)` */ +#define MSGPACK_PREDEF_MAKE_10_VVRR0PP00(V) MSGPACK_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,((V)/100)%100) +/*` `MSGPACK_PREDEF_MAKE_10_VVRR0PPPP(V)` */ +#define MSGPACK_PREDEF_MAKE_10_VVRR0PPPP(V) MSGPACK_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,(V)%10000) +/*` `MSGPACK_PREDEF_MAKE_10_VVRR00PP00(V)` */ +#define MSGPACK_PREDEF_MAKE_10_VVRR00PP00(V) MSGPACK_VERSION_NUMBER(((V)/100000000)%100,((V)/1000000)%100,((V)/100)%100) +/*` +[heading `MSGPACK_PREDEF_MAKE_*..` date macros] + +Date decomposition macros return a date in the relative to the 1970 +Epoch date. If the month is not available, January 1st is used as the month and day. +If the day is not available, but the month is, the 1st of the month is used as the day. +*/ +/*` `MSGPACK_PREDEF_MAKE_DATE(Y,M,D)` */ +#define MSGPACK_PREDEF_MAKE_DATE(Y,M,D) MSGPACK_VERSION_NUMBER((Y)%10000-1970,(M)%100,(D)%100) +/*` `MSGPACK_PREDEF_MAKE_YYYYMMDD(V)` */ +#define MSGPACK_PREDEF_MAKE_YYYYMMDD(V) MSGPACK_PREDEF_MAKE_DATE(((V)/10000)%10000,((V)/100)%100,(V)%100) +/*` `MSGPACK_PREDEF_MAKE_YYYY(V)` */ +#define MSGPACK_PREDEF_MAKE_YYYY(V) MSGPACK_PREDEF_MAKE_DATE(V,1,1) +/*` `MSGPACK_PREDEF_MAKE_YYYYMM(V)` */ +#define MSGPACK_PREDEF_MAKE_YYYYMM(V) MSGPACK_PREDEF_MAKE_DATE((V)/100,(V)%100,1) + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/os.h b/third_party/msgpack/include/msgpack/predef/os.h new file mode 100644 index 000000000000..e08842066ae5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os.h @@ -0,0 +1,33 @@ +/* +Copyright Rene Rivera 2008-2015 +Copyright Franz Detro 2014 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#if !defined(MSGPACK_PREDEF_OS_H) || defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) +#ifndef MSGPACK_PREDEF_OS_H +#define MSGPACK_PREDEF_OS_H +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/os/aix.h b/third_party/msgpack/include/msgpack/predef/os/aix.h new file mode 100644 index 000000000000..fa7f61c53fb2 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/aix.h @@ -0,0 +1,66 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_AIX_H +#define MSGPACK_PREDEF_OS_AIX_H + +#include +#include + +/*` +[heading `MSGPACK_OS_AIX`] + +[@http://en.wikipedia.org/wiki/AIX_operating_system IBM AIX] operating system. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`_AIX`] [__predef_detection__]] + [[`__TOS_AIX__`] [__predef_detection__]] + + [[`_AIX43`] [4.3.0]] + [[`_AIX41`] [4.1.0]] + [[`_AIX32`] [3.2.0]] + [[`_AIX3`] [3.0.0]] + ] + */ + +#define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(_AIX) || defined(__TOS_AIX__) \ + ) +# undef MSGPACK_OS_AIX +# if !defined(MSGPACK_OS_AIX) && defined(_AIX43) +# define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER(4,3,0) +# endif +# if !defined(MSGPACK_OS_AIX) && defined(_AIX41) +# define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER(4,1,0) +# endif +# if !defined(MSGPACK_OS_AIX) && defined(_AIX32) +# define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER(3,2,0) +# endif +# if !defined(MSGPACK_OS_AIX) && defined(_AIX3) +# define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER(3,0,0) +# endif +# if !defined(MSGPACK_OS_AIX) +# define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_OS_AIX +# define MSGPACK_OS_AIX_AVAILABLE +# include +#endif + +#define MSGPACK_OS_AIX_NAME "IBM AIX" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_AIX,MSGPACK_OS_AIX_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/amigaos.h b/third_party/msgpack/include/msgpack/predef/os/amigaos.h new file mode 100644 index 000000000000..26493bca3e0b --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/amigaos.h @@ -0,0 +1,46 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_AMIGAOS_H +#define MSGPACK_PREDEF_OS_AMIGAOS_H + +#include +#include + +/*` +[heading `MSGPACK_OS_AMIGAOS`] + +[@http://en.wikipedia.org/wiki/AmigaOS AmigaOS] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`AMIGA`] [__predef_detection__]] + [[`__amigaos__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_AMIGAOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(AMIGA) || defined(__amigaos__) \ + ) +# undef MSGPACK_OS_AMIGAOS +# define MSGPACK_OS_AMIGAOS MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_OS_AMIGAOS +# define MSGPACK_OS_AMIGAOS_AVAILABLE +# include +#endif + +#define MSGPACK_OS_AMIGAOS_NAME "AmigaOS" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_AMIGAOS,MSGPACK_OS_AMIGAOS_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/android.h b/third_party/msgpack/include/msgpack/predef/os/android.h new file mode 100644 index 000000000000..14195ea8ef21 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/android.h @@ -0,0 +1,45 @@ +/* +Copyright Rene Rivera 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_ADROID_H +#define MSGPACK_PREDEF_OS_ADROID_H + +#include +#include + +/*` +[heading `MSGPACK_OS_ANDROID`] + +[@http://en.wikipedia.org/wiki/Android_%28operating_system%29 Android] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__ANDROID__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_ANDROID MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(__ANDROID__) \ + ) +# undef MSGPACK_OS_ANDROID +# define MSGPACK_OS_ANDROID MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_OS_ANDROID +# define MSGPACK_OS_ANDROID_AVAILABLE +# include +#endif + +#define MSGPACK_OS_ANDROID_NAME "Android" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_ANDROID,MSGPACK_OS_ANDROID_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/beos.h b/third_party/msgpack/include/msgpack/predef/os/beos.h new file mode 100644 index 000000000000..35f143a50cf6 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/beos.h @@ -0,0 +1,45 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_BEOS_H +#define MSGPACK_PREDEF_OS_BEOS_H + +#include +#include + +/*` +[heading `MSGPACK_OS_BEOS`] + +[@http://en.wikipedia.org/wiki/BeOS BeOS] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__BEOS__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_BEOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(__BEOS__) \ + ) +# undef MSGPACK_OS_BEOS +# define MSGPACK_OS_BEOS MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_OS_BEOS +# define MSGPACK_OS_BEOS_AVAILABLE +# include +#endif + +#define MSGPACK_OS_BEOS_NAME "BeOS" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BEOS,MSGPACK_OS_BEOS_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/bsd.h b/third_party/msgpack/include/msgpack/predef/os/bsd.h new file mode 100644 index 000000000000..90b251333b38 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/bsd.h @@ -0,0 +1,103 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_BSD_H +#define MSGPACK_PREDEF_OS_BSD_H + +/* Special case: OSX will define BSD predefs if the sys/param.h + * header is included. We can guard against that, but only if we + * detect OSX first. Hence we will force include OSX detection + * before doing any BSD detection. + */ +#include + +#include +#include + +/*` +[heading `MSGPACK_OS_BSD`] + +[@http://en.wikipedia.org/wiki/Berkeley_Software_Distribution BSD] operating system. + +BSD has various branch operating systems possible and each detected +individually. This detects the following variations and sets a specific +version number macro to match: + +* `MSGPACK_OS_BSD_DRAGONFLY` [@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD] +* `MSGPACK_OS_BSD_FREE` [@http://en.wikipedia.org/wiki/Freebsd FreeBSD] +* `MSGPACK_OS_BSD_BSDI` [@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS] +* `MSGPACK_OS_BSD_NET` [@http://en.wikipedia.org/wiki/Netbsd NetBSD] +* `MSGPACK_OS_BSD_OPEN` [@http://en.wikipedia.org/wiki/Openbsd OpenBSD] + +[note The general `MSGPACK_OS_BSD` is set in all cases to indicate some form +of BSD. If the above variants is detected the corresponding macro is also set.] + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`BSD`] [__predef_detection__]] + [[`_SYSTYPE_BSD`] [__predef_detection__]] + + [[`BSD4_2`] [4.2.0]] + [[`BSD4_3`] [4.3.0]] + [[`BSD4_4`] [4.4.0]] + [[`BSD`] [V.R.0]] + ] + */ + +#include +#include +#include +#include +#include + +#ifndef MSGPACK_OS_BSD +#define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_NOT_AVAILABLE +#endif + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(BSD) || \ + defined(_SYSTYPE_BSD) \ + ) +# undef MSGPACK_OS_BSD +# include +# if !defined(MSGPACK_OS_BSD) && defined(BSD4_4) +# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER(4,4,0) +# endif +# if !defined(MSGPACK_OS_BSD) && defined(BSD4_3) +# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER(4,3,0) +# endif +# if !defined(MSGPACK_OS_BSD) && defined(BSD4_2) +# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER(4,2,0) +# endif +# if !defined(MSGPACK_OS_BSD) && defined(BSD) +# define MSGPACK_OS_BSD MSGPACK_PREDEF_MAKE_10_VVRR(BSD) +# endif +# if !defined(MSGPACK_OS_BSD) +# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_OS_BSD +# define MSGPACK_OS_BSD_AVAILABLE +# include +#endif + +#define MSGPACK_OS_BSD_NAME "BSD" + +#else + +#include +#include +#include +#include +#include + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD,MSGPACK_OS_BSD_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/bsd/bsdi.h b/third_party/msgpack/include/msgpack/predef/os/bsd/bsdi.h new file mode 100644 index 000000000000..4718ee775ab9 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/bsd/bsdi.h @@ -0,0 +1,48 @@ +/* +Copyright Rene Rivera 2012-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_BSD_BSDI_H +#define MSGPACK_PREDEF_OS_BSD_BSDI_H + +#include + +/*` +[heading `MSGPACK_OS_BSD_BSDI`] + +[@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__bsdi__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_BSD_BSDI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(__bsdi__) \ + ) +# ifndef MSGPACK_OS_BSD_AVAILABLE +# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE +# define MSGPACK_OS_BSD_AVAILABLE +# endif +# undef MSGPACK_OS_BSD_BSDI +# define MSGPACK_OS_BSD_BSDI MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_OS_BSD_BSDI +# define MSGPACK_OS_BSD_BSDI_AVAILABLE +# include +#endif + +#define MSGPACK_OS_BSD_BSDI_NAME "BSDi BSD/OS" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_BSDI,MSGPACK_OS_BSD_BSDI_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/bsd/dragonfly.h b/third_party/msgpack/include/msgpack/predef/os/bsd/dragonfly.h new file mode 100644 index 000000000000..fde6f24ec61c --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/bsd/dragonfly.h @@ -0,0 +1,50 @@ +/* +Copyright Rene Rivera 2012-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_BSD_DRAGONFLY_H +#define MSGPACK_PREDEF_OS_BSD_DRAGONFLY_H + +#include + +/*` +[heading `MSGPACK_OS_BSD_DRAGONFLY`] + +[@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__DragonFly__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_BSD_DRAGONFLY MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(__DragonFly__) \ + ) +# ifndef MSGPACK_OS_BSD_AVAILABLE +# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE +# define MSGPACK_OS_BSD_AVAILABLE +# endif +# undef MSGPACK_OS_BSD_DRAGONFLY +# if defined(__DragonFly__) +# define MSGPACK_OS_DRAGONFLY_BSD MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_OS_BSD_DRAGONFLY +# define MSGPACK_OS_BSD_DRAGONFLY_AVAILABLE +# include +#endif + +#define MSGPACK_OS_BSD_DRAGONFLY_NAME "DragonFly BSD" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_DRAGONFLY,MSGPACK_OS_BSD_DRAGONFLY_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/bsd/free.h b/third_party/msgpack/include/msgpack/predef/os/bsd/free.h new file mode 100644 index 000000000000..29cc2db4399e --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/bsd/free.h @@ -0,0 +1,60 @@ +/* +Copyright Rene Rivera 2012-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_BSD_FREE_H +#define MSGPACK_PREDEF_OS_BSD_FREE_H + +#include + +/*` +[heading `MSGPACK_OS_BSD_FREE`] + +[@http://en.wikipedia.org/wiki/Freebsd FreeBSD] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__FreeBSD__`] [__predef_detection__]] + + [[`__FreeBSD_version`] [V.R.P]] + ] + */ + +#define MSGPACK_OS_BSD_FREE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(__FreeBSD__) \ + ) +# ifndef MSGPACK_OS_BSD_AVAILABLE +# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE +# define MSGPACK_OS_BSD_AVAILABLE +# endif +# undef MSGPACK_OS_BSD_FREE +# if defined(__FreeBSD_version) +# if __FreeBSD_version < 500000 +# define MSGPACK_OS_BSD_FREE \ + MSGPACK_PREDEF_MAKE_10_VRP000(__FreeBSD_version) +# else +# define MSGPACK_OS_BSD_FREE \ + MSGPACK_PREDEF_MAKE_10_VRR000(__FreeBSD_version) +# endif +# else +# define MSGPACK_OS_BSD_FREE MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_OS_BSD_FREE +# define MSGPACK_OS_BSD_FREE_AVAILABLE +# include +#endif + +#define MSGPACK_OS_BSD_FREE_NAME "Free BSD" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_FREE,MSGPACK_OS_BSD_FREE_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/bsd/net.h b/third_party/msgpack/include/msgpack/predef/os/bsd/net.h new file mode 100644 index 000000000000..2b21b18e6fd4 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/bsd/net.h @@ -0,0 +1,84 @@ +/* +Copyright Rene Rivera 2012-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_BSD_NET_H +#define MSGPACK_PREDEF_OS_BSD_NET_H + +#include + +/*` +[heading `MSGPACK_OS_BSD_NET`] + +[@http://en.wikipedia.org/wiki/Netbsd NetBSD] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__NETBSD__`] [__predef_detection__]] + [[`__NetBSD__`] [__predef_detection__]] + + [[`__NETBSD_version`] [V.R.P]] + [[`NetBSD0_8`] [0.8.0]] + [[`NetBSD0_9`] [0.9.0]] + [[`NetBSD1_0`] [1.0.0]] + [[`__NetBSD_Version`] [V.R.P]] + ] + */ + +#define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(__NETBSD__) || defined(__NetBSD__) \ + ) +# ifndef MSGPACK_OS_BSD_AVAILABLE +# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE +# define MSGPACK_OS_BSD_AVAILABLE +# endif +# undef MSGPACK_OS_BSD_NET +# if defined(__NETBSD__) +# if defined(__NETBSD_version) +# if __NETBSD_version < 500000 +# define MSGPACK_OS_BSD_NET \ + MSGPACK_PREDEF_MAKE_10_VRP000(__NETBSD_version) +# else +# define MSGPACK_OS_BSD_NET \ + MSGPACK_PREDEF_MAKE_10_VRR000(__NETBSD_version) +# endif +# else +# define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +# elif defined(__NetBSD__) +# if !defined(MSGPACK_OS_BSD_NET) && defined(NetBSD0_8) +# define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER(0,8,0) +# endif +# if !defined(MSGPACK_OS_BSD_NET) && defined(NetBSD0_9) +# define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER(0,9,0) +# endif +# if !defined(MSGPACK_OS_BSD_NET) && defined(NetBSD1_0) +# define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER(1,0,0) +# endif +# if !defined(MSGPACK_OS_BSD_NET) && defined(__NetBSD_Version) +# define MSGPACK_OS_BSD_NET \ + MSGPACK_PREDEF_MAKE_10_VVRR00PP00(__NetBSD_Version) +# endif +# if !defined(MSGPACK_OS_BSD_NET) +# define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +# endif +#endif + +#if MSGPACK_OS_BSD_NET +# define MSGPACK_OS_BSD_NET_AVAILABLE +# include +#endif + +#define MSGPACK_OS_BSD_NET_NAME "DragonFly BSD" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_NET,MSGPACK_OS_BSD_NET_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/bsd/open.h b/third_party/msgpack/include/msgpack/predef/os/bsd/open.h new file mode 100644 index 000000000000..3c14b01421d1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/bsd/open.h @@ -0,0 +1,171 @@ +/* +Copyright Rene Rivera 2012-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_BSD_OPEN_H +#define MSGPACK_PREDEF_OS_BSD_OPEN_H + +#include + +/*` +[heading `MSGPACK_OS_BSD_OPEN`] + +[@http://en.wikipedia.org/wiki/Openbsd OpenBSD] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__OpenBSD__`] [__predef_detection__]] + + [[`OpenBSD2_0`] [2.0.0]] + [[`OpenBSD2_1`] [2.1.0]] + [[`OpenBSD2_2`] [2.2.0]] + [[`OpenBSD2_3`] [2.3.0]] + [[`OpenBSD2_4`] [2.4.0]] + [[`OpenBSD2_5`] [2.5.0]] + [[`OpenBSD2_6`] [2.6.0]] + [[`OpenBSD2_7`] [2.7.0]] + [[`OpenBSD2_8`] [2.8.0]] + [[`OpenBSD2_9`] [2.9.0]] + [[`OpenBSD3_0`] [3.0.0]] + [[`OpenBSD3_1`] [3.1.0]] + [[`OpenBSD3_2`] [3.2.0]] + [[`OpenBSD3_3`] [3.3.0]] + [[`OpenBSD3_4`] [3.4.0]] + [[`OpenBSD3_5`] [3.5.0]] + [[`OpenBSD3_6`] [3.6.0]] + [[`OpenBSD3_7`] [3.7.0]] + [[`OpenBSD3_8`] [3.8.0]] + [[`OpenBSD3_9`] [3.9.0]] + [[`OpenBSD4_0`] [4.0.0]] + [[`OpenBSD4_1`] [4.1.0]] + [[`OpenBSD4_2`] [4.2.0]] + [[`OpenBSD4_3`] [4.3.0]] + [[`OpenBSD4_4`] [4.4.0]] + [[`OpenBSD4_5`] [4.5.0]] + [[`OpenBSD4_6`] [4.6.0]] + [[`OpenBSD4_7`] [4.7.0]] + [[`OpenBSD4_8`] [4.8.0]] + [[`OpenBSD4_9`] [4.9.0]] + ] + */ + +#define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(__OpenBSD__) \ + ) +# ifndef MSGPACK_OS_BSD_AVAILABLE +# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE +# define MSGPACK_OS_BSD_AVAILABLE +# endif +# undef MSGPACK_OS_BSD_OPEN +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_0) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,0,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_1) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,1,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_2) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,2,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_3) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,3,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_4) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,4,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_5) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,5,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_6) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,6,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_7) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,7,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_8) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,8,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_9) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,9,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_0) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,0,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_1) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,1,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_2) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,2,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_3) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,3,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_4) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,4,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_5) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,5,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_6) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,6,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_7) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,7,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_8) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,8,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_9) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,9,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_0) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,0,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_1) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,1,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_2) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,2,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_3) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,3,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_4) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,4,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_5) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,5,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_6) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,6,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_7) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,7,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_8) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,8,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_9) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,9,0) +# endif +# if !defined(MSGPACK_OS_BSD_OPEN) +# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_OS_BSD_OPEN +# define MSGPACK_OS_BSD_OPEN_AVAILABLE +# include +#endif + +#define MSGPACK_OS_BSD_OPEN_NAME "OpenBSD" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_OPEN,MSGPACK_OS_BSD_OPEN_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/cygwin.h b/third_party/msgpack/include/msgpack/predef/os/cygwin.h new file mode 100644 index 000000000000..20ec7618a589 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/cygwin.h @@ -0,0 +1,45 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_CYGWIN_H +#define MSGPACK_PREDEF_OS_CYGWIN_H + +#include +#include + +/*` +[heading `MSGPACK_OS_CYGWIN`] + +[@http://en.wikipedia.org/wiki/Cygwin Cygwin] evironment. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__CYGWIN__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_CYGWIN MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(__CYGWIN__) \ + ) +# undef MSGPACK_OS_CYGWIN +# define MSGPACK_OS_CYGWIN MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_OS_CYGWIN +# define MSGPACK_OS_CYGWIN_AVAILABLE +# include +#endif + +#define MSGPACK_OS_CYGWIN_NAME "Cygwin" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_CYGWIN,MSGPACK_OS_CYGWIN_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/haiku.h b/third_party/msgpack/include/msgpack/predef/os/haiku.h new file mode 100644 index 000000000000..53e9b517cd68 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/haiku.h @@ -0,0 +1,46 @@ +/* +Copyright Jessica Hamilton 2014 +Copyright Rene Rivera 2014-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_HAIKU_H +#define MSGPACK_PREDEF_OS_HAIKU_H + +#include +#include + +/*` +[heading `MSGPACK_OS_HAIKU`] + +[@http://en.wikipedia.org/wiki/Haiku_(operating_system) Haiku] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__HAIKU__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_HAIKU MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(__HAIKU__) \ + ) +# undef MSGPACK_OS_HAIKU +# define MSGPACK_OS_HAIKU MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_OS_HAIKU +# define MSGPACK_OS_HAIKU_AVAILABLE +# include +#endif + +#define MSGPACK_OS_HAIKU_NAME "Haiku" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_HAIKU,MSGPACK_OS_HAIKU_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/hpux.h b/third_party/msgpack/include/msgpack/predef/os/hpux.h new file mode 100644 index 000000000000..c3359e7717d4 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/hpux.h @@ -0,0 +1,47 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_HPUX_H +#define MSGPACK_PREDEF_OS_HPUX_H + +#include +#include + +/*` +[heading `MSGPACK_OS_HPUX`] + +[@http://en.wikipedia.org/wiki/HP-UX HP-UX] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`hpux`] [__predef_detection__]] + [[`_hpux`] [__predef_detection__]] + [[`__hpux`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_HPUX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(hpux) || defined(_hpux) || defined(__hpux) \ + ) +# undef MSGPACK_OS_HPUX +# define MSGPACK_OS_HPUX MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_OS_HPUX +# define MSGPACK_OS_HPUX_AVAILABLE +# include +#endif + +#define MSGPACK_OS_HPUX_NAME "HP-UX" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_HPUX,MSGPACK_OS_HPUX_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/ios.h b/third_party/msgpack/include/msgpack/predef/os/ios.h new file mode 100644 index 000000000000..cd14de7491bb --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/ios.h @@ -0,0 +1,51 @@ +/* +Copyright Franz Detro 2014 +Copyright Rene Rivera 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_IOS_H +#define MSGPACK_PREDEF_OS_IOS_H + +#include +#include + +/*` +[heading `MSGPACK_OS_IOS`] + +[@http://en.wikipedia.org/wiki/iOS iOS] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__APPLE__`] [__predef_detection__]] + [[`__MACH__`] [__predef_detection__]] + [[`__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__`] [__predef_detection__]] + + [[`__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__`] [__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__*1000]] + ] + */ + +#define MSGPACK_OS_IOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(__APPLE__) && defined(__MACH__) && \ + defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) \ + ) +# undef MSGPACK_OS_IOS +# define MSGPACK_OS_IOS (__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__*1000) +#endif + +#if MSGPACK_OS_IOS +# define MSGPACK_OS_IOS_AVAILABLE +# include +#endif + +#define MSGPACK_OS_IOS_NAME "iOS" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_IOS,MSGPACK_OS_IOS_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/irix.h b/third_party/msgpack/include/msgpack/predef/os/irix.h new file mode 100644 index 000000000000..b36e2a506aac --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/irix.h @@ -0,0 +1,46 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_IRIX_H +#define MSGPACK_PREDEF_OS_IRIX_H + +#include +#include + +/*` +[heading `MSGPACK_OS_IRIX`] + +[@http://en.wikipedia.org/wiki/Irix IRIX] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`sgi`] [__predef_detection__]] + [[`__sgi`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_IRIX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(sgi) || defined(__sgi) \ + ) +# undef MSGPACK_OS_IRIX +# define MSGPACK_OS_IRIX MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_OS_IRIX +# define MSGPACK_OS_IRIX_AVAILABLE +# include +#endif + +#define MSGPACK_OS_IRIX_NAME "IRIX" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_IRIX,MSGPACK_OS_IRIX_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/linux.h b/third_party/msgpack/include/msgpack/predef/os/linux.h new file mode 100644 index 000000000000..6c517c9d6076 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/linux.h @@ -0,0 +1,46 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_LINUX_H +#define MSGPACK_PREDEF_OS_LINUX_H + +#include +#include + +/*` +[heading `MSGPACK_OS_LINUX`] + +[@http://en.wikipedia.org/wiki/Linux Linux] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`linux`] [__predef_detection__]] + [[`__linux`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_LINUX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(linux) || defined(__linux) \ + ) +# undef MSGPACK_OS_LINUX +# define MSGPACK_OS_LINUX MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_OS_LINUX +# define MSGPACK_OS_LINUX_AVAILABLE +# include +#endif + +#define MSGPACK_OS_LINUX_NAME "Linux" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_LINUX,MSGPACK_OS_LINUX_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/macos.h b/third_party/msgpack/include/msgpack/predef/os/macos.h new file mode 100644 index 000000000000..20dc60d74971 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/macos.h @@ -0,0 +1,65 @@ +/* +Copyright Rene Rivera 2008-2015 +Copyright Franz Detro 2014 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_MACOS_H +#define MSGPACK_PREDEF_OS_MACOS_H + +/* Special case: iOS will define the same predefs as MacOS, and additionally + '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__'. We can guard against that, + but only if we detect iOS first. Hence we will force include iOS detection + * before doing any MacOS detection. + */ +#include + +#include +#include + +/*` +[heading `MSGPACK_OS_MACOS`] + +[@http://en.wikipedia.org/wiki/Mac_OS Mac OS] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`macintosh`] [__predef_detection__]] + [[`Macintosh`] [__predef_detection__]] + [[`__APPLE__`] [__predef_detection__]] + [[`__MACH__`] [__predef_detection__]] + + [[`__APPLE__`, `__MACH__`] [10.0.0]] + [[ /otherwise/ ] [9.0.0]] + ] + */ + +#define MSGPACK_OS_MACOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(macintosh) || defined(Macintosh) || \ + (defined(__APPLE__) && defined(__MACH__)) \ + ) +# undef MSGPACK_OS_MACOS +# if !defined(MSGPACK_OS_MACOS) && defined(__APPLE__) && defined(__MACH__) +# define MSGPACK_OS_MACOS MSGPACK_VERSION_NUMBER(10,0,0) +# endif +# if !defined(MSGPACK_OS_MACOS) +# define MSGPACK_OS_MACOS MSGPACK_VERSION_NUMBER(9,0,0) +# endif +#endif + +#if MSGPACK_OS_MACOS +# define MSGPACK_OS_MACOS_AVAILABLE +# include +#endif + +#define MSGPACK_OS_MACOS_NAME "Mac OS" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_MACOS,MSGPACK_OS_MACOS_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/os400.h b/third_party/msgpack/include/msgpack/predef/os/os400.h new file mode 100644 index 000000000000..53ef52f8dce3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/os400.h @@ -0,0 +1,45 @@ +/* +Copyright Rene Rivera 2011-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_OS400_H +#define MSGPACK_PREDEF_OS_OS400_H + +#include +#include + +/*` +[heading `MSGPACK_OS_OS400`] + +[@http://en.wikipedia.org/wiki/IBM_i IBM OS/400] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__OS400__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_OS400 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(__OS400__) \ + ) +# undef MSGPACK_OS_OS400 +# define MSGPACK_OS_OS400 MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_OS_OS400 +# define MSGPACK_OS_OS400_AVAILABLE +# include +#endif + +#define MSGPACK_OS_OS400_NAME "IBM OS/400" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_OS400,MSGPACK_OS_OS400_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/qnxnto.h b/third_party/msgpack/include/msgpack/predef/os/qnxnto.h new file mode 100644 index 000000000000..80adaa2f3854 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/qnxnto.h @@ -0,0 +1,59 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_QNXNTO_H +#define MSGPACK_PREDEF_OS_QNXNTO_H + +#include +#include + +/*` +[heading `MSGPACK_OS_QNX`] + +[@http://en.wikipedia.org/wiki/QNX QNX] operating system. +Version number available as major, and minor if possible. And +version 4 is specifically detected. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__QNX__`] [__predef_detection__]] + [[`__QNXNTO__`] [__predef_detection__]] + + [[`_NTO_VERSION`] [V.R.0]] + [[`__QNX__`] [4.0.0]] + ] + */ + +#define MSGPACK_OS_QNX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(__QNX__) || defined(__QNXNTO__) \ + ) +# undef MSGPACK_OS_QNX +# if !defined(MSGPACK_OS_QNX) && defined(_NTO_VERSION) +# define MSGPACK_OS_QNX MSGPACK_PREDEF_MAKE_10_VVRR(_NTO_VERSION) +# endif +# if !defined(MSGPACK_OS_QNX) && defined(__QNX__) +# define MSGPACK_OS_QNX MSGPACK_VERSION_NUMBER(4,0,0) +# endif +# if !defined(MSGPACK_OS_QNX) +# define MSGPACK_OS_QNX MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_OS_QNX +# define MSGPACK_OS_QNX_AVAILABLE +# include +#endif + +#define MSGPACK_OS_QNX_NAME "QNX" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_QNX,MSGPACK_OS_QNX_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/solaris.h b/third_party/msgpack/include/msgpack/predef/os/solaris.h new file mode 100644 index 000000000000..f7ccb9c7320c --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/solaris.h @@ -0,0 +1,46 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_SOLARIS_H +#define MSGPACK_PREDEF_OS_SOLARIS_H + +#include +#include + +/*` +[heading `MSGPACK_OS_SOLARIS`] + +[@http://en.wikipedia.org/wiki/Solaris_Operating_Environment Solaris] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`sun`] [__predef_detection__]] + [[`__sun`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_SOLARIS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(sun) || defined(__sun) \ + ) +# undef MSGPACK_OS_SOLARIS +# define MSGPACK_OS_SOLARIS MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_OS_SOLARIS +# define MSGPACK_OS_SOLARIS_AVAILABLE +# include +#endif + +#define MSGPACK_OS_SOLARIS_NAME "Solaris" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_SOLARIS,MSGPACK_OS_SOLARIS_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/unix.h b/third_party/msgpack/include/msgpack/predef/os/unix.h new file mode 100644 index 000000000000..b55970d14e74 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/unix.h @@ -0,0 +1,76 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_UNIX_H +#define MSGPACK_PREDEF_OS_UNIX_H + +#include +#include + +/*` +[heading `MSGPACK_OS_UNIX`] + +[@http://en.wikipedia.org/wiki/Unix Unix Environment] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`unix`] [__predef_detection__]] + [[`__unix`] [__predef_detection__]] + [[`_XOPEN_SOURCE`] [__predef_detection__]] + [[`_POSIX_SOURCE`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_UNIX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(unix) || defined(__unix) || \ + defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE) +# undef MSGPACK_OS_UNIX +# define MSGPACK_OS_UNIX MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_OS_UNIX +# define MSGPACK_OS_UNIX_AVAILABLE +#endif + +#define MSGPACK_OS_UNIX_NAME "Unix Environment" + +/*` +[heading `MSGPACK_OS_SVR4`] + +[@http://en.wikipedia.org/wiki/UNIX_System_V SVR4 Environment] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__sysv__`] [__predef_detection__]] + [[`__SVR4`] [__predef_detection__]] + [[`__svr4__`] [__predef_detection__]] + [[`_SYSTYPE_SVR4`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_SVR4 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__sysv__) || defined(__SVR4) || \ + defined(__svr4__) || defined(_SYSTYPE_SVR4) +# undef MSGPACK_OS_SVR4 +# define MSGPACK_OS_SVR4 MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_OS_SVR4 +# define MSGPACK_OS_SVR4_AVAILABLE +#endif + +#define MSGPACK_OS_SVR4_NAME "SVR4 Environment" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_UNIX,MSGPACK_OS_UNIX_NAME) +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_SVR4,MSGPACK_OS_SVR4_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/vms.h b/third_party/msgpack/include/msgpack/predef/os/vms.h new file mode 100644 index 000000000000..bf87684e9bfb --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/vms.h @@ -0,0 +1,52 @@ +/* +Copyright Rene Rivera 2011-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_VMS_H +#define MSGPACK_PREDEF_OS_VMS_H + +#include +#include + +/*` +[heading `MSGPACK_OS_VMS`] + +[@http://en.wikipedia.org/wiki/Vms VMS] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`VMS`] [__predef_detection__]] + [[`__VMS`] [__predef_detection__]] + + [[`__VMS_VER`] [V.R.P]] + ] + */ + +#define MSGPACK_OS_VMS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(VMS) || defined(__VMS) \ + ) +# undef MSGPACK_OS_VMS +# if defined(__VMS_VER) +# define MSGPACK_OS_VMS MSGPACK_PREDEF_MAKE_10_VVRR00PP00(__VMS_VER) +# else +# define MSGPACK_OS_VMS MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if MSGPACK_OS_VMS +# define MSGPACK_OS_VMS_AVAILABLE +# include +#endif + +#define MSGPACK_OS_VMS_NAME "VMS" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_VMS,MSGPACK_OS_VMS_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/os/windows.h b/third_party/msgpack/include/msgpack/predef/os/windows.h new file mode 100644 index 000000000000..bf73943766cf --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/os/windows.h @@ -0,0 +1,51 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_OS_WINDOWS_H +#define MSGPACK_PREDEF_OS_WINDOWS_H + +#include +#include + +/*` +[heading `MSGPACK_OS_WINDOWS`] + +[@http://en.wikipedia.org/wiki/Category:Microsoft_Windows Microsoft Windows] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`_WIN32`] [__predef_detection__]] + [[`_WIN64`] [__predef_detection__]] + [[`__WIN32__`] [__predef_detection__]] + [[`__TOS_WIN__`] [__predef_detection__]] + [[`__WINDOWS__`] [__predef_detection__]] + ] + */ + +#define MSGPACK_OS_WINDOWS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ + defined(_WIN32) || defined(_WIN64) || \ + defined(__WIN32__) || defined(__TOS_WIN__) || \ + defined(__WINDOWS__) \ + ) +# undef MSGPACK_OS_WINDOWS +# define MSGPACK_OS_WINDOWS MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_OS_WINDOWS +# define MSGPACK_OS_WINDOWS_AVAILABLE +# include +#endif + +#define MSGPACK_OS_WINDOWS_NAME "Microsoft Windows" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_WINDOWS,MSGPACK_OS_WINDOWS_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/other.h b/third_party/msgpack/include/msgpack/predef/other.h new file mode 100644 index 000000000000..5434c5b5f095 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/other.h @@ -0,0 +1,16 @@ +/* +Copyright Rene Rivera 2013-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#if !defined(MSGPACK_PREDEF_OTHER_H) || defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) +#ifndef MSGPACK_PREDEF_OTHER_H +#define MSGPACK_PREDEF_OTHER_H +#endif + +#include +/*#include */ + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/other/endian.h b/third_party/msgpack/include/msgpack/predef/other/endian.h new file mode 100644 index 000000000000..3c609fa41128 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/other/endian.h @@ -0,0 +1,204 @@ +/* +Copyright Rene Rivera 2013-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_ENDIAN_H +#define MSGPACK_PREDEF_ENDIAN_H + +#include +#include +#include +#include +#include +#include + +/*` +[heading `MSGPACK_ENDIAN_*`] + +Detection of endian memory ordering. There are four defined macros +in this header that define the various generally possible endian +memory orderings: + +* `MSGPACK_ENDIAN_BIG_BYTE`, byte-swapped big-endian. +* `MSGPACK_ENDIAN_BIG_WORD`, word-swapped big-endian. +* `MSGPACK_ENDIAN_LITTLE_BYTE`, byte-swapped little-endian. +* `MSGPACK_ENDIAN_LITTLE_WORD`, word-swapped little-endian. + +The detection is conservative in that it only identifies endianness +that it knows for certain. In particular bi-endianness is not +indicated as is it not practically possible to determine the +endianness from anything but an operating system provided +header. And the currently known headers do not define that +programatic bi-endianness is available. + +This implementation is a compilation of various publicly available +information and acquired knowledge: + +# The indispensable documentation of "Pre-defined Compiler Macros" + [@http://sourceforge.net/p/predef/wiki/Endianness Endianness]. +# The various endian specifications available in the + [@http://wikipedia.org/ Wikipedia] computer architecture pages. +# Generally available searches for headers that define endianness. + */ + +#define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE +#define MSGPACK_ENDIAN_BIG_WORD MSGPACK_VERSION_NUMBER_NOT_AVAILABLE +#define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE +#define MSGPACK_ENDIAN_LITTLE_WORD MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +/* GNU libc provides a header defining __BYTE_ORDER, or _BYTE_ORDER. + * And some OSs provide some for of endian header also. + */ +#if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \ + !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD +# if MSGPACK_LIB_C_GNU || MSGPACK_OS_ANDROID +# include +# else +# if MSGPACK_OS_MACOS +# include +# else +# if MSGPACK_OS_BSD +# if MSGPACK_OS_BSD_OPEN +# include +# else +# include +# endif +# endif +# endif +# endif +# if defined(__BYTE_ORDER) +# if defined(__BIG_ENDIAN) && (__BYTE_ORDER == __BIG_ENDIAN) +# undef MSGPACK_ENDIAN_BIG_BYTE +# define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +# if defined(__LITTLE_ENDIAN) && (__BYTE_ORDER == __LITTLE_ENDIAN) +# undef MSGPACK_ENDIAN_LITTLE_BYTE +# define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +# if defined(__PDP_ENDIAN) && (__BYTE_ORDER == __PDP_ENDIAN) +# undef MSGPACK_ENDIAN_LITTLE_WORD +# define MSGPACK_ENDIAN_LITTLE_WORD MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +# endif +# if !defined(__BYTE_ORDER) && defined(_BYTE_ORDER) +# if defined(_BIG_ENDIAN) && (_BYTE_ORDER == _BIG_ENDIAN) +# undef MSGPACK_ENDIAN_BIG_BYTE +# define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +# if defined(_LITTLE_ENDIAN) && (_BYTE_ORDER == _LITTLE_ENDIAN) +# undef MSGPACK_ENDIAN_LITTLE_BYTE +# define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +# if defined(_PDP_ENDIAN) && (_BYTE_ORDER == _PDP_ENDIAN) +# undef MSGPACK_ENDIAN_LITTLE_WORD +# define MSGPACK_ENDIAN_LITTLE_WORD MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +# endif +#endif + +/* Built-in byte-swpped big-endian macros. + */ +#if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \ + !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD +# if (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)) || \ + (defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN)) || \ + defined(__ARMEB__) || \ + defined(__THUMBEB__) || \ + defined(__AARCH64EB__) || \ + defined(_MIPSEB) || \ + defined(__MIPSEB) || \ + defined(__MIPSEB__) +# undef MSGPACK_ENDIAN_BIG_BYTE +# define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +/* Built-in byte-swpped little-endian macros. + */ +#if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \ + !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD +# if (defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)) || \ + (defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN)) || \ + defined(__ARMEL__) || \ + defined(__THUMBEL__) || \ + defined(__AARCH64EL__) || \ + defined(_MIPSEL) || \ + defined(__MIPSEL) || \ + defined(__MIPSEL__) +# undef MSGPACK_ENDIAN_LITTLE_BYTE +# define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +/* Some architectures are strictly one endianess (as opposed + * the current common bi-endianess). + */ +#if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \ + !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD +# include +# if MSGPACK_ARCH_M68K || \ + MSGPACK_ARCH_PARISC || \ + MSGPACK_ARCH_SPARC || \ + MSGPACK_ARCH_SYS370 || \ + MSGPACK_ARCH_SYS390 || \ + MSGPACK_ARCH_Z +# undef MSGPACK_ENDIAN_BIG_BYTE +# define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +# if MSGPACK_ARCH_AMD64 || \ + MSGPACK_ARCH_IA64 || \ + MSGPACK_ARCH_X86 || \ + MSGPACK_ARCH_BLACKFIN +# undef MSGPACK_ENDIAN_LITTLE_BYTE +# define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +/* Windows on ARM, if not otherwise detected/specified, is always + * byte-swaped little-endian. + */ +#if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \ + !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD +# if MSGPACK_ARCH_ARM +# include +# if MSGPACK_OS_WINDOWS +# undef MSGPACK_ENDIAN_LITTLE_BYTE +# define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +# endif +#endif + +#if MSGPACK_ENDIAN_BIG_BYTE +# define MSGPACK_ENDIAN_BIG_BYTE_AVAILABLE +#endif +#if MSGPACK_ENDIAN_BIG_WORD +# define MSGPACK_ENDIAN_BIG_WORD_BYTE_AVAILABLE +#endif +#if MSGPACK_ENDIAN_LITTLE_BYTE +# define MSGPACK_ENDIAN_LITTLE_BYTE_AVAILABLE +#endif +#if MSGPACK_ENDIAN_LITTLE_WORD +# define MSGPACK_ENDIAN_LITTLE_WORD_BYTE_AVAILABLE +#endif + +#define MSGPACK_ENDIAN_BIG_BYTE_NAME "Byte-Swapped Big-Endian" +#define MSGPACK_ENDIAN_BIG_WORD_NAME "Word-Swapped Big-Endian" +#define MSGPACK_ENDIAN_LITTLE_BYTE_NAME "Byte-Swapped Little-Endian" +#define MSGPACK_ENDIAN_LITTLE_WORD_NAME "Word-Swapped Little-Endian" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ENDIAN_BIG_BYTE,MSGPACK_ENDIAN_BIG_BYTE_NAME) + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ENDIAN_BIG_WORD,MSGPACK_ENDIAN_BIG_WORD_NAME) + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ENDIAN_LITTLE_BYTE,MSGPACK_ENDIAN_LITTLE_BYTE_NAME) + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ENDIAN_LITTLE_WORD,MSGPACK_ENDIAN_LITTLE_WORD_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/platform.h b/third_party/msgpack/include/msgpack/predef/platform.h new file mode 100644 index 000000000000..34255c2bc664 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/platform.h @@ -0,0 +1,21 @@ +/* +Copyright Rene Rivera 2013-2015 +Copyright (c) Microsoft Corporation 2014 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#if !defined(MSGPACK_PREDEF_PLATFORM_H) || defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) +#ifndef MSGPACK_PREDEF_PLATFORM_H +#define MSGPACK_PREDEF_PLATFORM_H +#endif + +#include +#include +#include +#include +#include +/*#include */ + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/platform/mingw.h b/third_party/msgpack/include/msgpack/predef/platform/mingw.h new file mode 100644 index 000000000000..213f932cac05 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/platform/mingw.h @@ -0,0 +1,69 @@ +/* +Copyright Rene Rivera 2008-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_COMPILER_MINGW_H +#define MSGPACK_PREDEF_COMPILER_MINGW_H + +#include +#include + +/*` +[heading `MSGPACK_PLAT_MINGW`] + +[@http://en.wikipedia.org/wiki/MinGW MinGW] platform. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__MINGW32__`] [__predef_detection__]] + [[`__MINGW64__`] [__predef_detection__]] + + [[`__MINGW64_VERSION_MAJOR`, `__MINGW64_VERSION_MINOR`] [V.R.0]] + [[`__MINGW32_VERSION_MAJOR`, `__MINGW32_VERSION_MINOR`] [V.R.0]] + ] + */ + +#define MSGPACK_PLAT_MINGW MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__MINGW32__) || defined(__MINGW64__) +# include <_mingw.h> +# if !defined(MSGPACK_PLAT_MINGW_DETECTION) && (defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR)) +# define MSGPACK_PLAT_MINGW_DETECTION \ + MSGPACK_VERSION_NUMBER(__MINGW64_VERSION_MAJOR,__MINGW64_VERSION_MINOR,0) +# endif +# if !defined(MSGPACK_PLAT_MINGW_DETECTION) && (defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR)) +# define MSGPACK_PLAT_MINGW_DETECTION \ + MSGPACK_VERSION_NUMBER(__MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION,0) +# endif +# if !defined(MSGPACK_PLAT_MINGW_DETECTION) +# define MSGPACK_PLAT_MINGW_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#ifdef MSGPACK_PLAT_MINGW_DETECTION +# define MSGPACK_PLAT_MINGW_AVAILABLE +# if defined(MSGPACK_PREDEF_DETAIL_PLAT_DETECTED) +# define MSGPACK_PLAT_MINGW_EMULATED MSGPACK_PLAT_MINGW_DETECTION +# else +# undef MSGPACK_PLAT_MINGW +# define MSGPACK_PLAT_MINGW MSGPACK_PLAT_MINGW_DETECTION +# endif +# include +#endif + +#define MSGPACK_PLAT_MINGW_NAME "MinGW" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_MINGW,MSGPACK_PLAT_MINGW_NAME) + +#ifdef MSGPACK_PLAT_MINGW_EMULATED +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_MINGW_EMULATED,MSGPACK_PLAT_MINGW_NAME) +#endif diff --git a/third_party/msgpack/include/msgpack/predef/platform/windows_desktop.h b/third_party/msgpack/include/msgpack/predef/platform/windows_desktop.h new file mode 100644 index 000000000000..9f0c4f1fc23f --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/platform/windows_desktop.h @@ -0,0 +1,45 @@ +/* +Copyright (c) Microsoft Corporation 2014 +Copyright Rene Rivera 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_DESKTOP_H +#define MSGPACK_PREDEF_PLAT_WINDOWS_DESKTOP_H + +#include +#include +#include + +/*` +[heading `MSGPACK_PLAT_WINDOWS_DESKTOP`] + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`!WINAPI_FAMILY`] [__predef_detection__]] + [[`WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP`] [__predef_detection__]] + ] + */ + +#define MSGPACK_PLAT_WINDOWS_DESKTOP MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if MSGPACK_OS_WINDOWS && \ + ( !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) ) +# undef MSGPACK_PLAT_WINDOWS_DESKTOP +# define MSGPACK_PLAT_WINDOWS_DESKTOP MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_PLAT_WINDOWS_DESKTOP +# define MSGPACK_PLAT_WINDOWS_DESKTOP_AVAILABLE +# include +#endif + +#define MSGPACK_PLAT_WINDOWS_DESKTOP_NAME "Windows Desktop" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_DESKTOP,MSGPACK_PLAT_WINDOWS_DESKTOP_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/platform/windows_phone.h b/third_party/msgpack/include/msgpack/predef/platform/windows_phone.h new file mode 100644 index 000000000000..a224f69c9b89 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/platform/windows_phone.h @@ -0,0 +1,43 @@ +/* +Copyright (c) Microsoft Corporation 2014 +Copyright Rene Rivera 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_PHONE_H +#define MSGPACK_PREDEF_PLAT_WINDOWS_PHONE_H + +#include +#include +#include + +/*` +[heading `MSGPACK_PLAT_WINDOWS_PHONE`] + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP`] [__predef_detection__]] + ] + */ + +#define MSGPACK_PLAT_WINDOWS_PHONE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if MSGPACK_OS_WINDOWS && defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP +# undef MSGPACK_PLAT_WINDOWS_PHONE +# define MSGPACK_PLAT_WINDOWS_PHONE MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_PLAT_WINDOWS_PHONE +# define MSGPACK_PLAT_WINDOWS_PHONE_AVAILABLE +# include +#endif + +#define MSGPACK_PLAT_WINDOWS_PHONE_NAME "Windows Phone" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_PHONE,MSGPACK_PLAT_WINDOWS_PHONE_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/platform/windows_runtime.h b/third_party/msgpack/include/msgpack/predef/platform/windows_runtime.h new file mode 100644 index 000000000000..759b2f8658c4 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/platform/windows_runtime.h @@ -0,0 +1,45 @@ +/* +Copyright (c) Microsoft Corporation 2014 +Copyright Rene Rivera 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_RUNTIME_H +#define MSGPACK_PREDEF_PLAT_WINDOWS_RUNTIME_H + +#include +#include +#include + +/*` +[heading `MSGPACK_PLAT_WINDOWS_RUNTIME`] + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`WINAPI_FAMILY == WINAPI_FAMILY_APP`] [__predef_detection__]] + [[`WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP`] [__predef_detection__]] + ] + */ + +#define MSGPACK_PLAT_WINDOWS_RUNTIME MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if MSGPACK_OS_WINDOWS && defined(WINAPI_FAMILY) && \ + ( WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP ) +# undef MSGPACK_PLAT_WINDOWS_RUNTIME +# define MSGPACK_PLAT_WINDOWS_RUNTIME MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_PLAT_WINDOWS_RUNTIME +# define MSGPACK_PLAT_WINDOWS_RUNTIME_AVAILABLE +# include +#endif + +#define MSGPACK_PLAT_WINDOWS_RUNTIME_NAME "Windows Runtime" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_RUNTIME,MSGPACK_PLAT_WINDOWS_RUNTIME_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/platform/windows_store.h b/third_party/msgpack/include/msgpack/predef/platform/windows_store.h new file mode 100644 index 000000000000..c538c9b3e8f2 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/platform/windows_store.h @@ -0,0 +1,43 @@ +/* +Copyright (c) Microsoft Corporation 2014 +Copyright Rene Rivera 2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_STORE_H +#define MSGPACK_PREDEF_PLAT_WINDOWS_STORE_H + +#include +#include +#include + +/*` +[heading `MSGPACK_PLAT_WINDOWS_STORE`] + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`WINAPI_FAMILY == WINAPI_FAMILY_APP`] [__predef_detection__]] + ] + */ + +#define MSGPACK_PLAT_WINDOWS_STORE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE + +#if MSGPACK_OS_WINDOWS && defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_APP +# undef MSGPACK_PLAT_WINDOWS_STORE +# define MSGPACK_PLAT_WINDOWS_STORE MSGPACK_VERSION_NUMBER_AVAILABLE +#endif + +#if MSGPACK_PLAT_WINDOWS_STORE +# define MSGPACK_PLAT_WINDOWS_STORE_AVAILABLE +# include +#endif + +#define MSGPACK_PLAT_WINDOWS_STORE_NAME "Windows Store" + +#endif + +#include +MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_STORE,MSGPACK_PLAT_WINDOWS_STORE_NAME) diff --git a/third_party/msgpack/include/msgpack/predef/version.h b/third_party/msgpack/include/msgpack/predef/version.h new file mode 100644 index 000000000000..12a3382244b4 --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/version.h @@ -0,0 +1,15 @@ +/* +Copyright Rene Rivera 2015-2016 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_VERSION_H +#define MSGPACK_PREDEF_VERSION_H + +#include + +#define MSGPACK_PREDEF_VERSION MSGPACK_VERSION_NUMBER(1,4,1) + +#endif diff --git a/third_party/msgpack/include/msgpack/predef/version_number.h b/third_party/msgpack/include/msgpack/predef/version_number.h new file mode 100644 index 000000000000..be8ff5527bda --- /dev/null +++ b/third_party/msgpack/include/msgpack/predef/version_number.h @@ -0,0 +1,53 @@ +/* +Copyright Rene Rivera 2005, 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef MSGPACK_PREDEF_VERSION_NUMBER_H +#define MSGPACK_PREDEF_VERSION_NUMBER_H + +/*` +[heading `MSGPACK_VERSION_NUMBER`] + +`` +MSGPACK_VERSION_NUMBER(major,minor,patch) +`` + +Defines standard version numbers, with these properties: + +* Decimal base whole numbers in the range \[0,1000000000). + The number range is designed to allow for a (2,2,5) triplet. + Which fits within a 32 bit value. +* The `major` number can be in the \[0,99\] range. +* The `minor` number can be in the \[0,99\] range. +* The `patch` number can be in the \[0,99999\] range. +* Values can be specified in any base. As the defined value + is an constant expression. +* Value can be directly used in both preprocessor and compiler + expressions for comparison to other similarly defined values. +* The implementation enforces the individual ranges for the + major, minor, and patch numbers. And values over the ranges + are truncated (modulo). + +*/ +#define MSGPACK_VERSION_NUMBER(major,minor,patch) \ + ( (((major)%100)*10000000) + (((minor)%100)*100000) + ((patch)%100000) ) + +#define MSGPACK_VERSION_NUMBER_MAX \ + MSGPACK_VERSION_NUMBER(99,99,99999) + +#define MSGPACK_VERSION_NUMBER_ZERO \ + MSGPACK_VERSION_NUMBER(0,0,0) + +#define MSGPACK_VERSION_NUMBER_MIN \ + MSGPACK_VERSION_NUMBER(0,0,1) + +#define MSGPACK_VERSION_NUMBER_AVAILABLE \ + MSGPACK_VERSION_NUMBER_MIN + +#define MSGPACK_VERSION_NUMBER_NOT_AVAILABLE \ + MSGPACK_VERSION_NUMBER_ZERO + +#endif diff --git a/third_party/msgpack/include/msgpack/preprocessor.hpp b/third_party/msgpack/include/msgpack/preprocessor.hpp new file mode 100644 index 000000000000..d2ba938756af --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor.hpp @@ -0,0 +1,19 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org/libs/preprocessor for documentation. */ +# +# ifndef MSGPACK_PREPROCESSOR_HPP +# define MSGPACK_PREPROCESSOR_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/arithmetic.hpp b/third_party/msgpack/include/msgpack/preprocessor/arithmetic.hpp new file mode 100644 index 000000000000..3d76484d5cc5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/arithmetic.hpp @@ -0,0 +1,25 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_HPP +# define MSGPACK_PREPROCESSOR_ARITHMETIC_HPP +# +# include +# include +# include +# include +# include +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/arithmetic/add.hpp b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/add.hpp new file mode 100644 index 000000000000..d020c1e61046 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/add.hpp @@ -0,0 +1,51 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_ADD_HPP +# define MSGPACK_PREPROCESSOR_ARITHMETIC_ADD_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ADD */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ADD(x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_ADD_P, MSGPACK_PP_ADD_O, (x, y))) +# else +# define MSGPACK_PP_ADD(x, y) MSGPACK_PP_ADD_I(x, y) +# define MSGPACK_PP_ADD_I(x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_ADD_P, MSGPACK_PP_ADD_O, (x, y))) +# endif +# +# define MSGPACK_PP_ADD_P(d, xy) MSGPACK_PP_TUPLE_ELEM(2, 1, xy) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_ADD_O(d, xy) MSGPACK_PP_ADD_O_I xy +# else +# define MSGPACK_PP_ADD_O(d, xy) MSGPACK_PP_ADD_O_I(MSGPACK_PP_TUPLE_ELEM(2, 0, xy), MSGPACK_PP_TUPLE_ELEM(2, 1, xy)) +# endif +# +# define MSGPACK_PP_ADD_O_I(x, y) (MSGPACK_PP_INC(x), MSGPACK_PP_DEC(y)) +# +# /* MSGPACK_PP_ADD_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ADD_D(d, x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ADD_P, MSGPACK_PP_ADD_O, (x, y))) +# else +# define MSGPACK_PP_ADD_D(d, x, y) MSGPACK_PP_ADD_D_I(d, x, y) +# define MSGPACK_PP_ADD_D_I(d, x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ADD_P, MSGPACK_PP_ADD_O, (x, y))) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/arithmetic/dec.hpp b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/dec.hpp new file mode 100644 index 000000000000..6ff506766c18 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/dec.hpp @@ -0,0 +1,289 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_DEC_HPP +# define MSGPACK_PREPROCESSOR_ARITHMETIC_DEC_HPP +# +# include +# +# /* MSGPACK_PP_DEC */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_DEC(x) MSGPACK_PP_DEC_I(x) +# else +# define MSGPACK_PP_DEC(x) MSGPACK_PP_DEC_OO((x)) +# define MSGPACK_PP_DEC_OO(par) MSGPACK_PP_DEC_I ## par +# endif +# +# define MSGPACK_PP_DEC_I(x) MSGPACK_PP_DEC_ ## x +# +# define MSGPACK_PP_DEC_0 0 +# define MSGPACK_PP_DEC_1 0 +# define MSGPACK_PP_DEC_2 1 +# define MSGPACK_PP_DEC_3 2 +# define MSGPACK_PP_DEC_4 3 +# define MSGPACK_PP_DEC_5 4 +# define MSGPACK_PP_DEC_6 5 +# define MSGPACK_PP_DEC_7 6 +# define MSGPACK_PP_DEC_8 7 +# define MSGPACK_PP_DEC_9 8 +# define MSGPACK_PP_DEC_10 9 +# define MSGPACK_PP_DEC_11 10 +# define MSGPACK_PP_DEC_12 11 +# define MSGPACK_PP_DEC_13 12 +# define MSGPACK_PP_DEC_14 13 +# define MSGPACK_PP_DEC_15 14 +# define MSGPACK_PP_DEC_16 15 +# define MSGPACK_PP_DEC_17 16 +# define MSGPACK_PP_DEC_18 17 +# define MSGPACK_PP_DEC_19 18 +# define MSGPACK_PP_DEC_20 19 +# define MSGPACK_PP_DEC_21 20 +# define MSGPACK_PP_DEC_22 21 +# define MSGPACK_PP_DEC_23 22 +# define MSGPACK_PP_DEC_24 23 +# define MSGPACK_PP_DEC_25 24 +# define MSGPACK_PP_DEC_26 25 +# define MSGPACK_PP_DEC_27 26 +# define MSGPACK_PP_DEC_28 27 +# define MSGPACK_PP_DEC_29 28 +# define MSGPACK_PP_DEC_30 29 +# define MSGPACK_PP_DEC_31 30 +# define MSGPACK_PP_DEC_32 31 +# define MSGPACK_PP_DEC_33 32 +# define MSGPACK_PP_DEC_34 33 +# define MSGPACK_PP_DEC_35 34 +# define MSGPACK_PP_DEC_36 35 +# define MSGPACK_PP_DEC_37 36 +# define MSGPACK_PP_DEC_38 37 +# define MSGPACK_PP_DEC_39 38 +# define MSGPACK_PP_DEC_40 39 +# define MSGPACK_PP_DEC_41 40 +# define MSGPACK_PP_DEC_42 41 +# define MSGPACK_PP_DEC_43 42 +# define MSGPACK_PP_DEC_44 43 +# define MSGPACK_PP_DEC_45 44 +# define MSGPACK_PP_DEC_46 45 +# define MSGPACK_PP_DEC_47 46 +# define MSGPACK_PP_DEC_48 47 +# define MSGPACK_PP_DEC_49 48 +# define MSGPACK_PP_DEC_50 49 +# define MSGPACK_PP_DEC_51 50 +# define MSGPACK_PP_DEC_52 51 +# define MSGPACK_PP_DEC_53 52 +# define MSGPACK_PP_DEC_54 53 +# define MSGPACK_PP_DEC_55 54 +# define MSGPACK_PP_DEC_56 55 +# define MSGPACK_PP_DEC_57 56 +# define MSGPACK_PP_DEC_58 57 +# define MSGPACK_PP_DEC_59 58 +# define MSGPACK_PP_DEC_60 59 +# define MSGPACK_PP_DEC_61 60 +# define MSGPACK_PP_DEC_62 61 +# define MSGPACK_PP_DEC_63 62 +# define MSGPACK_PP_DEC_64 63 +# define MSGPACK_PP_DEC_65 64 +# define MSGPACK_PP_DEC_66 65 +# define MSGPACK_PP_DEC_67 66 +# define MSGPACK_PP_DEC_68 67 +# define MSGPACK_PP_DEC_69 68 +# define MSGPACK_PP_DEC_70 69 +# define MSGPACK_PP_DEC_71 70 +# define MSGPACK_PP_DEC_72 71 +# define MSGPACK_PP_DEC_73 72 +# define MSGPACK_PP_DEC_74 73 +# define MSGPACK_PP_DEC_75 74 +# define MSGPACK_PP_DEC_76 75 +# define MSGPACK_PP_DEC_77 76 +# define MSGPACK_PP_DEC_78 77 +# define MSGPACK_PP_DEC_79 78 +# define MSGPACK_PP_DEC_80 79 +# define MSGPACK_PP_DEC_81 80 +# define MSGPACK_PP_DEC_82 81 +# define MSGPACK_PP_DEC_83 82 +# define MSGPACK_PP_DEC_84 83 +# define MSGPACK_PP_DEC_85 84 +# define MSGPACK_PP_DEC_86 85 +# define MSGPACK_PP_DEC_87 86 +# define MSGPACK_PP_DEC_88 87 +# define MSGPACK_PP_DEC_89 88 +# define MSGPACK_PP_DEC_90 89 +# define MSGPACK_PP_DEC_91 90 +# define MSGPACK_PP_DEC_92 91 +# define MSGPACK_PP_DEC_93 92 +# define MSGPACK_PP_DEC_94 93 +# define MSGPACK_PP_DEC_95 94 +# define MSGPACK_PP_DEC_96 95 +# define MSGPACK_PP_DEC_97 96 +# define MSGPACK_PP_DEC_98 97 +# define MSGPACK_PP_DEC_99 98 +# define MSGPACK_PP_DEC_100 99 +# define MSGPACK_PP_DEC_101 100 +# define MSGPACK_PP_DEC_102 101 +# define MSGPACK_PP_DEC_103 102 +# define MSGPACK_PP_DEC_104 103 +# define MSGPACK_PP_DEC_105 104 +# define MSGPACK_PP_DEC_106 105 +# define MSGPACK_PP_DEC_107 106 +# define MSGPACK_PP_DEC_108 107 +# define MSGPACK_PP_DEC_109 108 +# define MSGPACK_PP_DEC_110 109 +# define MSGPACK_PP_DEC_111 110 +# define MSGPACK_PP_DEC_112 111 +# define MSGPACK_PP_DEC_113 112 +# define MSGPACK_PP_DEC_114 113 +# define MSGPACK_PP_DEC_115 114 +# define MSGPACK_PP_DEC_116 115 +# define MSGPACK_PP_DEC_117 116 +# define MSGPACK_PP_DEC_118 117 +# define MSGPACK_PP_DEC_119 118 +# define MSGPACK_PP_DEC_120 119 +# define MSGPACK_PP_DEC_121 120 +# define MSGPACK_PP_DEC_122 121 +# define MSGPACK_PP_DEC_123 122 +# define MSGPACK_PP_DEC_124 123 +# define MSGPACK_PP_DEC_125 124 +# define MSGPACK_PP_DEC_126 125 +# define MSGPACK_PP_DEC_127 126 +# define MSGPACK_PP_DEC_128 127 +# define MSGPACK_PP_DEC_129 128 +# define MSGPACK_PP_DEC_130 129 +# define MSGPACK_PP_DEC_131 130 +# define MSGPACK_PP_DEC_132 131 +# define MSGPACK_PP_DEC_133 132 +# define MSGPACK_PP_DEC_134 133 +# define MSGPACK_PP_DEC_135 134 +# define MSGPACK_PP_DEC_136 135 +# define MSGPACK_PP_DEC_137 136 +# define MSGPACK_PP_DEC_138 137 +# define MSGPACK_PP_DEC_139 138 +# define MSGPACK_PP_DEC_140 139 +# define MSGPACK_PP_DEC_141 140 +# define MSGPACK_PP_DEC_142 141 +# define MSGPACK_PP_DEC_143 142 +# define MSGPACK_PP_DEC_144 143 +# define MSGPACK_PP_DEC_145 144 +# define MSGPACK_PP_DEC_146 145 +# define MSGPACK_PP_DEC_147 146 +# define MSGPACK_PP_DEC_148 147 +# define MSGPACK_PP_DEC_149 148 +# define MSGPACK_PP_DEC_150 149 +# define MSGPACK_PP_DEC_151 150 +# define MSGPACK_PP_DEC_152 151 +# define MSGPACK_PP_DEC_153 152 +# define MSGPACK_PP_DEC_154 153 +# define MSGPACK_PP_DEC_155 154 +# define MSGPACK_PP_DEC_156 155 +# define MSGPACK_PP_DEC_157 156 +# define MSGPACK_PP_DEC_158 157 +# define MSGPACK_PP_DEC_159 158 +# define MSGPACK_PP_DEC_160 159 +# define MSGPACK_PP_DEC_161 160 +# define MSGPACK_PP_DEC_162 161 +# define MSGPACK_PP_DEC_163 162 +# define MSGPACK_PP_DEC_164 163 +# define MSGPACK_PP_DEC_165 164 +# define MSGPACK_PP_DEC_166 165 +# define MSGPACK_PP_DEC_167 166 +# define MSGPACK_PP_DEC_168 167 +# define MSGPACK_PP_DEC_169 168 +# define MSGPACK_PP_DEC_170 169 +# define MSGPACK_PP_DEC_171 170 +# define MSGPACK_PP_DEC_172 171 +# define MSGPACK_PP_DEC_173 172 +# define MSGPACK_PP_DEC_174 173 +# define MSGPACK_PP_DEC_175 174 +# define MSGPACK_PP_DEC_176 175 +# define MSGPACK_PP_DEC_177 176 +# define MSGPACK_PP_DEC_178 177 +# define MSGPACK_PP_DEC_179 178 +# define MSGPACK_PP_DEC_180 179 +# define MSGPACK_PP_DEC_181 180 +# define MSGPACK_PP_DEC_182 181 +# define MSGPACK_PP_DEC_183 182 +# define MSGPACK_PP_DEC_184 183 +# define MSGPACK_PP_DEC_185 184 +# define MSGPACK_PP_DEC_186 185 +# define MSGPACK_PP_DEC_187 186 +# define MSGPACK_PP_DEC_188 187 +# define MSGPACK_PP_DEC_189 188 +# define MSGPACK_PP_DEC_190 189 +# define MSGPACK_PP_DEC_191 190 +# define MSGPACK_PP_DEC_192 191 +# define MSGPACK_PP_DEC_193 192 +# define MSGPACK_PP_DEC_194 193 +# define MSGPACK_PP_DEC_195 194 +# define MSGPACK_PP_DEC_196 195 +# define MSGPACK_PP_DEC_197 196 +# define MSGPACK_PP_DEC_198 197 +# define MSGPACK_PP_DEC_199 198 +# define MSGPACK_PP_DEC_200 199 +# define MSGPACK_PP_DEC_201 200 +# define MSGPACK_PP_DEC_202 201 +# define MSGPACK_PP_DEC_203 202 +# define MSGPACK_PP_DEC_204 203 +# define MSGPACK_PP_DEC_205 204 +# define MSGPACK_PP_DEC_206 205 +# define MSGPACK_PP_DEC_207 206 +# define MSGPACK_PP_DEC_208 207 +# define MSGPACK_PP_DEC_209 208 +# define MSGPACK_PP_DEC_210 209 +# define MSGPACK_PP_DEC_211 210 +# define MSGPACK_PP_DEC_212 211 +# define MSGPACK_PP_DEC_213 212 +# define MSGPACK_PP_DEC_214 213 +# define MSGPACK_PP_DEC_215 214 +# define MSGPACK_PP_DEC_216 215 +# define MSGPACK_PP_DEC_217 216 +# define MSGPACK_PP_DEC_218 217 +# define MSGPACK_PP_DEC_219 218 +# define MSGPACK_PP_DEC_220 219 +# define MSGPACK_PP_DEC_221 220 +# define MSGPACK_PP_DEC_222 221 +# define MSGPACK_PP_DEC_223 222 +# define MSGPACK_PP_DEC_224 223 +# define MSGPACK_PP_DEC_225 224 +# define MSGPACK_PP_DEC_226 225 +# define MSGPACK_PP_DEC_227 226 +# define MSGPACK_PP_DEC_228 227 +# define MSGPACK_PP_DEC_229 228 +# define MSGPACK_PP_DEC_230 229 +# define MSGPACK_PP_DEC_231 230 +# define MSGPACK_PP_DEC_232 231 +# define MSGPACK_PP_DEC_233 232 +# define MSGPACK_PP_DEC_234 233 +# define MSGPACK_PP_DEC_235 234 +# define MSGPACK_PP_DEC_236 235 +# define MSGPACK_PP_DEC_237 236 +# define MSGPACK_PP_DEC_238 237 +# define MSGPACK_PP_DEC_239 238 +# define MSGPACK_PP_DEC_240 239 +# define MSGPACK_PP_DEC_241 240 +# define MSGPACK_PP_DEC_242 241 +# define MSGPACK_PP_DEC_243 242 +# define MSGPACK_PP_DEC_244 243 +# define MSGPACK_PP_DEC_245 244 +# define MSGPACK_PP_DEC_246 245 +# define MSGPACK_PP_DEC_247 246 +# define MSGPACK_PP_DEC_248 247 +# define MSGPACK_PP_DEC_249 248 +# define MSGPACK_PP_DEC_250 249 +# define MSGPACK_PP_DEC_251 250 +# define MSGPACK_PP_DEC_252 251 +# define MSGPACK_PP_DEC_253 252 +# define MSGPACK_PP_DEC_254 253 +# define MSGPACK_PP_DEC_255 254 +# define MSGPACK_PP_DEC_256 255 +# define MSGPACK_PP_DEC_257 256 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/arithmetic/detail/div_base.hpp b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/detail/div_base.hpp new file mode 100644 index 000000000000..7c5e2fc77614 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/detail/div_base.hpp @@ -0,0 +1,61 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP +# define MSGPACK_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP +# +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_DIV_BASE */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_DIV_BASE(x, y) MSGPACK_PP_WHILE(MSGPACK_PP_DIV_BASE_P, MSGPACK_PP_DIV_BASE_O, (0, x, y)) +# else +# define MSGPACK_PP_DIV_BASE(x, y) MSGPACK_PP_DIV_BASE_I(x, y) +# define MSGPACK_PP_DIV_BASE_I(x, y) MSGPACK_PP_WHILE(MSGPACK_PP_DIV_BASE_P, MSGPACK_PP_DIV_BASE_O, (0, x, y)) +# endif +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_DIV_BASE_P(d, rxy) MSGPACK_PP_DIV_BASE_P_IM(d, MSGPACK_PP_TUPLE_REM_3 rxy) +# define MSGPACK_PP_DIV_BASE_P_IM(d, im) MSGPACK_PP_DIV_BASE_P_I(d, im) +# else +# define MSGPACK_PP_DIV_BASE_P(d, rxy) MSGPACK_PP_DIV_BASE_P_I(d, MSGPACK_PP_TUPLE_ELEM(3, 0, rxy), MSGPACK_PP_TUPLE_ELEM(3, 1, rxy), MSGPACK_PP_TUPLE_ELEM(3, 2, rxy)) +# endif +# +# define MSGPACK_PP_DIV_BASE_P_I(d, r, x, y) MSGPACK_PP_LESS_EQUAL_D(d, y, x) +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_DIV_BASE_O(d, rxy) MSGPACK_PP_DIV_BASE_O_IM(d, MSGPACK_PP_TUPLE_REM_3 rxy) +# define MSGPACK_PP_DIV_BASE_O_IM(d, im) MSGPACK_PP_DIV_BASE_O_I(d, im) +# else +# define MSGPACK_PP_DIV_BASE_O(d, rxy) MSGPACK_PP_DIV_BASE_O_I(d, MSGPACK_PP_TUPLE_ELEM(3, 0, rxy), MSGPACK_PP_TUPLE_ELEM(3, 1, rxy), MSGPACK_PP_TUPLE_ELEM(3, 2, rxy)) +# endif +# +# define MSGPACK_PP_DIV_BASE_O_I(d, r, x, y) (MSGPACK_PP_INC(r), MSGPACK_PP_SUB_D(d, x, y), y) +# +# /* MSGPACK_PP_DIV_BASE_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_DIV_BASE_D(d, x, y) MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_DIV_BASE_P, MSGPACK_PP_DIV_BASE_O, (0, x, y)) +# else +# define MSGPACK_PP_DIV_BASE_D(d, x, y) MSGPACK_PP_DIV_BASE_D_I(d, x, y) +# define MSGPACK_PP_DIV_BASE_D_I(d, x, y) MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_DIV_BASE_P, MSGPACK_PP_DIV_BASE_O, (0, x, y)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/arithmetic/div.hpp b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/div.hpp new file mode 100644 index 000000000000..1b993c22335a --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/div.hpp @@ -0,0 +1,39 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_DIV_HPP +# define MSGPACK_PREPROCESSOR_ARITHMETIC_DIV_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_DIV */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_DIV(x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_DIV_BASE(x, y)) +# else +# define MSGPACK_PP_DIV(x, y) MSGPACK_PP_DIV_I(x, y) +# define MSGPACK_PP_DIV_I(x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_DIV_BASE(x, y)) +# endif +# +# /* MSGPACK_PP_DIV_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_DIV_D(d, x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_DIV_BASE_D(d, x, y)) +# else +# define MSGPACK_PP_DIV_D(d, x, y) MSGPACK_PP_DIV_D_I(d, x, y) +# define MSGPACK_PP_DIV_D_I(d, x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_DIV_BASE_D(d, x, y)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/arithmetic/inc.hpp b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/inc.hpp new file mode 100644 index 000000000000..0eb6e17708bd --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/inc.hpp @@ -0,0 +1,288 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_INC_HPP +# define MSGPACK_PREPROCESSOR_ARITHMETIC_INC_HPP +# +# include +# +# /* MSGPACK_PP_INC */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_INC(x) MSGPACK_PP_INC_I(x) +# else +# define MSGPACK_PP_INC(x) MSGPACK_PP_INC_OO((x)) +# define MSGPACK_PP_INC_OO(par) MSGPACK_PP_INC_I ## par +# endif +# +# define MSGPACK_PP_INC_I(x) MSGPACK_PP_INC_ ## x +# +# define MSGPACK_PP_INC_0 1 +# define MSGPACK_PP_INC_1 2 +# define MSGPACK_PP_INC_2 3 +# define MSGPACK_PP_INC_3 4 +# define MSGPACK_PP_INC_4 5 +# define MSGPACK_PP_INC_5 6 +# define MSGPACK_PP_INC_6 7 +# define MSGPACK_PP_INC_7 8 +# define MSGPACK_PP_INC_8 9 +# define MSGPACK_PP_INC_9 10 +# define MSGPACK_PP_INC_10 11 +# define MSGPACK_PP_INC_11 12 +# define MSGPACK_PP_INC_12 13 +# define MSGPACK_PP_INC_13 14 +# define MSGPACK_PP_INC_14 15 +# define MSGPACK_PP_INC_15 16 +# define MSGPACK_PP_INC_16 17 +# define MSGPACK_PP_INC_17 18 +# define MSGPACK_PP_INC_18 19 +# define MSGPACK_PP_INC_19 20 +# define MSGPACK_PP_INC_20 21 +# define MSGPACK_PP_INC_21 22 +# define MSGPACK_PP_INC_22 23 +# define MSGPACK_PP_INC_23 24 +# define MSGPACK_PP_INC_24 25 +# define MSGPACK_PP_INC_25 26 +# define MSGPACK_PP_INC_26 27 +# define MSGPACK_PP_INC_27 28 +# define MSGPACK_PP_INC_28 29 +# define MSGPACK_PP_INC_29 30 +# define MSGPACK_PP_INC_30 31 +# define MSGPACK_PP_INC_31 32 +# define MSGPACK_PP_INC_32 33 +# define MSGPACK_PP_INC_33 34 +# define MSGPACK_PP_INC_34 35 +# define MSGPACK_PP_INC_35 36 +# define MSGPACK_PP_INC_36 37 +# define MSGPACK_PP_INC_37 38 +# define MSGPACK_PP_INC_38 39 +# define MSGPACK_PP_INC_39 40 +# define MSGPACK_PP_INC_40 41 +# define MSGPACK_PP_INC_41 42 +# define MSGPACK_PP_INC_42 43 +# define MSGPACK_PP_INC_43 44 +# define MSGPACK_PP_INC_44 45 +# define MSGPACK_PP_INC_45 46 +# define MSGPACK_PP_INC_46 47 +# define MSGPACK_PP_INC_47 48 +# define MSGPACK_PP_INC_48 49 +# define MSGPACK_PP_INC_49 50 +# define MSGPACK_PP_INC_50 51 +# define MSGPACK_PP_INC_51 52 +# define MSGPACK_PP_INC_52 53 +# define MSGPACK_PP_INC_53 54 +# define MSGPACK_PP_INC_54 55 +# define MSGPACK_PP_INC_55 56 +# define MSGPACK_PP_INC_56 57 +# define MSGPACK_PP_INC_57 58 +# define MSGPACK_PP_INC_58 59 +# define MSGPACK_PP_INC_59 60 +# define MSGPACK_PP_INC_60 61 +# define MSGPACK_PP_INC_61 62 +# define MSGPACK_PP_INC_62 63 +# define MSGPACK_PP_INC_63 64 +# define MSGPACK_PP_INC_64 65 +# define MSGPACK_PP_INC_65 66 +# define MSGPACK_PP_INC_66 67 +# define MSGPACK_PP_INC_67 68 +# define MSGPACK_PP_INC_68 69 +# define MSGPACK_PP_INC_69 70 +# define MSGPACK_PP_INC_70 71 +# define MSGPACK_PP_INC_71 72 +# define MSGPACK_PP_INC_72 73 +# define MSGPACK_PP_INC_73 74 +# define MSGPACK_PP_INC_74 75 +# define MSGPACK_PP_INC_75 76 +# define MSGPACK_PP_INC_76 77 +# define MSGPACK_PP_INC_77 78 +# define MSGPACK_PP_INC_78 79 +# define MSGPACK_PP_INC_79 80 +# define MSGPACK_PP_INC_80 81 +# define MSGPACK_PP_INC_81 82 +# define MSGPACK_PP_INC_82 83 +# define MSGPACK_PP_INC_83 84 +# define MSGPACK_PP_INC_84 85 +# define MSGPACK_PP_INC_85 86 +# define MSGPACK_PP_INC_86 87 +# define MSGPACK_PP_INC_87 88 +# define MSGPACK_PP_INC_88 89 +# define MSGPACK_PP_INC_89 90 +# define MSGPACK_PP_INC_90 91 +# define MSGPACK_PP_INC_91 92 +# define MSGPACK_PP_INC_92 93 +# define MSGPACK_PP_INC_93 94 +# define MSGPACK_PP_INC_94 95 +# define MSGPACK_PP_INC_95 96 +# define MSGPACK_PP_INC_96 97 +# define MSGPACK_PP_INC_97 98 +# define MSGPACK_PP_INC_98 99 +# define MSGPACK_PP_INC_99 100 +# define MSGPACK_PP_INC_100 101 +# define MSGPACK_PP_INC_101 102 +# define MSGPACK_PP_INC_102 103 +# define MSGPACK_PP_INC_103 104 +# define MSGPACK_PP_INC_104 105 +# define MSGPACK_PP_INC_105 106 +# define MSGPACK_PP_INC_106 107 +# define MSGPACK_PP_INC_107 108 +# define MSGPACK_PP_INC_108 109 +# define MSGPACK_PP_INC_109 110 +# define MSGPACK_PP_INC_110 111 +# define MSGPACK_PP_INC_111 112 +# define MSGPACK_PP_INC_112 113 +# define MSGPACK_PP_INC_113 114 +# define MSGPACK_PP_INC_114 115 +# define MSGPACK_PP_INC_115 116 +# define MSGPACK_PP_INC_116 117 +# define MSGPACK_PP_INC_117 118 +# define MSGPACK_PP_INC_118 119 +# define MSGPACK_PP_INC_119 120 +# define MSGPACK_PP_INC_120 121 +# define MSGPACK_PP_INC_121 122 +# define MSGPACK_PP_INC_122 123 +# define MSGPACK_PP_INC_123 124 +# define MSGPACK_PP_INC_124 125 +# define MSGPACK_PP_INC_125 126 +# define MSGPACK_PP_INC_126 127 +# define MSGPACK_PP_INC_127 128 +# define MSGPACK_PP_INC_128 129 +# define MSGPACK_PP_INC_129 130 +# define MSGPACK_PP_INC_130 131 +# define MSGPACK_PP_INC_131 132 +# define MSGPACK_PP_INC_132 133 +# define MSGPACK_PP_INC_133 134 +# define MSGPACK_PP_INC_134 135 +# define MSGPACK_PP_INC_135 136 +# define MSGPACK_PP_INC_136 137 +# define MSGPACK_PP_INC_137 138 +# define MSGPACK_PP_INC_138 139 +# define MSGPACK_PP_INC_139 140 +# define MSGPACK_PP_INC_140 141 +# define MSGPACK_PP_INC_141 142 +# define MSGPACK_PP_INC_142 143 +# define MSGPACK_PP_INC_143 144 +# define MSGPACK_PP_INC_144 145 +# define MSGPACK_PP_INC_145 146 +# define MSGPACK_PP_INC_146 147 +# define MSGPACK_PP_INC_147 148 +# define MSGPACK_PP_INC_148 149 +# define MSGPACK_PP_INC_149 150 +# define MSGPACK_PP_INC_150 151 +# define MSGPACK_PP_INC_151 152 +# define MSGPACK_PP_INC_152 153 +# define MSGPACK_PP_INC_153 154 +# define MSGPACK_PP_INC_154 155 +# define MSGPACK_PP_INC_155 156 +# define MSGPACK_PP_INC_156 157 +# define MSGPACK_PP_INC_157 158 +# define MSGPACK_PP_INC_158 159 +# define MSGPACK_PP_INC_159 160 +# define MSGPACK_PP_INC_160 161 +# define MSGPACK_PP_INC_161 162 +# define MSGPACK_PP_INC_162 163 +# define MSGPACK_PP_INC_163 164 +# define MSGPACK_PP_INC_164 165 +# define MSGPACK_PP_INC_165 166 +# define MSGPACK_PP_INC_166 167 +# define MSGPACK_PP_INC_167 168 +# define MSGPACK_PP_INC_168 169 +# define MSGPACK_PP_INC_169 170 +# define MSGPACK_PP_INC_170 171 +# define MSGPACK_PP_INC_171 172 +# define MSGPACK_PP_INC_172 173 +# define MSGPACK_PP_INC_173 174 +# define MSGPACK_PP_INC_174 175 +# define MSGPACK_PP_INC_175 176 +# define MSGPACK_PP_INC_176 177 +# define MSGPACK_PP_INC_177 178 +# define MSGPACK_PP_INC_178 179 +# define MSGPACK_PP_INC_179 180 +# define MSGPACK_PP_INC_180 181 +# define MSGPACK_PP_INC_181 182 +# define MSGPACK_PP_INC_182 183 +# define MSGPACK_PP_INC_183 184 +# define MSGPACK_PP_INC_184 185 +# define MSGPACK_PP_INC_185 186 +# define MSGPACK_PP_INC_186 187 +# define MSGPACK_PP_INC_187 188 +# define MSGPACK_PP_INC_188 189 +# define MSGPACK_PP_INC_189 190 +# define MSGPACK_PP_INC_190 191 +# define MSGPACK_PP_INC_191 192 +# define MSGPACK_PP_INC_192 193 +# define MSGPACK_PP_INC_193 194 +# define MSGPACK_PP_INC_194 195 +# define MSGPACK_PP_INC_195 196 +# define MSGPACK_PP_INC_196 197 +# define MSGPACK_PP_INC_197 198 +# define MSGPACK_PP_INC_198 199 +# define MSGPACK_PP_INC_199 200 +# define MSGPACK_PP_INC_200 201 +# define MSGPACK_PP_INC_201 202 +# define MSGPACK_PP_INC_202 203 +# define MSGPACK_PP_INC_203 204 +# define MSGPACK_PP_INC_204 205 +# define MSGPACK_PP_INC_205 206 +# define MSGPACK_PP_INC_206 207 +# define MSGPACK_PP_INC_207 208 +# define MSGPACK_PP_INC_208 209 +# define MSGPACK_PP_INC_209 210 +# define MSGPACK_PP_INC_210 211 +# define MSGPACK_PP_INC_211 212 +# define MSGPACK_PP_INC_212 213 +# define MSGPACK_PP_INC_213 214 +# define MSGPACK_PP_INC_214 215 +# define MSGPACK_PP_INC_215 216 +# define MSGPACK_PP_INC_216 217 +# define MSGPACK_PP_INC_217 218 +# define MSGPACK_PP_INC_218 219 +# define MSGPACK_PP_INC_219 220 +# define MSGPACK_PP_INC_220 221 +# define MSGPACK_PP_INC_221 222 +# define MSGPACK_PP_INC_222 223 +# define MSGPACK_PP_INC_223 224 +# define MSGPACK_PP_INC_224 225 +# define MSGPACK_PP_INC_225 226 +# define MSGPACK_PP_INC_226 227 +# define MSGPACK_PP_INC_227 228 +# define MSGPACK_PP_INC_228 229 +# define MSGPACK_PP_INC_229 230 +# define MSGPACK_PP_INC_230 231 +# define MSGPACK_PP_INC_231 232 +# define MSGPACK_PP_INC_232 233 +# define MSGPACK_PP_INC_233 234 +# define MSGPACK_PP_INC_234 235 +# define MSGPACK_PP_INC_235 236 +# define MSGPACK_PP_INC_236 237 +# define MSGPACK_PP_INC_237 238 +# define MSGPACK_PP_INC_238 239 +# define MSGPACK_PP_INC_239 240 +# define MSGPACK_PP_INC_240 241 +# define MSGPACK_PP_INC_241 242 +# define MSGPACK_PP_INC_242 243 +# define MSGPACK_PP_INC_243 244 +# define MSGPACK_PP_INC_244 245 +# define MSGPACK_PP_INC_245 246 +# define MSGPACK_PP_INC_246 247 +# define MSGPACK_PP_INC_247 248 +# define MSGPACK_PP_INC_248 249 +# define MSGPACK_PP_INC_249 250 +# define MSGPACK_PP_INC_250 251 +# define MSGPACK_PP_INC_251 252 +# define MSGPACK_PP_INC_252 253 +# define MSGPACK_PP_INC_253 254 +# define MSGPACK_PP_INC_254 255 +# define MSGPACK_PP_INC_255 256 +# define MSGPACK_PP_INC_256 256 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/arithmetic/mod.hpp b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/mod.hpp new file mode 100644 index 000000000000..521c4032b5ad --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/mod.hpp @@ -0,0 +1,39 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_MOD_HPP +# define MSGPACK_PREPROCESSOR_ARITHMETIC_MOD_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_MOD */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_MOD(x, y) MSGPACK_PP_TUPLE_ELEM(3, 1, MSGPACK_PP_DIV_BASE(x, y)) +# else +# define MSGPACK_PP_MOD(x, y) MSGPACK_PP_MOD_I(x, y) +# define MSGPACK_PP_MOD_I(x, y) MSGPACK_PP_TUPLE_ELEM(3, 1, MSGPACK_PP_DIV_BASE(x, y)) +# endif +# +# /* MSGPACK_PP_MOD_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_MOD_D(d, x, y) MSGPACK_PP_TUPLE_ELEM(3, 1, MSGPACK_PP_DIV_BASE_D(d, x, y)) +# else +# define MSGPACK_PP_MOD_D(d, x, y) MSGPACK_PP_MOD_D_I(d, x, y) +# define MSGPACK_PP_MOD_D_I(d, x, y) MSGPACK_PP_TUPLE_ELEM(3, 1, MSGPACK_PP_DIV_BASE_D(d, x, y)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/arithmetic/mul.hpp b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/mul.hpp new file mode 100644 index 000000000000..6e5ffabef98b --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/mul.hpp @@ -0,0 +1,53 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_MUL_HPP +# define MSGPACK_PREPROCESSOR_ARITHMETIC_MUL_HPP +# +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_MUL */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_MUL(x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_WHILE(MSGPACK_PP_MUL_P, MSGPACK_PP_MUL_O, (0, x, y))) +# else +# define MSGPACK_PP_MUL(x, y) MSGPACK_PP_MUL_I(x, y) +# define MSGPACK_PP_MUL_I(x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_WHILE(MSGPACK_PP_MUL_P, MSGPACK_PP_MUL_O, (0, x, y))) +# endif +# +# define MSGPACK_PP_MUL_P(d, rxy) MSGPACK_PP_TUPLE_ELEM(3, 2, rxy) +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_MUL_O(d, rxy) MSGPACK_PP_MUL_O_IM(d, MSGPACK_PP_TUPLE_REM_3 rxy) +# define MSGPACK_PP_MUL_O_IM(d, im) MSGPACK_PP_MUL_O_I(d, im) +# else +# define MSGPACK_PP_MUL_O(d, rxy) MSGPACK_PP_MUL_O_I(d, MSGPACK_PP_TUPLE_ELEM(3, 0, rxy), MSGPACK_PP_TUPLE_ELEM(3, 1, rxy), MSGPACK_PP_TUPLE_ELEM(3, 2, rxy)) +# endif +# +# define MSGPACK_PP_MUL_O_I(d, r, x, y) (MSGPACK_PP_ADD_D(d, r, x), x, MSGPACK_PP_DEC(y)) +# +# /* MSGPACK_PP_MUL_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_MUL_D(d, x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_MUL_P, MSGPACK_PP_MUL_O, (0, x, y))) +# else +# define MSGPACK_PP_MUL_D(d, x, y) MSGPACK_PP_MUL_D_I(d, x, y) +# define MSGPACK_PP_MUL_D_I(d, x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_MUL_P, MSGPACK_PP_MUL_O, (0, x, y))) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/arithmetic/sub.hpp b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/sub.hpp new file mode 100644 index 000000000000..3cd283e0099c --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/arithmetic/sub.hpp @@ -0,0 +1,50 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_SUB_HPP +# define MSGPACK_PREPROCESSOR_ARITHMETIC_SUB_HPP +# +# include +# include +# include +# include +# +# /* MSGPACK_PP_SUB */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SUB(x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_SUB_P, MSGPACK_PP_SUB_O, (x, y))) +# else +# define MSGPACK_PP_SUB(x, y) MSGPACK_PP_SUB_I(x, y) +# define MSGPACK_PP_SUB_I(x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_SUB_P, MSGPACK_PP_SUB_O, (x, y))) +# endif +# +# define MSGPACK_PP_SUB_P(d, xy) MSGPACK_PP_TUPLE_ELEM(2, 1, xy) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_SUB_O(d, xy) MSGPACK_PP_SUB_O_I xy +# else +# define MSGPACK_PP_SUB_O(d, xy) MSGPACK_PP_SUB_O_I(MSGPACK_PP_TUPLE_ELEM(2, 0, xy), MSGPACK_PP_TUPLE_ELEM(2, 1, xy)) +# endif +# +# define MSGPACK_PP_SUB_O_I(x, y) (MSGPACK_PP_DEC(x), MSGPACK_PP_DEC(y)) +# +# /* MSGPACK_PP_SUB_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SUB_D(d, x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_SUB_P, MSGPACK_PP_SUB_O, (x, y))) +# else +# define MSGPACK_PP_SUB_D(d, x, y) MSGPACK_PP_SUB_D_I(d, x, y) +# define MSGPACK_PP_SUB_D_I(d, x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_SUB_P, MSGPACK_PP_SUB_O, (x, y))) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array.hpp b/third_party/msgpack/include/msgpack/preprocessor/array.hpp new file mode 100644 index 000000000000..7ac42dcd5058 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array.hpp @@ -0,0 +1,32 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002-2011. * +# * (C) Copyright Edward Diener 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/data.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/data.hpp new file mode 100644 index 000000000000..22a9264873f0 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/data.hpp @@ -0,0 +1,28 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_DATA_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_DATA_HPP +# +# include +# include +# +# /* MSGPACK_PP_ARRAY_DATA */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ARRAY_DATA(array) MSGPACK_PP_TUPLE_ELEM(2, 1, array) +# else +# define MSGPACK_PP_ARRAY_DATA(array) MSGPACK_PP_ARRAY_DATA_I(array) +# define MSGPACK_PP_ARRAY_DATA_I(array) MSGPACK_PP_ARRAY_DATA_II array +# define MSGPACK_PP_ARRAY_DATA_II(size, data) data +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/detail/get_data.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/detail/get_data.hpp new file mode 100644 index 000000000000..5dcce7544c12 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/detail/get_data.hpp @@ -0,0 +1,55 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2014. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_DETAIL_GET_DATA_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_DETAIL_GET_DATA_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ARRAY_DETAIL_GET_DATA */ +# +# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_NONE(size, data) + +# if MSGPACK_PP_VARIADICS && !(MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400) +# if MSGPACK_PP_VARIADICS_MSVC +# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_DEFAULT(size, data) MSGPACK_PP_TUPLE_REM(size) data +# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_CAT(size, data) MSGPACK_PP_TUPLE_REM_CAT(size) data +# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY(size, data) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_IS_1(size), \ + MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_CAT, \ + MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_DEFAULT \ + ) \ + (size,data) \ +/**/ +# else +# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY(size, data) MSGPACK_PP_TUPLE_REM(size) data +# endif +# else +# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY(size, data) MSGPACK_PP_TUPLE_REM(size) data +# endif + +# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA(size, data) \ + MSGPACK_PP_IF \ + ( \ + size, \ + MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY, \ + MSGPACK_PP_ARRAY_DETAIL_GET_DATA_NONE \ + ) \ + (size,data) \ +/**/ +# +# endif /* MSGPACK_PREPROCESSOR_ARRAY_DETAIL_GET_DATA_HPP */ diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/elem.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/elem.hpp new file mode 100644 index 000000000000..0a85d7ef3cc0 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/elem.hpp @@ -0,0 +1,29 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_ELEM_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_ELEM_HPP +# +# include +# include +# include +# include +# +# /* MSGPACK_PP_ARRAY_ELEM */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ARRAY_ELEM(i, array) MSGPACK_PP_TUPLE_ELEM(MSGPACK_PP_ARRAY_SIZE(array), i, MSGPACK_PP_ARRAY_DATA(array)) +# else +# define MSGPACK_PP_ARRAY_ELEM(i, array) MSGPACK_PP_ARRAY_ELEM_I(i, array) +# define MSGPACK_PP_ARRAY_ELEM_I(i, array) MSGPACK_PP_TUPLE_ELEM(MSGPACK_PP_ARRAY_SIZE(array), i, MSGPACK_PP_ARRAY_DATA(array)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/enum.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/enum.hpp new file mode 100644 index 000000000000..056f44441f31 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/enum.hpp @@ -0,0 +1,33 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_ENUM_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_ENUM_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_ARRAY_ENUM */ +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_ARRAY_ENUM(array) MSGPACK_PP_ARRAY_ENUM_I(MSGPACK_PP_TUPLE_REM_CTOR, array) +# define MSGPACK_PP_ARRAY_ENUM_I(m, args) MSGPACK_PP_ARRAY_ENUM_II(m, args) +# define MSGPACK_PP_ARRAY_ENUM_II(m, args) MSGPACK_PP_CAT(m ## args,) +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_ARRAY_ENUM(array) MSGPACK_PP_ARRAY_ENUM_I(array) +# define MSGPACK_PP_ARRAY_ENUM_I(array) MSGPACK_PP_TUPLE_REM_CTOR ## array +# else +# define MSGPACK_PP_ARRAY_ENUM(array) MSGPACK_PP_TUPLE_REM_CTOR array +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/insert.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/insert.hpp new file mode 100644 index 000000000000..b60006f0610e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/insert.hpp @@ -0,0 +1,55 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_INSERT_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_INSERT_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ARRAY_INSERT */ +# +# define MSGPACK_PP_ARRAY_INSERT(array, i, elem) MSGPACK_PP_ARRAY_INSERT_I(MSGPACK_PP_DEDUCE_D(), array, i, elem) +# define MSGPACK_PP_ARRAY_INSERT_I(d, array, i, elem) MSGPACK_PP_ARRAY_INSERT_D(d, array, i, elem) +# +# /* MSGPACK_PP_ARRAY_INSERT_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ARRAY_INSERT_D(d, array, i, elem) MSGPACK_PP_TUPLE_ELEM(5, 3, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ARRAY_INSERT_P, MSGPACK_PP_ARRAY_INSERT_O, (0, i, elem, (0, ()), array))) +# else +# define MSGPACK_PP_ARRAY_INSERT_D(d, array, i, elem) MSGPACK_PP_ARRAY_INSERT_D_I(d, array, i, elem) +# define MSGPACK_PP_ARRAY_INSERT_D_I(d, array, i, elem) MSGPACK_PP_TUPLE_ELEM(5, 3, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ARRAY_INSERT_P, MSGPACK_PP_ARRAY_INSERT_O, (0, i, elem, (0, ()), array))) +# endif +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_ARRAY_INSERT_P(d, state) MSGPACK_PP_ARRAY_INSERT_P_I state +# else +# define MSGPACK_PP_ARRAY_INSERT_P(d, state) MSGPACK_PP_ARRAY_INSERT_P_I(nil, nil, nil, MSGPACK_PP_TUPLE_ELEM(5, 3, state), MSGPACK_PP_TUPLE_ELEM(5, 4, state)) +# endif +# +# define MSGPACK_PP_ARRAY_INSERT_P_I(_i, _ii, _iii, res, arr) MSGPACK_PP_NOT_EQUAL(MSGPACK_PP_ARRAY_SIZE(res), MSGPACK_PP_INC(MSGPACK_PP_ARRAY_SIZE(arr))) +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_ARRAY_INSERT_O(d, state) MSGPACK_PP_ARRAY_INSERT_O_I state +# else +# define MSGPACK_PP_ARRAY_INSERT_O(d, state) MSGPACK_PP_ARRAY_INSERT_O_I(MSGPACK_PP_TUPLE_ELEM(5, 0, state), MSGPACK_PP_TUPLE_ELEM(5, 1, state), MSGPACK_PP_TUPLE_ELEM(5, 2, state), MSGPACK_PP_TUPLE_ELEM(5, 3, state), MSGPACK_PP_TUPLE_ELEM(5, 4, state)) +# endif +# +# define MSGPACK_PP_ARRAY_INSERT_O_I(n, i, elem, res, arr) (MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(MSGPACK_PP_ARRAY_SIZE(res), i), MSGPACK_PP_INC(n), n), i, elem, MSGPACK_PP_ARRAY_PUSH_BACK(res, MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(MSGPACK_PP_ARRAY_SIZE(res), i), MSGPACK_PP_ARRAY_ELEM(n, arr), elem)), arr) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/pop_back.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/pop_back.hpp new file mode 100644 index 000000000000..5d1392f1403d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/pop_back.hpp @@ -0,0 +1,37 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_POP_BACK_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_POP_BACK_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ARRAY_POP_BACK */ +# +# define MSGPACK_PP_ARRAY_POP_BACK(array) MSGPACK_PP_ARRAY_POP_BACK_Z(MSGPACK_PP_DEDUCE_Z(), array) +# +# /* MSGPACK_PP_ARRAY_POP_BACK_Z */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ARRAY_POP_BACK_Z(z, array) MSGPACK_PP_ARRAY_POP_BACK_I(z, MSGPACK_PP_ARRAY_SIZE(array), array) +# else +# define MSGPACK_PP_ARRAY_POP_BACK_Z(z, array) MSGPACK_PP_ARRAY_POP_BACK_Z_D(z, array) +# define MSGPACK_PP_ARRAY_POP_BACK_Z_D(z, array) MSGPACK_PP_ARRAY_POP_BACK_I(z, MSGPACK_PP_ARRAY_SIZE(array), array) +# endif +# +# define MSGPACK_PP_ARRAY_POP_BACK_I(z, size, array) (MSGPACK_PP_DEC(size), (MSGPACK_PP_ENUM_ ## z(MSGPACK_PP_DEC(size), MSGPACK_PP_ARRAY_POP_BACK_M, array))) +# define MSGPACK_PP_ARRAY_POP_BACK_M(z, n, data) MSGPACK_PP_ARRAY_ELEM(n, data) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/pop_front.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/pop_front.hpp new file mode 100644 index 000000000000..50015041862c --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/pop_front.hpp @@ -0,0 +1,38 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_POP_FRONT_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_POP_FRONT_HPP +# +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ARRAY_POP_FRONT */ +# +# define MSGPACK_PP_ARRAY_POP_FRONT(array) MSGPACK_PP_ARRAY_POP_FRONT_Z(MSGPACK_PP_DEDUCE_Z(), array) +# +# /* MSGPACK_PP_ARRAY_POP_FRONT_Z */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ARRAY_POP_FRONT_Z(z, array) MSGPACK_PP_ARRAY_POP_FRONT_I(z, MSGPACK_PP_ARRAY_SIZE(array), array) +# else +# define MSGPACK_PP_ARRAY_POP_FRONT_Z(z, array) MSGPACK_PP_ARRAY_POP_FRONT_Z_D(z, array) +# define MSGPACK_PP_ARRAY_POP_FRONT_Z_D(z, array) MSGPACK_PP_ARRAY_POP_FRONT_I(z, MSGPACK_PP_ARRAY_SIZE(array), array) +# endif +# +# define MSGPACK_PP_ARRAY_POP_FRONT_I(z, size, array) (MSGPACK_PP_DEC(size), (MSGPACK_PP_ENUM_ ## z(MSGPACK_PP_DEC(size), MSGPACK_PP_ARRAY_POP_FRONT_M, array))) +# define MSGPACK_PP_ARRAY_POP_FRONT_M(z, n, data) MSGPACK_PP_ARRAY_ELEM(MSGPACK_PP_INC(n), data) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/push_back.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/push_back.hpp new file mode 100644 index 000000000000..6f18f3e95804 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/push_back.hpp @@ -0,0 +1,35 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * (C) Copyright Edward Diener 2014. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_PUSH_BACK_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_PUSH_BACK_HPP +# +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ARRAY_PUSH_BACK */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ARRAY_PUSH_BACK(array, elem) MSGPACK_PP_ARRAY_PUSH_BACK_I(MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_ARRAY_DATA(array), elem) +# else +# define MSGPACK_PP_ARRAY_PUSH_BACK(array, elem) MSGPACK_PP_ARRAY_PUSH_BACK_D(array, elem) +# define MSGPACK_PP_ARRAY_PUSH_BACK_D(array, elem) MSGPACK_PP_ARRAY_PUSH_BACK_I(MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_ARRAY_DATA(array), elem) +# endif +# +# define MSGPACK_PP_ARRAY_PUSH_BACK_I(size, data, elem) (MSGPACK_PP_INC(size), (MSGPACK_PP_ARRAY_DETAIL_GET_DATA(size,data) MSGPACK_PP_COMMA_IF(size) elem)) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/push_front.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/push_front.hpp new file mode 100644 index 000000000000..4b34e7b2dc57 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/push_front.hpp @@ -0,0 +1,35 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * (C) Copyright Edward Diener 2014. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_PUSH_FRONT_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_PUSH_FRONT_HPP +# +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ARRAY_PUSH_FRONT */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ARRAY_PUSH_FRONT(array, elem) MSGPACK_PP_ARRAY_PUSH_FRONT_I(MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_ARRAY_DATA(array), elem) +# else +# define MSGPACK_PP_ARRAY_PUSH_FRONT(array, elem) MSGPACK_PP_ARRAY_PUSH_FRONT_D(array, elem) +# define MSGPACK_PP_ARRAY_PUSH_FRONT_D(array, elem) MSGPACK_PP_ARRAY_PUSH_FRONT_I(MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_ARRAY_DATA(array), elem) +# endif +# +# define MSGPACK_PP_ARRAY_PUSH_FRONT_I(size, data, elem) (MSGPACK_PP_INC(size), (elem MSGPACK_PP_COMMA_IF(size) MSGPACK_PP_ARRAY_DETAIL_GET_DATA(size,data))) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/remove.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/remove.hpp new file mode 100644 index 000000000000..eb011a87eb4e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/remove.hpp @@ -0,0 +1,54 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_REMOVE_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_REMOVE_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ARRAY_REMOVE */ +# +# define MSGPACK_PP_ARRAY_REMOVE(array, i) MSGPACK_PP_ARRAY_REMOVE_I(MSGPACK_PP_DEDUCE_D(), array, i) +# define MSGPACK_PP_ARRAY_REMOVE_I(d, array, i) MSGPACK_PP_ARRAY_REMOVE_D(d, array, i) +# +# /* MSGPACK_PP_ARRAY_REMOVE_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ARRAY_REMOVE_D(d, array, i) MSGPACK_PP_TUPLE_ELEM(4, 2, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ARRAY_REMOVE_P, MSGPACK_PP_ARRAY_REMOVE_O, (0, i, (0, ()), array))) +# else +# define MSGPACK_PP_ARRAY_REMOVE_D(d, array, i) MSGPACK_PP_ARRAY_REMOVE_D_I(d, array, i) +# define MSGPACK_PP_ARRAY_REMOVE_D_I(d, array, i) MSGPACK_PP_TUPLE_ELEM(4, 2, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ARRAY_REMOVE_P, MSGPACK_PP_ARRAY_REMOVE_O, (0, i, (0, ()), array))) +# endif +# +# define MSGPACK_PP_ARRAY_REMOVE_P(d, st) MSGPACK_PP_NOT_EQUAL(MSGPACK_PP_TUPLE_ELEM(4, 0, st), MSGPACK_PP_ARRAY_SIZE(MSGPACK_PP_TUPLE_ELEM(4, 3, st))) +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_ARRAY_REMOVE_O(d, st) MSGPACK_PP_ARRAY_REMOVE_O_I st +# else +# define MSGPACK_PP_ARRAY_REMOVE_O(d, st) MSGPACK_PP_ARRAY_REMOVE_O_I(MSGPACK_PP_TUPLE_ELEM(4, 0, st), MSGPACK_PP_TUPLE_ELEM(4, 1, st), MSGPACK_PP_TUPLE_ELEM(4, 2, st), MSGPACK_PP_TUPLE_ELEM(4, 3, st)) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC() +# define MSGPACK_PP_ARRAY_REMOVE_O_I(n, i, res, arr) (MSGPACK_PP_INC(n), i, MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(n, i), MSGPACK_PP_ARRAY_PUSH_BACK, res MSGPACK_PP_TUPLE_EAT_2)(res, MSGPACK_PP_ARRAY_ELEM(n, arr)), arr) +# else +# define MSGPACK_PP_ARRAY_REMOVE_O_I(n, i, res, arr) (MSGPACK_PP_INC(n), i, MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(n, i), MSGPACK_PP_ARRAY_PUSH_BACK, MSGPACK_PP_TUPLE_ELEM_2_0)(res, MSGPACK_PP_ARRAY_ELEM(n, arr)), arr) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/replace.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/replace.hpp new file mode 100644 index 000000000000..bb1bb8f5a28f --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/replace.hpp @@ -0,0 +1,49 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_REPLACE_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_REPLACE_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ARRAY_REPLACE */ +# +# define MSGPACK_PP_ARRAY_REPLACE(array, i, elem) MSGPACK_PP_ARRAY_REPLACE_I(MSGPACK_PP_DEDUCE_D(), array, i, elem) +# define MSGPACK_PP_ARRAY_REPLACE_I(d, array, i, elem) MSGPACK_PP_ARRAY_REPLACE_D(d, array, i, elem) +# +# /* MSGPACK_PP_ARRAY_REPLACE_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ARRAY_REPLACE_D(d, array, i, elem) MSGPACK_PP_TUPLE_ELEM(5, 3, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ARRAY_REPLACE_P, MSGPACK_PP_ARRAY_REPLACE_O, (0, i, elem, (0, ()), array))) +# else +# define MSGPACK_PP_ARRAY_REPLACE_D(d, array, i, elem) MSGPACK_PP_ARRAY_REPLACE_D_I(d, array, i, elem) +# define MSGPACK_PP_ARRAY_REPLACE_D_I(d, array, i, elem) MSGPACK_PP_TUPLE_ELEM(5, 3, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ARRAY_REPLACE_P, MSGPACK_PP_ARRAY_REPLACE_O, (0, i, elem, (0, ()), array))) +# endif +# +# define MSGPACK_PP_ARRAY_REPLACE_P(d, state) MSGPACK_PP_NOT_EQUAL(MSGPACK_PP_TUPLE_ELEM(5, 0, state), MSGPACK_PP_ARRAY_SIZE(MSGPACK_PP_TUPLE_ELEM(5, 4, state))) +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_ARRAY_REPLACE_O(d, state) MSGPACK_PP_ARRAY_REPLACE_O_I state +# else +# define MSGPACK_PP_ARRAY_REPLACE_O(d, state) MSGPACK_PP_ARRAY_REPLACE_O_I(MSGPACK_PP_TUPLE_ELEM(5, 0, state), MSGPACK_PP_TUPLE_ELEM(5, 1, state), MSGPACK_PP_TUPLE_ELEM(5, 2, state), MSGPACK_PP_TUPLE_ELEM(5, 3, state), MSGPACK_PP_TUPLE_ELEM(5, 4, state)) +# endif +# +# define MSGPACK_PP_ARRAY_REPLACE_O_I(n, i, elem, res, arr) (MSGPACK_PP_INC(n), i, elem, MSGPACK_PP_ARRAY_PUSH_BACK(res, MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(n, i), MSGPACK_PP_ARRAY_ELEM(n, arr), elem)), arr) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/reverse.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/reverse.hpp new file mode 100644 index 000000000000..710d95bb6f6a --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/reverse.hpp @@ -0,0 +1,29 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_REVERSE_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_REVERSE_HPP +# +# include +# include +# include +# include +# +# /* MSGPACK_PP_ARRAY_REVERSE */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ARRAY_REVERSE(array) (MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_TUPLE_REVERSE(MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_ARRAY_DATA(array))) +# else +# define MSGPACK_PP_ARRAY_REVERSE(array) MSGPACK_PP_ARRAY_REVERSE_I(array) +# define MSGPACK_PP_ARRAY_REVERSE_I(array) (MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_TUPLE_REVERSE(MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_ARRAY_DATA(array))) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/size.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/size.hpp new file mode 100644 index 000000000000..6a3c2c5b1a0f --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/size.hpp @@ -0,0 +1,28 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_SIZE_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_SIZE_HPP +# +# include +# include +# +# /* MSGPACK_PP_ARRAY_SIZE */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ARRAY_SIZE(array) MSGPACK_PP_TUPLE_ELEM(2, 0, array) +# else +# define MSGPACK_PP_ARRAY_SIZE(array) MSGPACK_PP_ARRAY_SIZE_I(array) +# define MSGPACK_PP_ARRAY_SIZE_I(array) MSGPACK_PP_ARRAY_SIZE_II array +# define MSGPACK_PP_ARRAY_SIZE_II(size, data) size +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/to_list.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/to_list.hpp new file mode 100644 index 000000000000..0e0d77150d11 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/to_list.hpp @@ -0,0 +1,47 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_TO_LIST_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_TO_LIST_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ARRAY_TO_LIST */ +# +# define MSGPACK_PP_ARRAY_TO_LIST(array) \ + MSGPACK_PP_IF \ + ( \ + MSGPACK_PP_ARRAY_SIZE(array), \ + MSGPACK_PP_ARRAY_TO_LIST_DO, \ + MSGPACK_PP_ARRAY_TO_LIST_EMPTY \ + ) \ + (array) \ +/**/ +# +# define MSGPACK_PP_ARRAY_TO_LIST_EMPTY(array) MSGPACK_PP_NIL +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_ARRAY_TO_LIST_DO(array) MSGPACK_PP_ARRAY_TO_LIST_I(MSGPACK_PP_TUPLE_TO_LIST, array) +# define MSGPACK_PP_ARRAY_TO_LIST_I(m, args) MSGPACK_PP_ARRAY_TO_LIST_II(m, args) +# define MSGPACK_PP_ARRAY_TO_LIST_II(m, args) MSGPACK_PP_CAT(m ## args,) +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_ARRAY_TO_LIST_DO(array) MSGPACK_PP_ARRAY_TO_LIST_I(array) +# define MSGPACK_PP_ARRAY_TO_LIST_I(array) MSGPACK_PP_TUPLE_TO_LIST ## array +# else +# define MSGPACK_PP_ARRAY_TO_LIST_DO(array) MSGPACK_PP_TUPLE_TO_LIST array +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/to_seq.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/to_seq.hpp new file mode 100644 index 000000000000..fdaff6e74c1d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/to_seq.hpp @@ -0,0 +1,46 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_TO_SEQ_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_TO_SEQ_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ARRAY_TO_SEQ */ +# +# define MSGPACK_PP_ARRAY_TO_SEQ(array) \ + MSGPACK_PP_IF \ + ( \ + MSGPACK_PP_ARRAY_SIZE(array), \ + MSGPACK_PP_ARRAY_TO_SEQ_DO, \ + MSGPACK_PP_ARRAY_TO_SEQ_EMPTY \ + ) \ + (array) \ +/**/ +# define MSGPACK_PP_ARRAY_TO_SEQ_EMPTY(array) +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_ARRAY_TO_SEQ_DO(array) MSGPACK_PP_ARRAY_TO_SEQ_I(MSGPACK_PP_TUPLE_TO_SEQ, array) +# define MSGPACK_PP_ARRAY_TO_SEQ_I(m, args) MSGPACK_PP_ARRAY_TO_SEQ_II(m, args) +# define MSGPACK_PP_ARRAY_TO_SEQ_II(m, args) MSGPACK_PP_CAT(m ## args,) +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_ARRAY_TO_SEQ_DO(array) MSGPACK_PP_ARRAY_TO_SEQ_I(array) +# define MSGPACK_PP_ARRAY_TO_SEQ_I(array) MSGPACK_PP_TUPLE_TO_SEQ ## array +# else +# define MSGPACK_PP_ARRAY_TO_SEQ_DO(array) MSGPACK_PP_TUPLE_TO_SEQ array +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/array/to_tuple.hpp b/third_party/msgpack/include/msgpack/preprocessor/array/to_tuple.hpp new file mode 100644 index 000000000000..4422d094412f --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/array/to_tuple.hpp @@ -0,0 +1,33 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ARRAY_TO_TUPLE_HPP +# define MSGPACK_PREPROCESSOR_ARRAY_TO_TUPLE_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_ARRAY_TO_TUPLE */ +# +# define MSGPACK_PP_ARRAY_TO_TUPLE(array) \ + MSGPACK_PP_IF \ + ( \ + MSGPACK_PP_ARRAY_SIZE(array), \ + MSGPACK_PP_ARRAY_DATA, \ + MSGPACK_PP_ARRAY_TO_TUPLE_EMPTY \ + ) \ + (array) \ +/**/ +# define MSGPACK_PP_ARRAY_TO_TUPLE_EMPTY(array) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/assert_msg.hpp b/third_party/msgpack/include/msgpack/preprocessor/assert_msg.hpp new file mode 100644 index 000000000000..4b10d9e1c5ef --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/assert_msg.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ASSERT_MSG_HPP +# define MSGPACK_PREPROCESSOR_ASSERT_MSG_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/cat.hpp b/third_party/msgpack/include/msgpack/preprocessor/cat.hpp new file mode 100644 index 000000000000..a7b2926237d9 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/cat.hpp @@ -0,0 +1,35 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_CAT_HPP +# define MSGPACK_PREPROCESSOR_CAT_HPP +# +# include +# +# /* MSGPACK_PP_CAT */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_CAT(a, b) MSGPACK_PP_CAT_I(a, b) +# else +# define MSGPACK_PP_CAT(a, b) MSGPACK_PP_CAT_OO((a, b)) +# define MSGPACK_PP_CAT_OO(par) MSGPACK_PP_CAT_I ## par +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_CAT_I(a, b) a ## b +# else +# define MSGPACK_PP_CAT_I(a, b) MSGPACK_PP_CAT_II(~, a ## b) +# define MSGPACK_PP_CAT_II(p, res) res +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/comma.hpp b/third_party/msgpack/include/msgpack/preprocessor/comma.hpp new file mode 100644 index 000000000000..00962c5e18fb --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/comma.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_COMMA_HPP +# define MSGPACK_PREPROCESSOR_COMMA_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/comma_if.hpp b/third_party/msgpack/include/msgpack/preprocessor/comma_if.hpp new file mode 100644 index 000000000000..a7df82396e91 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/comma_if.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_COMMA_IF_HPP +# define MSGPACK_PREPROCESSOR_COMMA_IF_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/comparison.hpp b/third_party/msgpack/include/msgpack/preprocessor/comparison.hpp new file mode 100644 index 000000000000..da6f62237b55 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/comparison.hpp @@ -0,0 +1,24 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_COMPARISON_HPP +# define MSGPACK_PREPROCESSOR_COMPARISON_HPP +# +# include +# include +# include +# include +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/comparison/equal.hpp b/third_party/msgpack/include/msgpack/preprocessor/comparison/equal.hpp new file mode 100644 index 000000000000..0196ec169259 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/comparison/equal.hpp @@ -0,0 +1,34 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_COMPARISON_EQUAL_HPP +# define MSGPACK_PREPROCESSOR_COMPARISON_EQUAL_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_EQUAL */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_EQUAL(x, y) MSGPACK_PP_COMPL(MSGPACK_PP_NOT_EQUAL(x, y)) +# else +# define MSGPACK_PP_EQUAL(x, y) MSGPACK_PP_EQUAL_I(x, y) +# define MSGPACK_PP_EQUAL_I(x, y) MSGPACK_PP_COMPL(MSGPACK_PP_NOT_EQUAL(x, y)) +# endif +# +# /* MSGPACK_PP_EQUAL_D */ +# +# define MSGPACK_PP_EQUAL_D(d, x, y) MSGPACK_PP_EQUAL(x, y) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/comparison/greater.hpp b/third_party/msgpack/include/msgpack/preprocessor/comparison/greater.hpp new file mode 100644 index 000000000000..a0fa9681908f --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/comparison/greater.hpp @@ -0,0 +1,38 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_COMPARISON_GREATER_HPP +# define MSGPACK_PREPROCESSOR_COMPARISON_GREATER_HPP +# +# include +# include +# +# /* MSGPACK_PP_GREATER */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_GREATER(x, y) MSGPACK_PP_LESS(y, x) +# else +# define MSGPACK_PP_GREATER(x, y) MSGPACK_PP_GREATER_I(x, y) +# define MSGPACK_PP_GREATER_I(x, y) MSGPACK_PP_LESS(y, x) +# endif +# +# /* MSGPACK_PP_GREATER_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_GREATER_D(d, x, y) MSGPACK_PP_LESS_D(d, y, x) +# else +# define MSGPACK_PP_GREATER_D(d, x, y) MSGPACK_PP_GREATER_D_I(d, x, y) +# define MSGPACK_PP_GREATER_D_I(d, x, y) MSGPACK_PP_LESS_D(d, y, x) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/comparison/greater_equal.hpp b/third_party/msgpack/include/msgpack/preprocessor/comparison/greater_equal.hpp new file mode 100644 index 000000000000..fbca6b0a4342 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/comparison/greater_equal.hpp @@ -0,0 +1,38 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_COMPARISON_GREATER_EQUAL_HPP +# define MSGPACK_PREPROCESSOR_COMPARISON_GREATER_EQUAL_HPP +# +# include +# include +# +# /* MSGPACK_PP_GREATER_EQUAL */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_GREATER_EQUAL(x, y) MSGPACK_PP_LESS_EQUAL(y, x) +# else +# define MSGPACK_PP_GREATER_EQUAL(x, y) MSGPACK_PP_GREATER_EQUAL_I(x, y) +# define MSGPACK_PP_GREATER_EQUAL_I(x, y) MSGPACK_PP_LESS_EQUAL(y, x) +# endif +# +# /* MSGPACK_PP_GREATER_EQUAL_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_GREATER_EQUAL_D(d, x, y) MSGPACK_PP_LESS_EQUAL_D(d, y, x) +# else +# define MSGPACK_PP_GREATER_EQUAL_D(d, x, y) MSGPACK_PP_GREATER_EQUAL_D_I(d, x, y) +# define MSGPACK_PP_GREATER_EQUAL_D_I(d, x, y) MSGPACK_PP_LESS_EQUAL_D(d, y, x) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/comparison/less.hpp b/third_party/msgpack/include/msgpack/preprocessor/comparison/less.hpp new file mode 100644 index 000000000000..7351fc08ed00 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/comparison/less.hpp @@ -0,0 +1,46 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_COMPARISON_LESS_HPP +# define MSGPACK_PREPROCESSOR_COMPARISON_LESS_HPP +# +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_LESS */ +# +# if MSGPACK_PP_CONFIG_FLAGS() & (MSGPACK_PP_CONFIG_MWCC() | MSGPACK_PP_CONFIG_DMC()) +# define MSGPACK_PP_LESS(x, y) MSGPACK_PP_BITAND(MSGPACK_PP_NOT_EQUAL(x, y), MSGPACK_PP_LESS_EQUAL(x, y)) +# elif ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LESS(x, y) MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(x, y), MSGPACK_PP_LESS_EQUAL, 0 MSGPACK_PP_TUPLE_EAT_2)(x, y) +# else +# define MSGPACK_PP_LESS(x, y) MSGPACK_PP_LESS_I(x, y) +# define MSGPACK_PP_LESS_I(x, y) MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(x, y), MSGPACK_PP_LESS_EQUAL, 0 MSGPACK_PP_TUPLE_EAT_2)(x, y) +# endif +# +# /* MSGPACK_PP_LESS_D */ +# +# if MSGPACK_PP_CONFIG_FLAGS() & (MSGPACK_PP_CONFIG_MWCC() | MSGPACK_PP_CONFIG_DMC()) +# define MSGPACK_PP_LESS_D(d, x, y) MSGPACK_PP_BITAND(MSGPACK_PP_NOT_EQUAL(x, y), MSGPACK_PP_LESS_EQUAL_D(d, x, y)) +# elif ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LESS_D(d, x, y) MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(x, y), MSGPACK_PP_LESS_EQUAL_D, 0 MSGPACK_PP_TUPLE_EAT_3)(d, x, y) +# else +# define MSGPACK_PP_LESS_D(d, x, y) MSGPACK_PP_LESS_D_I(d, x, y) +# define MSGPACK_PP_LESS_D_I(d, x, y) MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(x, y), MSGPACK_PP_LESS_EQUAL_D, 0 MSGPACK_PP_TUPLE_EAT_3)(d, x, y) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/comparison/less_equal.hpp b/third_party/msgpack/include/msgpack/preprocessor/comparison/less_equal.hpp new file mode 100644 index 000000000000..db8d608c408c --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/comparison/less_equal.hpp @@ -0,0 +1,39 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP +# define MSGPACK_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_LESS_EQUAL */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LESS_EQUAL(x, y) MSGPACK_PP_NOT(MSGPACK_PP_SUB(x, y)) +# else +# define MSGPACK_PP_LESS_EQUAL(x, y) MSGPACK_PP_LESS_EQUAL_I(x, y) +# define MSGPACK_PP_LESS_EQUAL_I(x, y) MSGPACK_PP_NOT(MSGPACK_PP_SUB(x, y)) +# endif +# +# /* MSGPACK_PP_LESS_EQUAL_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LESS_EQUAL_D(d, x, y) MSGPACK_PP_NOT(MSGPACK_PP_SUB_D(d, x, y)) +# else +# define MSGPACK_PP_LESS_EQUAL_D(d, x, y) MSGPACK_PP_LESS_EQUAL_D_I(d, x, y) +# define MSGPACK_PP_LESS_EQUAL_D_I(d, x, y) MSGPACK_PP_NOT(MSGPACK_PP_SUB_D(d, x, y)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/comparison/not_equal.hpp b/third_party/msgpack/include/msgpack/preprocessor/comparison/not_equal.hpp new file mode 100644 index 000000000000..e48096113473 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/comparison/not_equal.hpp @@ -0,0 +1,814 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_COMPARISON_NOT_EQUAL_HPP +# define MSGPACK_PREPROCESSOR_COMPARISON_NOT_EQUAL_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_NOT_EQUAL */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_NOT_EQUAL(x, y) MSGPACK_PP_NOT_EQUAL_I(x, y) +# else +# define MSGPACK_PP_NOT_EQUAL(x, y) MSGPACK_PP_NOT_EQUAL_OO((x, y)) +# define MSGPACK_PP_NOT_EQUAL_OO(par) MSGPACK_PP_NOT_EQUAL_I ## par +# endif +# +# define MSGPACK_PP_NOT_EQUAL_I(x, y) MSGPACK_PP_CAT(MSGPACK_PP_NOT_EQUAL_CHECK_, MSGPACK_PP_NOT_EQUAL_ ## x(0, MSGPACK_PP_NOT_EQUAL_ ## y)) +# +# /* MSGPACK_PP_NOT_EQUAL_D */ +# +# define MSGPACK_PP_NOT_EQUAL_D(d, x, y) MSGPACK_PP_NOT_EQUAL(x, y) +# +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NIL 1 +# +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_0(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_1(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_2(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_3(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_4(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_5(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_6(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_7(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_8(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_9(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_10(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_11(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_12(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_13(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_14(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_15(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_16(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_17(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_18(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_19(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_20(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_21(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_22(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_23(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_24(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_25(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_26(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_27(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_28(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_29(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_30(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_31(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_32(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_33(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_34(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_35(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_36(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_37(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_38(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_39(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_40(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_41(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_42(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_43(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_44(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_45(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_46(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_47(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_48(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_49(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_50(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_51(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_52(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_53(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_54(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_55(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_56(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_57(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_58(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_59(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_60(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_61(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_62(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_63(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_64(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_65(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_66(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_67(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_68(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_69(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_70(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_71(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_72(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_73(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_74(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_75(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_76(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_77(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_78(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_79(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_80(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_81(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_82(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_83(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_84(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_85(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_86(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_87(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_88(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_89(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_90(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_91(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_92(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_93(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_94(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_95(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_96(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_97(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_98(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_99(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_100(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_101(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_102(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_103(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_104(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_105(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_106(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_107(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_108(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_109(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_110(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_111(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_112(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_113(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_114(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_115(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_116(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_117(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_118(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_119(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_120(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_121(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_122(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_123(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_124(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_125(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_126(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_127(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_128(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_129(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_130(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_131(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_132(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_133(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_134(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_135(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_136(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_137(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_138(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_139(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_140(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_141(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_142(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_143(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_144(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_145(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_146(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_147(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_148(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_149(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_150(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_151(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_152(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_153(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_154(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_155(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_156(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_157(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_158(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_159(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_160(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_161(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_162(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_163(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_164(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_165(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_166(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_167(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_168(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_169(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_170(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_171(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_172(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_173(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_174(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_175(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_176(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_177(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_178(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_179(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_180(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_181(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_182(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_183(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_184(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_185(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_186(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_187(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_188(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_189(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_190(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_191(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_192(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_193(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_194(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_195(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_196(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_197(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_198(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_199(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_200(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_201(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_202(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_203(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_204(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_205(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_206(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_207(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_208(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_209(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_210(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_211(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_212(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_213(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_214(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_215(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_216(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_217(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_218(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_219(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_220(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_221(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_222(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_223(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_224(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_225(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_226(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_227(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_228(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_229(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_230(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_231(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_232(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_233(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_234(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_235(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_236(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_237(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_238(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_239(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_240(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_241(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_242(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_243(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_244(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_245(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_246(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_247(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_248(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_249(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_250(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_251(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_252(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_253(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_254(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_255(c, y) 0 +# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_256(c, y) 0 +# +#if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC() +# define MSGPACK_PP_NOT_EQUAL_0(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_1(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_2(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_3(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_4(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_5(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_6(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_7(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_8(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_9(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_10(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_11(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_12(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_13(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_14(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_15(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_16(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_17(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_18(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_19(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_20(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_21(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_22(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_23(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_24(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_25(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_26(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_27(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_28(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_29(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_30(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_31(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_32(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_33(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_34(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_35(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_36(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_37(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_38(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_39(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_40(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_41(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_42(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_43(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_44(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_45(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_46(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_47(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_48(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_49(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_50(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_51(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_52(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_53(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_54(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_55(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_56(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_57(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_58(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_59(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_60(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_61(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_62(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_63(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_64(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_65(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_66(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_67(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_68(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_69(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_70(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_71(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_72(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_73(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_74(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_75(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_76(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_77(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_78(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_79(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_80(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_81(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_82(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_83(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_84(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_85(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_86(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_87(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_88(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_89(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_90(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_91(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_92(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_93(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_94(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_95(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_96(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_97(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_98(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_99(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_100(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_101(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_102(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_103(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_104(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_105(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_106(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_107(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_108(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_109(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_110(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_111(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_112(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_113(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_114(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_115(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_116(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_117(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_118(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_119(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_120(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_121(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_122(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_123(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_124(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_125(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_126(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_127(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_128(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_129(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_130(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_131(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_132(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_133(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_134(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_135(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_136(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_137(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_138(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_139(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_140(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_141(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_142(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_143(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_144(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_145(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_146(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_147(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_148(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_149(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_150(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_151(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_152(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_153(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_154(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_155(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_156(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_157(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_158(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_159(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_160(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_161(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_162(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_163(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_164(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_165(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_166(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_167(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_168(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_169(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_170(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_171(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_172(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_173(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_174(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_175(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_176(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_177(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_178(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_179(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_180(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_181(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_182(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_183(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_184(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_185(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_186(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_187(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_188(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_189(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_190(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_191(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_192(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_193(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_194(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_195(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_196(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_197(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_198(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_199(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_200(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_201(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_202(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_203(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_204(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_205(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_206(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_207(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_208(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_209(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_210(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_211(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_212(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_213(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_214(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_215(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_216(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_217(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_218(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_219(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_220(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_221(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_222(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_223(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_224(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_225(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_226(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_227(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_228(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_229(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_230(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_231(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_232(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_233(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_234(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_235(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_236(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_237(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_238(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_239(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_240(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_241(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_242(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_243(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_244(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_245(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_246(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_247(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_248(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_249(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_250(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_251(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_252(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_253(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_254(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_255(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_256(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL)) +# else +# define MSGPACK_PP_NOT_EQUAL_0(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_1(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_2(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_3(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_4(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_5(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_6(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_7(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_8(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_9(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_10(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_11(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_12(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_13(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_14(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_15(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_16(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_17(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_18(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_19(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_20(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_21(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_22(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_23(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_24(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_25(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_26(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_27(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_28(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_29(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_30(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_31(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_32(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_33(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_34(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_35(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_36(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_37(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_38(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_39(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_40(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_41(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_42(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_43(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_44(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_45(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_46(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_47(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_48(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_49(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_50(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_51(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_52(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_53(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_54(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_55(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_56(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_57(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_58(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_59(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_60(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_61(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_62(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_63(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_64(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_65(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_66(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_67(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_68(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_69(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_70(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_71(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_72(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_73(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_74(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_75(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_76(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_77(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_78(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_79(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_80(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_81(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_82(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_83(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_84(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_85(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_86(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_87(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_88(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_89(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_90(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_91(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_92(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_93(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_94(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_95(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_96(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_97(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_98(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_99(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_100(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_101(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_102(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_103(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_104(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_105(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_106(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_107(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_108(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_109(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_110(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_111(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_112(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_113(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_114(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_115(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_116(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_117(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_118(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_119(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_120(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_121(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_122(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_123(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_124(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_125(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_126(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_127(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_128(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_129(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_130(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_131(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_132(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_133(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_134(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_135(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_136(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_137(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_138(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_139(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_140(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_141(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_142(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_143(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_144(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_145(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_146(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_147(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_148(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_149(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_150(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_151(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_152(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_153(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_154(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_155(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_156(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_157(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_158(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_159(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_160(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_161(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_162(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_163(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_164(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_165(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_166(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_167(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_168(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_169(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_170(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_171(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_172(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_173(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_174(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_175(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_176(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_177(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_178(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_179(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_180(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_181(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_182(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_183(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_184(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_185(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_186(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_187(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_188(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_189(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_190(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_191(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_192(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_193(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_194(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_195(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_196(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_197(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_198(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_199(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_200(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_201(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_202(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_203(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_204(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_205(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_206(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_207(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_208(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_209(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_210(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_211(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_212(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_213(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_214(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_215(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_216(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_217(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_218(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_219(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_220(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_221(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_222(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_223(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_224(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_225(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_226(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_227(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_228(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_229(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_230(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_231(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_232(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_233(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_234(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_235(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_236(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_237(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_238(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_239(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_240(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_241(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_242(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_243(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_244(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_245(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_246(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_247(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_248(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_249(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_250(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_251(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_252(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_253(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_254(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_255(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_NOT_EQUAL_256(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/config/config.hpp b/third_party/msgpack/include/msgpack/preprocessor/config/config.hpp new file mode 100644 index 000000000000..7ae4b15b4f9f --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/config/config.hpp @@ -0,0 +1,104 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002-2011. * +# * (C) Copyright Edward Diener 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_CONFIG_CONFIG_HPP +# define MSGPACK_PREPROCESSOR_CONFIG_CONFIG_HPP +# +# /* MSGPACK_PP_CONFIG_FLAGS */ +# +# define MSGPACK_PP_CONFIG_STRICT() 0x0001 +# define MSGPACK_PP_CONFIG_IDEAL() 0x0002 +# +# define MSGPACK_PP_CONFIG_MSVC() 0x0004 +# define MSGPACK_PP_CONFIG_MWCC() 0x0008 +# define MSGPACK_PP_CONFIG_BCC() 0x0010 +# define MSGPACK_PP_CONFIG_EDG() 0x0020 +# define MSGPACK_PP_CONFIG_DMC() 0x0040 +# +# ifndef MSGPACK_PP_CONFIG_FLAGS +# if defined(__GCCXML__) +# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT()) +# elif defined(__WAVE__) +# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT()) +# elif defined(__MWERKS__) && __MWERKS__ >= 0x3200 +# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT()) +# elif defined(__EDG__) || defined(__EDG_VERSION__) +# if defined(_MSC_VER) && (defined(__INTELLISENSE__) || __EDG_VERSION__ >= 308) +# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_MSVC()) +# else +# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_EDG() | MSGPACK_PP_CONFIG_STRICT()) +# endif +# elif defined(__MWERKS__) +# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_MWCC()) +# elif defined(__DMC__) +# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_DMC()) +# elif defined(__BORLANDC__) && __BORLANDC__ >= 0x581 +# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT()) +# elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC) +# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_BCC()) +# elif defined(_MSC_VER) && !defined(__clang__) +# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_MSVC()) +# else +# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT()) +# endif +# endif +# +# /* MSGPACK_PP_CONFIG_EXTENDED_LINE_INFO */ +# +# ifndef MSGPACK_PP_CONFIG_EXTENDED_LINE_INFO +# define MSGPACK_PP_CONFIG_EXTENDED_LINE_INFO 0 +# endif +# +# /* MSGPACK_PP_CONFIG_ERRORS */ +# +# ifndef MSGPACK_PP_CONFIG_ERRORS +# ifdef NDEBUG +# define MSGPACK_PP_CONFIG_ERRORS 0 +# else +# define MSGPACK_PP_CONFIG_ERRORS 1 +# endif +# endif +# +# /* MSGPACK_PP_VARIADICS */ +# +# define MSGPACK_PP_VARIADICS_MSVC 0 +# if !defined MSGPACK_PP_VARIADICS +# /* variadic support explicitly disabled for all untested compilers */ +# if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || ( defined __SUNPRO_CC && __SUNPRO_CC < 0x5120 ) || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI +# define MSGPACK_PP_VARIADICS 0 +# /* VC++ (C/C++) */ +# elif defined _MSC_VER && _MSC_VER >= 1400 && (!defined __EDG__ || defined(__INTELLISENSE__)) && !defined __clang__ +# define MSGPACK_PP_VARIADICS 1 +# undef MSGPACK_PP_VARIADICS_MSVC +# define MSGPACK_PP_VARIADICS_MSVC 1 +# /* Wave (C/C++), GCC (C++) */ +# elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && defined __GXX_EXPERIMENTAL_CXX0X__ && __GXX_EXPERIMENTAL_CXX0X__ +# define MSGPACK_PP_VARIADICS 1 +# /* EDG-based (C/C++), GCC (C), and unknown (C/C++) */ +# elif !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L +# define MSGPACK_PP_VARIADICS 1 +# else +# define MSGPACK_PP_VARIADICS 0 +# endif +# elif !MSGPACK_PP_VARIADICS + 1 < 2 +# undef MSGPACK_PP_VARIADICS +# define MSGPACK_PP_VARIADICS 1 +# if defined _MSC_VER && _MSC_VER >= 1400 && (defined(__INTELLISENSE__) || !(defined __EDG__ || defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI)) +# undef MSGPACK_PP_VARIADICS_MSVC +# define MSGPACK_PP_VARIADICS_MSVC 1 +# endif +# else +# undef MSGPACK_PP_VARIADICS +# define MSGPACK_PP_VARIADICS 0 +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/config/limits.hpp b/third_party/msgpack/include/msgpack/preprocessor/config/limits.hpp new file mode 100644 index 000000000000..918bacf7c499 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/config/limits.hpp @@ -0,0 +1,30 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# /* Revised by Edward Diener (2011) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_CONFIG_LIMITS_HPP +# define MSGPACK_PREPROCESSOR_CONFIG_LIMITS_HPP +# +# define MSGPACK_PP_LIMIT_MAG 256 +# define MSGPACK_PP_LIMIT_TUPLE 64 +# define MSGPACK_PP_LIMIT_DIM 3 +# define MSGPACK_PP_LIMIT_REPEAT 256 +# define MSGPACK_PP_LIMIT_WHILE 256 +# define MSGPACK_PP_LIMIT_FOR 256 +# define MSGPACK_PP_LIMIT_ITERATION 256 +# define MSGPACK_PP_LIMIT_ITERATION_DIM 3 +# define MSGPACK_PP_LIMIT_SEQ 256 +# define MSGPACK_PP_LIMIT_SLOT_SIG 10 +# define MSGPACK_PP_LIMIT_SLOT_COUNT 5 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/control.hpp b/third_party/msgpack/include/msgpack/preprocessor/control.hpp new file mode 100644 index 000000000000..06c4949f91d2 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/control.hpp @@ -0,0 +1,22 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_CONTROL_HPP +# define MSGPACK_PREPROCESSOR_CONTROL_HPP +# +# include +# include +# include +# include +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/control/deduce_d.hpp b/third_party/msgpack/include/msgpack/preprocessor/control/deduce_d.hpp new file mode 100644 index 000000000000..fbb980b8c8db --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/control/deduce_d.hpp @@ -0,0 +1,22 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_CONTROL_DEDUCE_D_HPP +# define MSGPACK_PREPROCESSOR_CONTROL_DEDUCE_D_HPP +# +# include +# include +# +# /* MSGPACK_PP_DEDUCE_D */ +# +# define MSGPACK_PP_DEDUCE_D() MSGPACK_PP_AUTO_REC(MSGPACK_PP_WHILE_P, 256) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/control/detail/dmc/while.hpp b/third_party/msgpack/include/msgpack/preprocessor/control/detail/dmc/while.hpp new file mode 100644 index 000000000000..b5733c9e8280 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/control/detail/dmc/while.hpp @@ -0,0 +1,536 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP +# define MSGPACK_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP +# +# include +# include +# include +# +# define MSGPACK_PP_WHILE_1(p, o, s) MSGPACK_PP_WHILE_1_C(MSGPACK_PP_BOOL(p##(2, s)), p, o, s) +# define MSGPACK_PP_WHILE_2(p, o, s) MSGPACK_PP_WHILE_2_C(MSGPACK_PP_BOOL(p##(3, s)), p, o, s) +# define MSGPACK_PP_WHILE_3(p, o, s) MSGPACK_PP_WHILE_3_C(MSGPACK_PP_BOOL(p##(4, s)), p, o, s) +# define MSGPACK_PP_WHILE_4(p, o, s) MSGPACK_PP_WHILE_4_C(MSGPACK_PP_BOOL(p##(5, s)), p, o, s) +# define MSGPACK_PP_WHILE_5(p, o, s) MSGPACK_PP_WHILE_5_C(MSGPACK_PP_BOOL(p##(6, s)), p, o, s) +# define MSGPACK_PP_WHILE_6(p, o, s) MSGPACK_PP_WHILE_6_C(MSGPACK_PP_BOOL(p##(7, s)), p, o, s) +# define MSGPACK_PP_WHILE_7(p, o, s) MSGPACK_PP_WHILE_7_C(MSGPACK_PP_BOOL(p##(8, s)), p, o, s) +# define MSGPACK_PP_WHILE_8(p, o, s) MSGPACK_PP_WHILE_8_C(MSGPACK_PP_BOOL(p##(9, s)), p, o, s) +# define MSGPACK_PP_WHILE_9(p, o, s) MSGPACK_PP_WHILE_9_C(MSGPACK_PP_BOOL(p##(10, s)), p, o, s) +# define MSGPACK_PP_WHILE_10(p, o, s) MSGPACK_PP_WHILE_10_C(MSGPACK_PP_BOOL(p##(11, s)), p, o, s) +# define MSGPACK_PP_WHILE_11(p, o, s) MSGPACK_PP_WHILE_11_C(MSGPACK_PP_BOOL(p##(12, s)), p, o, s) +# define MSGPACK_PP_WHILE_12(p, o, s) MSGPACK_PP_WHILE_12_C(MSGPACK_PP_BOOL(p##(13, s)), p, o, s) +# define MSGPACK_PP_WHILE_13(p, o, s) MSGPACK_PP_WHILE_13_C(MSGPACK_PP_BOOL(p##(14, s)), p, o, s) +# define MSGPACK_PP_WHILE_14(p, o, s) MSGPACK_PP_WHILE_14_C(MSGPACK_PP_BOOL(p##(15, s)), p, o, s) +# define MSGPACK_PP_WHILE_15(p, o, s) MSGPACK_PP_WHILE_15_C(MSGPACK_PP_BOOL(p##(16, s)), p, o, s) +# define MSGPACK_PP_WHILE_16(p, o, s) MSGPACK_PP_WHILE_16_C(MSGPACK_PP_BOOL(p##(17, s)), p, o, s) +# define MSGPACK_PP_WHILE_17(p, o, s) MSGPACK_PP_WHILE_17_C(MSGPACK_PP_BOOL(p##(18, s)), p, o, s) +# define MSGPACK_PP_WHILE_18(p, o, s) MSGPACK_PP_WHILE_18_C(MSGPACK_PP_BOOL(p##(19, s)), p, o, s) +# define MSGPACK_PP_WHILE_19(p, o, s) MSGPACK_PP_WHILE_19_C(MSGPACK_PP_BOOL(p##(20, s)), p, o, s) +# define MSGPACK_PP_WHILE_20(p, o, s) MSGPACK_PP_WHILE_20_C(MSGPACK_PP_BOOL(p##(21, s)), p, o, s) +# define MSGPACK_PP_WHILE_21(p, o, s) MSGPACK_PP_WHILE_21_C(MSGPACK_PP_BOOL(p##(22, s)), p, o, s) +# define MSGPACK_PP_WHILE_22(p, o, s) MSGPACK_PP_WHILE_22_C(MSGPACK_PP_BOOL(p##(23, s)), p, o, s) +# define MSGPACK_PP_WHILE_23(p, o, s) MSGPACK_PP_WHILE_23_C(MSGPACK_PP_BOOL(p##(24, s)), p, o, s) +# define MSGPACK_PP_WHILE_24(p, o, s) MSGPACK_PP_WHILE_24_C(MSGPACK_PP_BOOL(p##(25, s)), p, o, s) +# define MSGPACK_PP_WHILE_25(p, o, s) MSGPACK_PP_WHILE_25_C(MSGPACK_PP_BOOL(p##(26, s)), p, o, s) +# define MSGPACK_PP_WHILE_26(p, o, s) MSGPACK_PP_WHILE_26_C(MSGPACK_PP_BOOL(p##(27, s)), p, o, s) +# define MSGPACK_PP_WHILE_27(p, o, s) MSGPACK_PP_WHILE_27_C(MSGPACK_PP_BOOL(p##(28, s)), p, o, s) +# define MSGPACK_PP_WHILE_28(p, o, s) MSGPACK_PP_WHILE_28_C(MSGPACK_PP_BOOL(p##(29, s)), p, o, s) +# define MSGPACK_PP_WHILE_29(p, o, s) MSGPACK_PP_WHILE_29_C(MSGPACK_PP_BOOL(p##(30, s)), p, o, s) +# define MSGPACK_PP_WHILE_30(p, o, s) MSGPACK_PP_WHILE_30_C(MSGPACK_PP_BOOL(p##(31, s)), p, o, s) +# define MSGPACK_PP_WHILE_31(p, o, s) MSGPACK_PP_WHILE_31_C(MSGPACK_PP_BOOL(p##(32, s)), p, o, s) +# define MSGPACK_PP_WHILE_32(p, o, s) MSGPACK_PP_WHILE_32_C(MSGPACK_PP_BOOL(p##(33, s)), p, o, s) +# define MSGPACK_PP_WHILE_33(p, o, s) MSGPACK_PP_WHILE_33_C(MSGPACK_PP_BOOL(p##(34, s)), p, o, s) +# define MSGPACK_PP_WHILE_34(p, o, s) MSGPACK_PP_WHILE_34_C(MSGPACK_PP_BOOL(p##(35, s)), p, o, s) +# define MSGPACK_PP_WHILE_35(p, o, s) MSGPACK_PP_WHILE_35_C(MSGPACK_PP_BOOL(p##(36, s)), p, o, s) +# define MSGPACK_PP_WHILE_36(p, o, s) MSGPACK_PP_WHILE_36_C(MSGPACK_PP_BOOL(p##(37, s)), p, o, s) +# define MSGPACK_PP_WHILE_37(p, o, s) MSGPACK_PP_WHILE_37_C(MSGPACK_PP_BOOL(p##(38, s)), p, o, s) +# define MSGPACK_PP_WHILE_38(p, o, s) MSGPACK_PP_WHILE_38_C(MSGPACK_PP_BOOL(p##(39, s)), p, o, s) +# define MSGPACK_PP_WHILE_39(p, o, s) MSGPACK_PP_WHILE_39_C(MSGPACK_PP_BOOL(p##(40, s)), p, o, s) +# define MSGPACK_PP_WHILE_40(p, o, s) MSGPACK_PP_WHILE_40_C(MSGPACK_PP_BOOL(p##(41, s)), p, o, s) +# define MSGPACK_PP_WHILE_41(p, o, s) MSGPACK_PP_WHILE_41_C(MSGPACK_PP_BOOL(p##(42, s)), p, o, s) +# define MSGPACK_PP_WHILE_42(p, o, s) MSGPACK_PP_WHILE_42_C(MSGPACK_PP_BOOL(p##(43, s)), p, o, s) +# define MSGPACK_PP_WHILE_43(p, o, s) MSGPACK_PP_WHILE_43_C(MSGPACK_PP_BOOL(p##(44, s)), p, o, s) +# define MSGPACK_PP_WHILE_44(p, o, s) MSGPACK_PP_WHILE_44_C(MSGPACK_PP_BOOL(p##(45, s)), p, o, s) +# define MSGPACK_PP_WHILE_45(p, o, s) MSGPACK_PP_WHILE_45_C(MSGPACK_PP_BOOL(p##(46, s)), p, o, s) +# define MSGPACK_PP_WHILE_46(p, o, s) MSGPACK_PP_WHILE_46_C(MSGPACK_PP_BOOL(p##(47, s)), p, o, s) +# define MSGPACK_PP_WHILE_47(p, o, s) MSGPACK_PP_WHILE_47_C(MSGPACK_PP_BOOL(p##(48, s)), p, o, s) +# define MSGPACK_PP_WHILE_48(p, o, s) MSGPACK_PP_WHILE_48_C(MSGPACK_PP_BOOL(p##(49, s)), p, o, s) +# define MSGPACK_PP_WHILE_49(p, o, s) MSGPACK_PP_WHILE_49_C(MSGPACK_PP_BOOL(p##(50, s)), p, o, s) +# define MSGPACK_PP_WHILE_50(p, o, s) MSGPACK_PP_WHILE_50_C(MSGPACK_PP_BOOL(p##(51, s)), p, o, s) +# define MSGPACK_PP_WHILE_51(p, o, s) MSGPACK_PP_WHILE_51_C(MSGPACK_PP_BOOL(p##(52, s)), p, o, s) +# define MSGPACK_PP_WHILE_52(p, o, s) MSGPACK_PP_WHILE_52_C(MSGPACK_PP_BOOL(p##(53, s)), p, o, s) +# define MSGPACK_PP_WHILE_53(p, o, s) MSGPACK_PP_WHILE_53_C(MSGPACK_PP_BOOL(p##(54, s)), p, o, s) +# define MSGPACK_PP_WHILE_54(p, o, s) MSGPACK_PP_WHILE_54_C(MSGPACK_PP_BOOL(p##(55, s)), p, o, s) +# define MSGPACK_PP_WHILE_55(p, o, s) MSGPACK_PP_WHILE_55_C(MSGPACK_PP_BOOL(p##(56, s)), p, o, s) +# define MSGPACK_PP_WHILE_56(p, o, s) MSGPACK_PP_WHILE_56_C(MSGPACK_PP_BOOL(p##(57, s)), p, o, s) +# define MSGPACK_PP_WHILE_57(p, o, s) MSGPACK_PP_WHILE_57_C(MSGPACK_PP_BOOL(p##(58, s)), p, o, s) +# define MSGPACK_PP_WHILE_58(p, o, s) MSGPACK_PP_WHILE_58_C(MSGPACK_PP_BOOL(p##(59, s)), p, o, s) +# define MSGPACK_PP_WHILE_59(p, o, s) MSGPACK_PP_WHILE_59_C(MSGPACK_PP_BOOL(p##(60, s)), p, o, s) +# define MSGPACK_PP_WHILE_60(p, o, s) MSGPACK_PP_WHILE_60_C(MSGPACK_PP_BOOL(p##(61, s)), p, o, s) +# define MSGPACK_PP_WHILE_61(p, o, s) MSGPACK_PP_WHILE_61_C(MSGPACK_PP_BOOL(p##(62, s)), p, o, s) +# define MSGPACK_PP_WHILE_62(p, o, s) MSGPACK_PP_WHILE_62_C(MSGPACK_PP_BOOL(p##(63, s)), p, o, s) +# define MSGPACK_PP_WHILE_63(p, o, s) MSGPACK_PP_WHILE_63_C(MSGPACK_PP_BOOL(p##(64, s)), p, o, s) +# define MSGPACK_PP_WHILE_64(p, o, s) MSGPACK_PP_WHILE_64_C(MSGPACK_PP_BOOL(p##(65, s)), p, o, s) +# define MSGPACK_PP_WHILE_65(p, o, s) MSGPACK_PP_WHILE_65_C(MSGPACK_PP_BOOL(p##(66, s)), p, o, s) +# define MSGPACK_PP_WHILE_66(p, o, s) MSGPACK_PP_WHILE_66_C(MSGPACK_PP_BOOL(p##(67, s)), p, o, s) +# define MSGPACK_PP_WHILE_67(p, o, s) MSGPACK_PP_WHILE_67_C(MSGPACK_PP_BOOL(p##(68, s)), p, o, s) +# define MSGPACK_PP_WHILE_68(p, o, s) MSGPACK_PP_WHILE_68_C(MSGPACK_PP_BOOL(p##(69, s)), p, o, s) +# define MSGPACK_PP_WHILE_69(p, o, s) MSGPACK_PP_WHILE_69_C(MSGPACK_PP_BOOL(p##(70, s)), p, o, s) +# define MSGPACK_PP_WHILE_70(p, o, s) MSGPACK_PP_WHILE_70_C(MSGPACK_PP_BOOL(p##(71, s)), p, o, s) +# define MSGPACK_PP_WHILE_71(p, o, s) MSGPACK_PP_WHILE_71_C(MSGPACK_PP_BOOL(p##(72, s)), p, o, s) +# define MSGPACK_PP_WHILE_72(p, o, s) MSGPACK_PP_WHILE_72_C(MSGPACK_PP_BOOL(p##(73, s)), p, o, s) +# define MSGPACK_PP_WHILE_73(p, o, s) MSGPACK_PP_WHILE_73_C(MSGPACK_PP_BOOL(p##(74, s)), p, o, s) +# define MSGPACK_PP_WHILE_74(p, o, s) MSGPACK_PP_WHILE_74_C(MSGPACK_PP_BOOL(p##(75, s)), p, o, s) +# define MSGPACK_PP_WHILE_75(p, o, s) MSGPACK_PP_WHILE_75_C(MSGPACK_PP_BOOL(p##(76, s)), p, o, s) +# define MSGPACK_PP_WHILE_76(p, o, s) MSGPACK_PP_WHILE_76_C(MSGPACK_PP_BOOL(p##(77, s)), p, o, s) +# define MSGPACK_PP_WHILE_77(p, o, s) MSGPACK_PP_WHILE_77_C(MSGPACK_PP_BOOL(p##(78, s)), p, o, s) +# define MSGPACK_PP_WHILE_78(p, o, s) MSGPACK_PP_WHILE_78_C(MSGPACK_PP_BOOL(p##(79, s)), p, o, s) +# define MSGPACK_PP_WHILE_79(p, o, s) MSGPACK_PP_WHILE_79_C(MSGPACK_PP_BOOL(p##(80, s)), p, o, s) +# define MSGPACK_PP_WHILE_80(p, o, s) MSGPACK_PP_WHILE_80_C(MSGPACK_PP_BOOL(p##(81, s)), p, o, s) +# define MSGPACK_PP_WHILE_81(p, o, s) MSGPACK_PP_WHILE_81_C(MSGPACK_PP_BOOL(p##(82, s)), p, o, s) +# define MSGPACK_PP_WHILE_82(p, o, s) MSGPACK_PP_WHILE_82_C(MSGPACK_PP_BOOL(p##(83, s)), p, o, s) +# define MSGPACK_PP_WHILE_83(p, o, s) MSGPACK_PP_WHILE_83_C(MSGPACK_PP_BOOL(p##(84, s)), p, o, s) +# define MSGPACK_PP_WHILE_84(p, o, s) MSGPACK_PP_WHILE_84_C(MSGPACK_PP_BOOL(p##(85, s)), p, o, s) +# define MSGPACK_PP_WHILE_85(p, o, s) MSGPACK_PP_WHILE_85_C(MSGPACK_PP_BOOL(p##(86, s)), p, o, s) +# define MSGPACK_PP_WHILE_86(p, o, s) MSGPACK_PP_WHILE_86_C(MSGPACK_PP_BOOL(p##(87, s)), p, o, s) +# define MSGPACK_PP_WHILE_87(p, o, s) MSGPACK_PP_WHILE_87_C(MSGPACK_PP_BOOL(p##(88, s)), p, o, s) +# define MSGPACK_PP_WHILE_88(p, o, s) MSGPACK_PP_WHILE_88_C(MSGPACK_PP_BOOL(p##(89, s)), p, o, s) +# define MSGPACK_PP_WHILE_89(p, o, s) MSGPACK_PP_WHILE_89_C(MSGPACK_PP_BOOL(p##(90, s)), p, o, s) +# define MSGPACK_PP_WHILE_90(p, o, s) MSGPACK_PP_WHILE_90_C(MSGPACK_PP_BOOL(p##(91, s)), p, o, s) +# define MSGPACK_PP_WHILE_91(p, o, s) MSGPACK_PP_WHILE_91_C(MSGPACK_PP_BOOL(p##(92, s)), p, o, s) +# define MSGPACK_PP_WHILE_92(p, o, s) MSGPACK_PP_WHILE_92_C(MSGPACK_PP_BOOL(p##(93, s)), p, o, s) +# define MSGPACK_PP_WHILE_93(p, o, s) MSGPACK_PP_WHILE_93_C(MSGPACK_PP_BOOL(p##(94, s)), p, o, s) +# define MSGPACK_PP_WHILE_94(p, o, s) MSGPACK_PP_WHILE_94_C(MSGPACK_PP_BOOL(p##(95, s)), p, o, s) +# define MSGPACK_PP_WHILE_95(p, o, s) MSGPACK_PP_WHILE_95_C(MSGPACK_PP_BOOL(p##(96, s)), p, o, s) +# define MSGPACK_PP_WHILE_96(p, o, s) MSGPACK_PP_WHILE_96_C(MSGPACK_PP_BOOL(p##(97, s)), p, o, s) +# define MSGPACK_PP_WHILE_97(p, o, s) MSGPACK_PP_WHILE_97_C(MSGPACK_PP_BOOL(p##(98, s)), p, o, s) +# define MSGPACK_PP_WHILE_98(p, o, s) MSGPACK_PP_WHILE_98_C(MSGPACK_PP_BOOL(p##(99, s)), p, o, s) +# define MSGPACK_PP_WHILE_99(p, o, s) MSGPACK_PP_WHILE_99_C(MSGPACK_PP_BOOL(p##(100, s)), p, o, s) +# define MSGPACK_PP_WHILE_100(p, o, s) MSGPACK_PP_WHILE_100_C(MSGPACK_PP_BOOL(p##(101, s)), p, o, s) +# define MSGPACK_PP_WHILE_101(p, o, s) MSGPACK_PP_WHILE_101_C(MSGPACK_PP_BOOL(p##(102, s)), p, o, s) +# define MSGPACK_PP_WHILE_102(p, o, s) MSGPACK_PP_WHILE_102_C(MSGPACK_PP_BOOL(p##(103, s)), p, o, s) +# define MSGPACK_PP_WHILE_103(p, o, s) MSGPACK_PP_WHILE_103_C(MSGPACK_PP_BOOL(p##(104, s)), p, o, s) +# define MSGPACK_PP_WHILE_104(p, o, s) MSGPACK_PP_WHILE_104_C(MSGPACK_PP_BOOL(p##(105, s)), p, o, s) +# define MSGPACK_PP_WHILE_105(p, o, s) MSGPACK_PP_WHILE_105_C(MSGPACK_PP_BOOL(p##(106, s)), p, o, s) +# define MSGPACK_PP_WHILE_106(p, o, s) MSGPACK_PP_WHILE_106_C(MSGPACK_PP_BOOL(p##(107, s)), p, o, s) +# define MSGPACK_PP_WHILE_107(p, o, s) MSGPACK_PP_WHILE_107_C(MSGPACK_PP_BOOL(p##(108, s)), p, o, s) +# define MSGPACK_PP_WHILE_108(p, o, s) MSGPACK_PP_WHILE_108_C(MSGPACK_PP_BOOL(p##(109, s)), p, o, s) +# define MSGPACK_PP_WHILE_109(p, o, s) MSGPACK_PP_WHILE_109_C(MSGPACK_PP_BOOL(p##(110, s)), p, o, s) +# define MSGPACK_PP_WHILE_110(p, o, s) MSGPACK_PP_WHILE_110_C(MSGPACK_PP_BOOL(p##(111, s)), p, o, s) +# define MSGPACK_PP_WHILE_111(p, o, s) MSGPACK_PP_WHILE_111_C(MSGPACK_PP_BOOL(p##(112, s)), p, o, s) +# define MSGPACK_PP_WHILE_112(p, o, s) MSGPACK_PP_WHILE_112_C(MSGPACK_PP_BOOL(p##(113, s)), p, o, s) +# define MSGPACK_PP_WHILE_113(p, o, s) MSGPACK_PP_WHILE_113_C(MSGPACK_PP_BOOL(p##(114, s)), p, o, s) +# define MSGPACK_PP_WHILE_114(p, o, s) MSGPACK_PP_WHILE_114_C(MSGPACK_PP_BOOL(p##(115, s)), p, o, s) +# define MSGPACK_PP_WHILE_115(p, o, s) MSGPACK_PP_WHILE_115_C(MSGPACK_PP_BOOL(p##(116, s)), p, o, s) +# define MSGPACK_PP_WHILE_116(p, o, s) MSGPACK_PP_WHILE_116_C(MSGPACK_PP_BOOL(p##(117, s)), p, o, s) +# define MSGPACK_PP_WHILE_117(p, o, s) MSGPACK_PP_WHILE_117_C(MSGPACK_PP_BOOL(p##(118, s)), p, o, s) +# define MSGPACK_PP_WHILE_118(p, o, s) MSGPACK_PP_WHILE_118_C(MSGPACK_PP_BOOL(p##(119, s)), p, o, s) +# define MSGPACK_PP_WHILE_119(p, o, s) MSGPACK_PP_WHILE_119_C(MSGPACK_PP_BOOL(p##(120, s)), p, o, s) +# define MSGPACK_PP_WHILE_120(p, o, s) MSGPACK_PP_WHILE_120_C(MSGPACK_PP_BOOL(p##(121, s)), p, o, s) +# define MSGPACK_PP_WHILE_121(p, o, s) MSGPACK_PP_WHILE_121_C(MSGPACK_PP_BOOL(p##(122, s)), p, o, s) +# define MSGPACK_PP_WHILE_122(p, o, s) MSGPACK_PP_WHILE_122_C(MSGPACK_PP_BOOL(p##(123, s)), p, o, s) +# define MSGPACK_PP_WHILE_123(p, o, s) MSGPACK_PP_WHILE_123_C(MSGPACK_PP_BOOL(p##(124, s)), p, o, s) +# define MSGPACK_PP_WHILE_124(p, o, s) MSGPACK_PP_WHILE_124_C(MSGPACK_PP_BOOL(p##(125, s)), p, o, s) +# define MSGPACK_PP_WHILE_125(p, o, s) MSGPACK_PP_WHILE_125_C(MSGPACK_PP_BOOL(p##(126, s)), p, o, s) +# define MSGPACK_PP_WHILE_126(p, o, s) MSGPACK_PP_WHILE_126_C(MSGPACK_PP_BOOL(p##(127, s)), p, o, s) +# define MSGPACK_PP_WHILE_127(p, o, s) MSGPACK_PP_WHILE_127_C(MSGPACK_PP_BOOL(p##(128, s)), p, o, s) +# define MSGPACK_PP_WHILE_128(p, o, s) MSGPACK_PP_WHILE_128_C(MSGPACK_PP_BOOL(p##(129, s)), p, o, s) +# define MSGPACK_PP_WHILE_129(p, o, s) MSGPACK_PP_WHILE_129_C(MSGPACK_PP_BOOL(p##(130, s)), p, o, s) +# define MSGPACK_PP_WHILE_130(p, o, s) MSGPACK_PP_WHILE_130_C(MSGPACK_PP_BOOL(p##(131, s)), p, o, s) +# define MSGPACK_PP_WHILE_131(p, o, s) MSGPACK_PP_WHILE_131_C(MSGPACK_PP_BOOL(p##(132, s)), p, o, s) +# define MSGPACK_PP_WHILE_132(p, o, s) MSGPACK_PP_WHILE_132_C(MSGPACK_PP_BOOL(p##(133, s)), p, o, s) +# define MSGPACK_PP_WHILE_133(p, o, s) MSGPACK_PP_WHILE_133_C(MSGPACK_PP_BOOL(p##(134, s)), p, o, s) +# define MSGPACK_PP_WHILE_134(p, o, s) MSGPACK_PP_WHILE_134_C(MSGPACK_PP_BOOL(p##(135, s)), p, o, s) +# define MSGPACK_PP_WHILE_135(p, o, s) MSGPACK_PP_WHILE_135_C(MSGPACK_PP_BOOL(p##(136, s)), p, o, s) +# define MSGPACK_PP_WHILE_136(p, o, s) MSGPACK_PP_WHILE_136_C(MSGPACK_PP_BOOL(p##(137, s)), p, o, s) +# define MSGPACK_PP_WHILE_137(p, o, s) MSGPACK_PP_WHILE_137_C(MSGPACK_PP_BOOL(p##(138, s)), p, o, s) +# define MSGPACK_PP_WHILE_138(p, o, s) MSGPACK_PP_WHILE_138_C(MSGPACK_PP_BOOL(p##(139, s)), p, o, s) +# define MSGPACK_PP_WHILE_139(p, o, s) MSGPACK_PP_WHILE_139_C(MSGPACK_PP_BOOL(p##(140, s)), p, o, s) +# define MSGPACK_PP_WHILE_140(p, o, s) MSGPACK_PP_WHILE_140_C(MSGPACK_PP_BOOL(p##(141, s)), p, o, s) +# define MSGPACK_PP_WHILE_141(p, o, s) MSGPACK_PP_WHILE_141_C(MSGPACK_PP_BOOL(p##(142, s)), p, o, s) +# define MSGPACK_PP_WHILE_142(p, o, s) MSGPACK_PP_WHILE_142_C(MSGPACK_PP_BOOL(p##(143, s)), p, o, s) +# define MSGPACK_PP_WHILE_143(p, o, s) MSGPACK_PP_WHILE_143_C(MSGPACK_PP_BOOL(p##(144, s)), p, o, s) +# define MSGPACK_PP_WHILE_144(p, o, s) MSGPACK_PP_WHILE_144_C(MSGPACK_PP_BOOL(p##(145, s)), p, o, s) +# define MSGPACK_PP_WHILE_145(p, o, s) MSGPACK_PP_WHILE_145_C(MSGPACK_PP_BOOL(p##(146, s)), p, o, s) +# define MSGPACK_PP_WHILE_146(p, o, s) MSGPACK_PP_WHILE_146_C(MSGPACK_PP_BOOL(p##(147, s)), p, o, s) +# define MSGPACK_PP_WHILE_147(p, o, s) MSGPACK_PP_WHILE_147_C(MSGPACK_PP_BOOL(p##(148, s)), p, o, s) +# define MSGPACK_PP_WHILE_148(p, o, s) MSGPACK_PP_WHILE_148_C(MSGPACK_PP_BOOL(p##(149, s)), p, o, s) +# define MSGPACK_PP_WHILE_149(p, o, s) MSGPACK_PP_WHILE_149_C(MSGPACK_PP_BOOL(p##(150, s)), p, o, s) +# define MSGPACK_PP_WHILE_150(p, o, s) MSGPACK_PP_WHILE_150_C(MSGPACK_PP_BOOL(p##(151, s)), p, o, s) +# define MSGPACK_PP_WHILE_151(p, o, s) MSGPACK_PP_WHILE_151_C(MSGPACK_PP_BOOL(p##(152, s)), p, o, s) +# define MSGPACK_PP_WHILE_152(p, o, s) MSGPACK_PP_WHILE_152_C(MSGPACK_PP_BOOL(p##(153, s)), p, o, s) +# define MSGPACK_PP_WHILE_153(p, o, s) MSGPACK_PP_WHILE_153_C(MSGPACK_PP_BOOL(p##(154, s)), p, o, s) +# define MSGPACK_PP_WHILE_154(p, o, s) MSGPACK_PP_WHILE_154_C(MSGPACK_PP_BOOL(p##(155, s)), p, o, s) +# define MSGPACK_PP_WHILE_155(p, o, s) MSGPACK_PP_WHILE_155_C(MSGPACK_PP_BOOL(p##(156, s)), p, o, s) +# define MSGPACK_PP_WHILE_156(p, o, s) MSGPACK_PP_WHILE_156_C(MSGPACK_PP_BOOL(p##(157, s)), p, o, s) +# define MSGPACK_PP_WHILE_157(p, o, s) MSGPACK_PP_WHILE_157_C(MSGPACK_PP_BOOL(p##(158, s)), p, o, s) +# define MSGPACK_PP_WHILE_158(p, o, s) MSGPACK_PP_WHILE_158_C(MSGPACK_PP_BOOL(p##(159, s)), p, o, s) +# define MSGPACK_PP_WHILE_159(p, o, s) MSGPACK_PP_WHILE_159_C(MSGPACK_PP_BOOL(p##(160, s)), p, o, s) +# define MSGPACK_PP_WHILE_160(p, o, s) MSGPACK_PP_WHILE_160_C(MSGPACK_PP_BOOL(p##(161, s)), p, o, s) +# define MSGPACK_PP_WHILE_161(p, o, s) MSGPACK_PP_WHILE_161_C(MSGPACK_PP_BOOL(p##(162, s)), p, o, s) +# define MSGPACK_PP_WHILE_162(p, o, s) MSGPACK_PP_WHILE_162_C(MSGPACK_PP_BOOL(p##(163, s)), p, o, s) +# define MSGPACK_PP_WHILE_163(p, o, s) MSGPACK_PP_WHILE_163_C(MSGPACK_PP_BOOL(p##(164, s)), p, o, s) +# define MSGPACK_PP_WHILE_164(p, o, s) MSGPACK_PP_WHILE_164_C(MSGPACK_PP_BOOL(p##(165, s)), p, o, s) +# define MSGPACK_PP_WHILE_165(p, o, s) MSGPACK_PP_WHILE_165_C(MSGPACK_PP_BOOL(p##(166, s)), p, o, s) +# define MSGPACK_PP_WHILE_166(p, o, s) MSGPACK_PP_WHILE_166_C(MSGPACK_PP_BOOL(p##(167, s)), p, o, s) +# define MSGPACK_PP_WHILE_167(p, o, s) MSGPACK_PP_WHILE_167_C(MSGPACK_PP_BOOL(p##(168, s)), p, o, s) +# define MSGPACK_PP_WHILE_168(p, o, s) MSGPACK_PP_WHILE_168_C(MSGPACK_PP_BOOL(p##(169, s)), p, o, s) +# define MSGPACK_PP_WHILE_169(p, o, s) MSGPACK_PP_WHILE_169_C(MSGPACK_PP_BOOL(p##(170, s)), p, o, s) +# define MSGPACK_PP_WHILE_170(p, o, s) MSGPACK_PP_WHILE_170_C(MSGPACK_PP_BOOL(p##(171, s)), p, o, s) +# define MSGPACK_PP_WHILE_171(p, o, s) MSGPACK_PP_WHILE_171_C(MSGPACK_PP_BOOL(p##(172, s)), p, o, s) +# define MSGPACK_PP_WHILE_172(p, o, s) MSGPACK_PP_WHILE_172_C(MSGPACK_PP_BOOL(p##(173, s)), p, o, s) +# define MSGPACK_PP_WHILE_173(p, o, s) MSGPACK_PP_WHILE_173_C(MSGPACK_PP_BOOL(p##(174, s)), p, o, s) +# define MSGPACK_PP_WHILE_174(p, o, s) MSGPACK_PP_WHILE_174_C(MSGPACK_PP_BOOL(p##(175, s)), p, o, s) +# define MSGPACK_PP_WHILE_175(p, o, s) MSGPACK_PP_WHILE_175_C(MSGPACK_PP_BOOL(p##(176, s)), p, o, s) +# define MSGPACK_PP_WHILE_176(p, o, s) MSGPACK_PP_WHILE_176_C(MSGPACK_PP_BOOL(p##(177, s)), p, o, s) +# define MSGPACK_PP_WHILE_177(p, o, s) MSGPACK_PP_WHILE_177_C(MSGPACK_PP_BOOL(p##(178, s)), p, o, s) +# define MSGPACK_PP_WHILE_178(p, o, s) MSGPACK_PP_WHILE_178_C(MSGPACK_PP_BOOL(p##(179, s)), p, o, s) +# define MSGPACK_PP_WHILE_179(p, o, s) MSGPACK_PP_WHILE_179_C(MSGPACK_PP_BOOL(p##(180, s)), p, o, s) +# define MSGPACK_PP_WHILE_180(p, o, s) MSGPACK_PP_WHILE_180_C(MSGPACK_PP_BOOL(p##(181, s)), p, o, s) +# define MSGPACK_PP_WHILE_181(p, o, s) MSGPACK_PP_WHILE_181_C(MSGPACK_PP_BOOL(p##(182, s)), p, o, s) +# define MSGPACK_PP_WHILE_182(p, o, s) MSGPACK_PP_WHILE_182_C(MSGPACK_PP_BOOL(p##(183, s)), p, o, s) +# define MSGPACK_PP_WHILE_183(p, o, s) MSGPACK_PP_WHILE_183_C(MSGPACK_PP_BOOL(p##(184, s)), p, o, s) +# define MSGPACK_PP_WHILE_184(p, o, s) MSGPACK_PP_WHILE_184_C(MSGPACK_PP_BOOL(p##(185, s)), p, o, s) +# define MSGPACK_PP_WHILE_185(p, o, s) MSGPACK_PP_WHILE_185_C(MSGPACK_PP_BOOL(p##(186, s)), p, o, s) +# define MSGPACK_PP_WHILE_186(p, o, s) MSGPACK_PP_WHILE_186_C(MSGPACK_PP_BOOL(p##(187, s)), p, o, s) +# define MSGPACK_PP_WHILE_187(p, o, s) MSGPACK_PP_WHILE_187_C(MSGPACK_PP_BOOL(p##(188, s)), p, o, s) +# define MSGPACK_PP_WHILE_188(p, o, s) MSGPACK_PP_WHILE_188_C(MSGPACK_PP_BOOL(p##(189, s)), p, o, s) +# define MSGPACK_PP_WHILE_189(p, o, s) MSGPACK_PP_WHILE_189_C(MSGPACK_PP_BOOL(p##(190, s)), p, o, s) +# define MSGPACK_PP_WHILE_190(p, o, s) MSGPACK_PP_WHILE_190_C(MSGPACK_PP_BOOL(p##(191, s)), p, o, s) +# define MSGPACK_PP_WHILE_191(p, o, s) MSGPACK_PP_WHILE_191_C(MSGPACK_PP_BOOL(p##(192, s)), p, o, s) +# define MSGPACK_PP_WHILE_192(p, o, s) MSGPACK_PP_WHILE_192_C(MSGPACK_PP_BOOL(p##(193, s)), p, o, s) +# define MSGPACK_PP_WHILE_193(p, o, s) MSGPACK_PP_WHILE_193_C(MSGPACK_PP_BOOL(p##(194, s)), p, o, s) +# define MSGPACK_PP_WHILE_194(p, o, s) MSGPACK_PP_WHILE_194_C(MSGPACK_PP_BOOL(p##(195, s)), p, o, s) +# define MSGPACK_PP_WHILE_195(p, o, s) MSGPACK_PP_WHILE_195_C(MSGPACK_PP_BOOL(p##(196, s)), p, o, s) +# define MSGPACK_PP_WHILE_196(p, o, s) MSGPACK_PP_WHILE_196_C(MSGPACK_PP_BOOL(p##(197, s)), p, o, s) +# define MSGPACK_PP_WHILE_197(p, o, s) MSGPACK_PP_WHILE_197_C(MSGPACK_PP_BOOL(p##(198, s)), p, o, s) +# define MSGPACK_PP_WHILE_198(p, o, s) MSGPACK_PP_WHILE_198_C(MSGPACK_PP_BOOL(p##(199, s)), p, o, s) +# define MSGPACK_PP_WHILE_199(p, o, s) MSGPACK_PP_WHILE_199_C(MSGPACK_PP_BOOL(p##(200, s)), p, o, s) +# define MSGPACK_PP_WHILE_200(p, o, s) MSGPACK_PP_WHILE_200_C(MSGPACK_PP_BOOL(p##(201, s)), p, o, s) +# define MSGPACK_PP_WHILE_201(p, o, s) MSGPACK_PP_WHILE_201_C(MSGPACK_PP_BOOL(p##(202, s)), p, o, s) +# define MSGPACK_PP_WHILE_202(p, o, s) MSGPACK_PP_WHILE_202_C(MSGPACK_PP_BOOL(p##(203, s)), p, o, s) +# define MSGPACK_PP_WHILE_203(p, o, s) MSGPACK_PP_WHILE_203_C(MSGPACK_PP_BOOL(p##(204, s)), p, o, s) +# define MSGPACK_PP_WHILE_204(p, o, s) MSGPACK_PP_WHILE_204_C(MSGPACK_PP_BOOL(p##(205, s)), p, o, s) +# define MSGPACK_PP_WHILE_205(p, o, s) MSGPACK_PP_WHILE_205_C(MSGPACK_PP_BOOL(p##(206, s)), p, o, s) +# define MSGPACK_PP_WHILE_206(p, o, s) MSGPACK_PP_WHILE_206_C(MSGPACK_PP_BOOL(p##(207, s)), p, o, s) +# define MSGPACK_PP_WHILE_207(p, o, s) MSGPACK_PP_WHILE_207_C(MSGPACK_PP_BOOL(p##(208, s)), p, o, s) +# define MSGPACK_PP_WHILE_208(p, o, s) MSGPACK_PP_WHILE_208_C(MSGPACK_PP_BOOL(p##(209, s)), p, o, s) +# define MSGPACK_PP_WHILE_209(p, o, s) MSGPACK_PP_WHILE_209_C(MSGPACK_PP_BOOL(p##(210, s)), p, o, s) +# define MSGPACK_PP_WHILE_210(p, o, s) MSGPACK_PP_WHILE_210_C(MSGPACK_PP_BOOL(p##(211, s)), p, o, s) +# define MSGPACK_PP_WHILE_211(p, o, s) MSGPACK_PP_WHILE_211_C(MSGPACK_PP_BOOL(p##(212, s)), p, o, s) +# define MSGPACK_PP_WHILE_212(p, o, s) MSGPACK_PP_WHILE_212_C(MSGPACK_PP_BOOL(p##(213, s)), p, o, s) +# define MSGPACK_PP_WHILE_213(p, o, s) MSGPACK_PP_WHILE_213_C(MSGPACK_PP_BOOL(p##(214, s)), p, o, s) +# define MSGPACK_PP_WHILE_214(p, o, s) MSGPACK_PP_WHILE_214_C(MSGPACK_PP_BOOL(p##(215, s)), p, o, s) +# define MSGPACK_PP_WHILE_215(p, o, s) MSGPACK_PP_WHILE_215_C(MSGPACK_PP_BOOL(p##(216, s)), p, o, s) +# define MSGPACK_PP_WHILE_216(p, o, s) MSGPACK_PP_WHILE_216_C(MSGPACK_PP_BOOL(p##(217, s)), p, o, s) +# define MSGPACK_PP_WHILE_217(p, o, s) MSGPACK_PP_WHILE_217_C(MSGPACK_PP_BOOL(p##(218, s)), p, o, s) +# define MSGPACK_PP_WHILE_218(p, o, s) MSGPACK_PP_WHILE_218_C(MSGPACK_PP_BOOL(p##(219, s)), p, o, s) +# define MSGPACK_PP_WHILE_219(p, o, s) MSGPACK_PP_WHILE_219_C(MSGPACK_PP_BOOL(p##(220, s)), p, o, s) +# define MSGPACK_PP_WHILE_220(p, o, s) MSGPACK_PP_WHILE_220_C(MSGPACK_PP_BOOL(p##(221, s)), p, o, s) +# define MSGPACK_PP_WHILE_221(p, o, s) MSGPACK_PP_WHILE_221_C(MSGPACK_PP_BOOL(p##(222, s)), p, o, s) +# define MSGPACK_PP_WHILE_222(p, o, s) MSGPACK_PP_WHILE_222_C(MSGPACK_PP_BOOL(p##(223, s)), p, o, s) +# define MSGPACK_PP_WHILE_223(p, o, s) MSGPACK_PP_WHILE_223_C(MSGPACK_PP_BOOL(p##(224, s)), p, o, s) +# define MSGPACK_PP_WHILE_224(p, o, s) MSGPACK_PP_WHILE_224_C(MSGPACK_PP_BOOL(p##(225, s)), p, o, s) +# define MSGPACK_PP_WHILE_225(p, o, s) MSGPACK_PP_WHILE_225_C(MSGPACK_PP_BOOL(p##(226, s)), p, o, s) +# define MSGPACK_PP_WHILE_226(p, o, s) MSGPACK_PP_WHILE_226_C(MSGPACK_PP_BOOL(p##(227, s)), p, o, s) +# define MSGPACK_PP_WHILE_227(p, o, s) MSGPACK_PP_WHILE_227_C(MSGPACK_PP_BOOL(p##(228, s)), p, o, s) +# define MSGPACK_PP_WHILE_228(p, o, s) MSGPACK_PP_WHILE_228_C(MSGPACK_PP_BOOL(p##(229, s)), p, o, s) +# define MSGPACK_PP_WHILE_229(p, o, s) MSGPACK_PP_WHILE_229_C(MSGPACK_PP_BOOL(p##(230, s)), p, o, s) +# define MSGPACK_PP_WHILE_230(p, o, s) MSGPACK_PP_WHILE_230_C(MSGPACK_PP_BOOL(p##(231, s)), p, o, s) +# define MSGPACK_PP_WHILE_231(p, o, s) MSGPACK_PP_WHILE_231_C(MSGPACK_PP_BOOL(p##(232, s)), p, o, s) +# define MSGPACK_PP_WHILE_232(p, o, s) MSGPACK_PP_WHILE_232_C(MSGPACK_PP_BOOL(p##(233, s)), p, o, s) +# define MSGPACK_PP_WHILE_233(p, o, s) MSGPACK_PP_WHILE_233_C(MSGPACK_PP_BOOL(p##(234, s)), p, o, s) +# define MSGPACK_PP_WHILE_234(p, o, s) MSGPACK_PP_WHILE_234_C(MSGPACK_PP_BOOL(p##(235, s)), p, o, s) +# define MSGPACK_PP_WHILE_235(p, o, s) MSGPACK_PP_WHILE_235_C(MSGPACK_PP_BOOL(p##(236, s)), p, o, s) +# define MSGPACK_PP_WHILE_236(p, o, s) MSGPACK_PP_WHILE_236_C(MSGPACK_PP_BOOL(p##(237, s)), p, o, s) +# define MSGPACK_PP_WHILE_237(p, o, s) MSGPACK_PP_WHILE_237_C(MSGPACK_PP_BOOL(p##(238, s)), p, o, s) +# define MSGPACK_PP_WHILE_238(p, o, s) MSGPACK_PP_WHILE_238_C(MSGPACK_PP_BOOL(p##(239, s)), p, o, s) +# define MSGPACK_PP_WHILE_239(p, o, s) MSGPACK_PP_WHILE_239_C(MSGPACK_PP_BOOL(p##(240, s)), p, o, s) +# define MSGPACK_PP_WHILE_240(p, o, s) MSGPACK_PP_WHILE_240_C(MSGPACK_PP_BOOL(p##(241, s)), p, o, s) +# define MSGPACK_PP_WHILE_241(p, o, s) MSGPACK_PP_WHILE_241_C(MSGPACK_PP_BOOL(p##(242, s)), p, o, s) +# define MSGPACK_PP_WHILE_242(p, o, s) MSGPACK_PP_WHILE_242_C(MSGPACK_PP_BOOL(p##(243, s)), p, o, s) +# define MSGPACK_PP_WHILE_243(p, o, s) MSGPACK_PP_WHILE_243_C(MSGPACK_PP_BOOL(p##(244, s)), p, o, s) +# define MSGPACK_PP_WHILE_244(p, o, s) MSGPACK_PP_WHILE_244_C(MSGPACK_PP_BOOL(p##(245, s)), p, o, s) +# define MSGPACK_PP_WHILE_245(p, o, s) MSGPACK_PP_WHILE_245_C(MSGPACK_PP_BOOL(p##(246, s)), p, o, s) +# define MSGPACK_PP_WHILE_246(p, o, s) MSGPACK_PP_WHILE_246_C(MSGPACK_PP_BOOL(p##(247, s)), p, o, s) +# define MSGPACK_PP_WHILE_247(p, o, s) MSGPACK_PP_WHILE_247_C(MSGPACK_PP_BOOL(p##(248, s)), p, o, s) +# define MSGPACK_PP_WHILE_248(p, o, s) MSGPACK_PP_WHILE_248_C(MSGPACK_PP_BOOL(p##(249, s)), p, o, s) +# define MSGPACK_PP_WHILE_249(p, o, s) MSGPACK_PP_WHILE_249_C(MSGPACK_PP_BOOL(p##(250, s)), p, o, s) +# define MSGPACK_PP_WHILE_250(p, o, s) MSGPACK_PP_WHILE_250_C(MSGPACK_PP_BOOL(p##(251, s)), p, o, s) +# define MSGPACK_PP_WHILE_251(p, o, s) MSGPACK_PP_WHILE_251_C(MSGPACK_PP_BOOL(p##(252, s)), p, o, s) +# define MSGPACK_PP_WHILE_252(p, o, s) MSGPACK_PP_WHILE_252_C(MSGPACK_PP_BOOL(p##(253, s)), p, o, s) +# define MSGPACK_PP_WHILE_253(p, o, s) MSGPACK_PP_WHILE_253_C(MSGPACK_PP_BOOL(p##(254, s)), p, o, s) +# define MSGPACK_PP_WHILE_254(p, o, s) MSGPACK_PP_WHILE_254_C(MSGPACK_PP_BOOL(p##(255, s)), p, o, s) +# define MSGPACK_PP_WHILE_255(p, o, s) MSGPACK_PP_WHILE_255_C(MSGPACK_PP_BOOL(p##(256, s)), p, o, s) +# define MSGPACK_PP_WHILE_256(p, o, s) MSGPACK_PP_WHILE_256_C(MSGPACK_PP_BOOL(p##(257, s)), p, o, s) +# +# define MSGPACK_PP_WHILE_1_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_2, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(2, s)) +# define MSGPACK_PP_WHILE_2_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_3, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(3, s)) +# define MSGPACK_PP_WHILE_3_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_4, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(4, s)) +# define MSGPACK_PP_WHILE_4_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_5, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(5, s)) +# define MSGPACK_PP_WHILE_5_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_6, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(6, s)) +# define MSGPACK_PP_WHILE_6_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_7, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(7, s)) +# define MSGPACK_PP_WHILE_7_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_8, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(8, s)) +# define MSGPACK_PP_WHILE_8_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_9, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(9, s)) +# define MSGPACK_PP_WHILE_9_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_10, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(10, s)) +# define MSGPACK_PP_WHILE_10_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_11, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(11, s)) +# define MSGPACK_PP_WHILE_11_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_12, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(12, s)) +# define MSGPACK_PP_WHILE_12_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_13, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(13, s)) +# define MSGPACK_PP_WHILE_13_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_14, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(14, s)) +# define MSGPACK_PP_WHILE_14_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_15, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(15, s)) +# define MSGPACK_PP_WHILE_15_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_16, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(16, s)) +# define MSGPACK_PP_WHILE_16_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_17, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(17, s)) +# define MSGPACK_PP_WHILE_17_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_18, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(18, s)) +# define MSGPACK_PP_WHILE_18_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_19, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(19, s)) +# define MSGPACK_PP_WHILE_19_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_20, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(20, s)) +# define MSGPACK_PP_WHILE_20_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_21, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(21, s)) +# define MSGPACK_PP_WHILE_21_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_22, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(22, s)) +# define MSGPACK_PP_WHILE_22_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_23, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(23, s)) +# define MSGPACK_PP_WHILE_23_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_24, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(24, s)) +# define MSGPACK_PP_WHILE_24_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_25, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(25, s)) +# define MSGPACK_PP_WHILE_25_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_26, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(26, s)) +# define MSGPACK_PP_WHILE_26_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_27, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(27, s)) +# define MSGPACK_PP_WHILE_27_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_28, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(28, s)) +# define MSGPACK_PP_WHILE_28_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_29, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(29, s)) +# define MSGPACK_PP_WHILE_29_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_30, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(30, s)) +# define MSGPACK_PP_WHILE_30_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_31, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(31, s)) +# define MSGPACK_PP_WHILE_31_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_32, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(32, s)) +# define MSGPACK_PP_WHILE_32_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_33, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(33, s)) +# define MSGPACK_PP_WHILE_33_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_34, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(34, s)) +# define MSGPACK_PP_WHILE_34_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_35, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(35, s)) +# define MSGPACK_PP_WHILE_35_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_36, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(36, s)) +# define MSGPACK_PP_WHILE_36_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_37, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(37, s)) +# define MSGPACK_PP_WHILE_37_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_38, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(38, s)) +# define MSGPACK_PP_WHILE_38_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_39, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(39, s)) +# define MSGPACK_PP_WHILE_39_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_40, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(40, s)) +# define MSGPACK_PP_WHILE_40_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_41, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(41, s)) +# define MSGPACK_PP_WHILE_41_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_42, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(42, s)) +# define MSGPACK_PP_WHILE_42_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_43, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(43, s)) +# define MSGPACK_PP_WHILE_43_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_44, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(44, s)) +# define MSGPACK_PP_WHILE_44_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_45, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(45, s)) +# define MSGPACK_PP_WHILE_45_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_46, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(46, s)) +# define MSGPACK_PP_WHILE_46_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_47, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(47, s)) +# define MSGPACK_PP_WHILE_47_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_48, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(48, s)) +# define MSGPACK_PP_WHILE_48_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_49, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(49, s)) +# define MSGPACK_PP_WHILE_49_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_50, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(50, s)) +# define MSGPACK_PP_WHILE_50_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_51, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(51, s)) +# define MSGPACK_PP_WHILE_51_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_52, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(52, s)) +# define MSGPACK_PP_WHILE_52_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_53, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(53, s)) +# define MSGPACK_PP_WHILE_53_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_54, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(54, s)) +# define MSGPACK_PP_WHILE_54_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_55, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(55, s)) +# define MSGPACK_PP_WHILE_55_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_56, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(56, s)) +# define MSGPACK_PP_WHILE_56_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_57, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(57, s)) +# define MSGPACK_PP_WHILE_57_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_58, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(58, s)) +# define MSGPACK_PP_WHILE_58_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_59, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(59, s)) +# define MSGPACK_PP_WHILE_59_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_60, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(60, s)) +# define MSGPACK_PP_WHILE_60_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_61, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(61, s)) +# define MSGPACK_PP_WHILE_61_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_62, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(62, s)) +# define MSGPACK_PP_WHILE_62_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_63, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(63, s)) +# define MSGPACK_PP_WHILE_63_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_64, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(64, s)) +# define MSGPACK_PP_WHILE_64_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_65, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(65, s)) +# define MSGPACK_PP_WHILE_65_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_66, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(66, s)) +# define MSGPACK_PP_WHILE_66_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_67, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(67, s)) +# define MSGPACK_PP_WHILE_67_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_68, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(68, s)) +# define MSGPACK_PP_WHILE_68_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_69, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(69, s)) +# define MSGPACK_PP_WHILE_69_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_70, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(70, s)) +# define MSGPACK_PP_WHILE_70_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_71, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(71, s)) +# define MSGPACK_PP_WHILE_71_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_72, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(72, s)) +# define MSGPACK_PP_WHILE_72_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_73, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(73, s)) +# define MSGPACK_PP_WHILE_73_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_74, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(74, s)) +# define MSGPACK_PP_WHILE_74_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_75, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(75, s)) +# define MSGPACK_PP_WHILE_75_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_76, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(76, s)) +# define MSGPACK_PP_WHILE_76_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_77, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(77, s)) +# define MSGPACK_PP_WHILE_77_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_78, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(78, s)) +# define MSGPACK_PP_WHILE_78_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_79, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(79, s)) +# define MSGPACK_PP_WHILE_79_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_80, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(80, s)) +# define MSGPACK_PP_WHILE_80_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_81, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(81, s)) +# define MSGPACK_PP_WHILE_81_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_82, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(82, s)) +# define MSGPACK_PP_WHILE_82_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_83, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(83, s)) +# define MSGPACK_PP_WHILE_83_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_84, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(84, s)) +# define MSGPACK_PP_WHILE_84_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_85, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(85, s)) +# define MSGPACK_PP_WHILE_85_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_86, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(86, s)) +# define MSGPACK_PP_WHILE_86_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_87, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(87, s)) +# define MSGPACK_PP_WHILE_87_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_88, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(88, s)) +# define MSGPACK_PP_WHILE_88_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_89, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(89, s)) +# define MSGPACK_PP_WHILE_89_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_90, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(90, s)) +# define MSGPACK_PP_WHILE_90_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_91, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(91, s)) +# define MSGPACK_PP_WHILE_91_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_92, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(92, s)) +# define MSGPACK_PP_WHILE_92_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_93, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(93, s)) +# define MSGPACK_PP_WHILE_93_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_94, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(94, s)) +# define MSGPACK_PP_WHILE_94_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_95, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(95, s)) +# define MSGPACK_PP_WHILE_95_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_96, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(96, s)) +# define MSGPACK_PP_WHILE_96_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_97, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(97, s)) +# define MSGPACK_PP_WHILE_97_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_98, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(98, s)) +# define MSGPACK_PP_WHILE_98_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_99, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(99, s)) +# define MSGPACK_PP_WHILE_99_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_100, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(100, s)) +# define MSGPACK_PP_WHILE_100_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_101, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(101, s)) +# define MSGPACK_PP_WHILE_101_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_102, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(102, s)) +# define MSGPACK_PP_WHILE_102_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_103, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(103, s)) +# define MSGPACK_PP_WHILE_103_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_104, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(104, s)) +# define MSGPACK_PP_WHILE_104_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_105, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(105, s)) +# define MSGPACK_PP_WHILE_105_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_106, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(106, s)) +# define MSGPACK_PP_WHILE_106_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_107, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(107, s)) +# define MSGPACK_PP_WHILE_107_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_108, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(108, s)) +# define MSGPACK_PP_WHILE_108_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_109, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(109, s)) +# define MSGPACK_PP_WHILE_109_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_110, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(110, s)) +# define MSGPACK_PP_WHILE_110_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_111, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(111, s)) +# define MSGPACK_PP_WHILE_111_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_112, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(112, s)) +# define MSGPACK_PP_WHILE_112_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_113, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(113, s)) +# define MSGPACK_PP_WHILE_113_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_114, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(114, s)) +# define MSGPACK_PP_WHILE_114_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_115, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(115, s)) +# define MSGPACK_PP_WHILE_115_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_116, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(116, s)) +# define MSGPACK_PP_WHILE_116_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_117, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(117, s)) +# define MSGPACK_PP_WHILE_117_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_118, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(118, s)) +# define MSGPACK_PP_WHILE_118_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_119, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(119, s)) +# define MSGPACK_PP_WHILE_119_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_120, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(120, s)) +# define MSGPACK_PP_WHILE_120_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_121, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(121, s)) +# define MSGPACK_PP_WHILE_121_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_122, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(122, s)) +# define MSGPACK_PP_WHILE_122_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_123, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(123, s)) +# define MSGPACK_PP_WHILE_123_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_124, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(124, s)) +# define MSGPACK_PP_WHILE_124_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_125, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(125, s)) +# define MSGPACK_PP_WHILE_125_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_126, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(126, s)) +# define MSGPACK_PP_WHILE_126_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_127, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(127, s)) +# define MSGPACK_PP_WHILE_127_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_128, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(128, s)) +# define MSGPACK_PP_WHILE_128_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_129, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(129, s)) +# define MSGPACK_PP_WHILE_129_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_130, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(130, s)) +# define MSGPACK_PP_WHILE_130_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_131, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(131, s)) +# define MSGPACK_PP_WHILE_131_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_132, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(132, s)) +# define MSGPACK_PP_WHILE_132_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_133, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(133, s)) +# define MSGPACK_PP_WHILE_133_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_134, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(134, s)) +# define MSGPACK_PP_WHILE_134_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_135, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(135, s)) +# define MSGPACK_PP_WHILE_135_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_136, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(136, s)) +# define MSGPACK_PP_WHILE_136_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_137, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(137, s)) +# define MSGPACK_PP_WHILE_137_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_138, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(138, s)) +# define MSGPACK_PP_WHILE_138_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_139, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(139, s)) +# define MSGPACK_PP_WHILE_139_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_140, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(140, s)) +# define MSGPACK_PP_WHILE_140_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_141, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(141, s)) +# define MSGPACK_PP_WHILE_141_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_142, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(142, s)) +# define MSGPACK_PP_WHILE_142_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_143, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(143, s)) +# define MSGPACK_PP_WHILE_143_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_144, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(144, s)) +# define MSGPACK_PP_WHILE_144_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_145, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(145, s)) +# define MSGPACK_PP_WHILE_145_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_146, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(146, s)) +# define MSGPACK_PP_WHILE_146_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_147, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(147, s)) +# define MSGPACK_PP_WHILE_147_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_148, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(148, s)) +# define MSGPACK_PP_WHILE_148_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_149, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(149, s)) +# define MSGPACK_PP_WHILE_149_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_150, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(150, s)) +# define MSGPACK_PP_WHILE_150_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_151, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(151, s)) +# define MSGPACK_PP_WHILE_151_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_152, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(152, s)) +# define MSGPACK_PP_WHILE_152_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_153, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(153, s)) +# define MSGPACK_PP_WHILE_153_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_154, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(154, s)) +# define MSGPACK_PP_WHILE_154_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_155, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(155, s)) +# define MSGPACK_PP_WHILE_155_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_156, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(156, s)) +# define MSGPACK_PP_WHILE_156_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_157, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(157, s)) +# define MSGPACK_PP_WHILE_157_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_158, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(158, s)) +# define MSGPACK_PP_WHILE_158_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_159, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(159, s)) +# define MSGPACK_PP_WHILE_159_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_160, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(160, s)) +# define MSGPACK_PP_WHILE_160_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_161, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(161, s)) +# define MSGPACK_PP_WHILE_161_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_162, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(162, s)) +# define MSGPACK_PP_WHILE_162_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_163, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(163, s)) +# define MSGPACK_PP_WHILE_163_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_164, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(164, s)) +# define MSGPACK_PP_WHILE_164_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_165, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(165, s)) +# define MSGPACK_PP_WHILE_165_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_166, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(166, s)) +# define MSGPACK_PP_WHILE_166_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_167, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(167, s)) +# define MSGPACK_PP_WHILE_167_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_168, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(168, s)) +# define MSGPACK_PP_WHILE_168_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_169, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(169, s)) +# define MSGPACK_PP_WHILE_169_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_170, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(170, s)) +# define MSGPACK_PP_WHILE_170_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_171, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(171, s)) +# define MSGPACK_PP_WHILE_171_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_172, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(172, s)) +# define MSGPACK_PP_WHILE_172_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_173, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(173, s)) +# define MSGPACK_PP_WHILE_173_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_174, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(174, s)) +# define MSGPACK_PP_WHILE_174_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_175, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(175, s)) +# define MSGPACK_PP_WHILE_175_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_176, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(176, s)) +# define MSGPACK_PP_WHILE_176_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_177, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(177, s)) +# define MSGPACK_PP_WHILE_177_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_178, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(178, s)) +# define MSGPACK_PP_WHILE_178_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_179, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(179, s)) +# define MSGPACK_PP_WHILE_179_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_180, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(180, s)) +# define MSGPACK_PP_WHILE_180_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_181, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(181, s)) +# define MSGPACK_PP_WHILE_181_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_182, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(182, s)) +# define MSGPACK_PP_WHILE_182_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_183, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(183, s)) +# define MSGPACK_PP_WHILE_183_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_184, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(184, s)) +# define MSGPACK_PP_WHILE_184_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_185, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(185, s)) +# define MSGPACK_PP_WHILE_185_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_186, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(186, s)) +# define MSGPACK_PP_WHILE_186_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_187, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(187, s)) +# define MSGPACK_PP_WHILE_187_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_188, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(188, s)) +# define MSGPACK_PP_WHILE_188_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_189, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(189, s)) +# define MSGPACK_PP_WHILE_189_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_190, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(190, s)) +# define MSGPACK_PP_WHILE_190_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_191, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(191, s)) +# define MSGPACK_PP_WHILE_191_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_192, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(192, s)) +# define MSGPACK_PP_WHILE_192_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_193, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(193, s)) +# define MSGPACK_PP_WHILE_193_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_194, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(194, s)) +# define MSGPACK_PP_WHILE_194_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_195, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(195, s)) +# define MSGPACK_PP_WHILE_195_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_196, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(196, s)) +# define MSGPACK_PP_WHILE_196_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_197, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(197, s)) +# define MSGPACK_PP_WHILE_197_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_198, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(198, s)) +# define MSGPACK_PP_WHILE_198_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_199, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(199, s)) +# define MSGPACK_PP_WHILE_199_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_200, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(200, s)) +# define MSGPACK_PP_WHILE_200_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_201, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(201, s)) +# define MSGPACK_PP_WHILE_201_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_202, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(202, s)) +# define MSGPACK_PP_WHILE_202_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_203, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(203, s)) +# define MSGPACK_PP_WHILE_203_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_204, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(204, s)) +# define MSGPACK_PP_WHILE_204_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_205, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(205, s)) +# define MSGPACK_PP_WHILE_205_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_206, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(206, s)) +# define MSGPACK_PP_WHILE_206_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_207, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(207, s)) +# define MSGPACK_PP_WHILE_207_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_208, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(208, s)) +# define MSGPACK_PP_WHILE_208_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_209, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(209, s)) +# define MSGPACK_PP_WHILE_209_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_210, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(210, s)) +# define MSGPACK_PP_WHILE_210_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_211, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(211, s)) +# define MSGPACK_PP_WHILE_211_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_212, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(212, s)) +# define MSGPACK_PP_WHILE_212_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_213, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(213, s)) +# define MSGPACK_PP_WHILE_213_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_214, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(214, s)) +# define MSGPACK_PP_WHILE_214_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_215, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(215, s)) +# define MSGPACK_PP_WHILE_215_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_216, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(216, s)) +# define MSGPACK_PP_WHILE_216_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_217, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(217, s)) +# define MSGPACK_PP_WHILE_217_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_218, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(218, s)) +# define MSGPACK_PP_WHILE_218_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_219, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(219, s)) +# define MSGPACK_PP_WHILE_219_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_220, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(220, s)) +# define MSGPACK_PP_WHILE_220_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_221, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(221, s)) +# define MSGPACK_PP_WHILE_221_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_222, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(222, s)) +# define MSGPACK_PP_WHILE_222_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_223, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(223, s)) +# define MSGPACK_PP_WHILE_223_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_224, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(224, s)) +# define MSGPACK_PP_WHILE_224_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_225, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(225, s)) +# define MSGPACK_PP_WHILE_225_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_226, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(226, s)) +# define MSGPACK_PP_WHILE_226_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_227, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(227, s)) +# define MSGPACK_PP_WHILE_227_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_228, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(228, s)) +# define MSGPACK_PP_WHILE_228_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_229, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(229, s)) +# define MSGPACK_PP_WHILE_229_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_230, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(230, s)) +# define MSGPACK_PP_WHILE_230_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_231, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(231, s)) +# define MSGPACK_PP_WHILE_231_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_232, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(232, s)) +# define MSGPACK_PP_WHILE_232_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_233, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(233, s)) +# define MSGPACK_PP_WHILE_233_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_234, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(234, s)) +# define MSGPACK_PP_WHILE_234_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_235, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(235, s)) +# define MSGPACK_PP_WHILE_235_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_236, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(236, s)) +# define MSGPACK_PP_WHILE_236_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_237, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(237, s)) +# define MSGPACK_PP_WHILE_237_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_238, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(238, s)) +# define MSGPACK_PP_WHILE_238_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_239, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(239, s)) +# define MSGPACK_PP_WHILE_239_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_240, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(240, s)) +# define MSGPACK_PP_WHILE_240_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_241, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(241, s)) +# define MSGPACK_PP_WHILE_241_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_242, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(242, s)) +# define MSGPACK_PP_WHILE_242_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_243, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(243, s)) +# define MSGPACK_PP_WHILE_243_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_244, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(244, s)) +# define MSGPACK_PP_WHILE_244_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_245, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(245, s)) +# define MSGPACK_PP_WHILE_245_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_246, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(246, s)) +# define MSGPACK_PP_WHILE_246_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_247, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(247, s)) +# define MSGPACK_PP_WHILE_247_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_248, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(248, s)) +# define MSGPACK_PP_WHILE_248_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_249, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(249, s)) +# define MSGPACK_PP_WHILE_249_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_250, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(250, s)) +# define MSGPACK_PP_WHILE_250_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_251, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(251, s)) +# define MSGPACK_PP_WHILE_251_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_252, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(252, s)) +# define MSGPACK_PP_WHILE_252_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_253, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(253, s)) +# define MSGPACK_PP_WHILE_253_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_254, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(254, s)) +# define MSGPACK_PP_WHILE_254_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_255, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(255, s)) +# define MSGPACK_PP_WHILE_255_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_256, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(256, s)) +# define MSGPACK_PP_WHILE_256_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_257, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(257, s)) +# +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/control/detail/edg/while.hpp b/third_party/msgpack/include/msgpack/preprocessor/control/detail/edg/while.hpp new file mode 100644 index 000000000000..fc1f9584f59c --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/control/detail/edg/while.hpp @@ -0,0 +1,534 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP +# define MSGPACK_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP +# +# include +# include +# +# define MSGPACK_PP_WHILE_1(p, o, s) MSGPACK_PP_WHILE_1_I(p, o, s) +# define MSGPACK_PP_WHILE_2(p, o, s) MSGPACK_PP_WHILE_2_I(p, o, s) +# define MSGPACK_PP_WHILE_3(p, o, s) MSGPACK_PP_WHILE_3_I(p, o, s) +# define MSGPACK_PP_WHILE_4(p, o, s) MSGPACK_PP_WHILE_4_I(p, o, s) +# define MSGPACK_PP_WHILE_5(p, o, s) MSGPACK_PP_WHILE_5_I(p, o, s) +# define MSGPACK_PP_WHILE_6(p, o, s) MSGPACK_PP_WHILE_6_I(p, o, s) +# define MSGPACK_PP_WHILE_7(p, o, s) MSGPACK_PP_WHILE_7_I(p, o, s) +# define MSGPACK_PP_WHILE_8(p, o, s) MSGPACK_PP_WHILE_8_I(p, o, s) +# define MSGPACK_PP_WHILE_9(p, o, s) MSGPACK_PP_WHILE_9_I(p, o, s) +# define MSGPACK_PP_WHILE_10(p, o, s) MSGPACK_PP_WHILE_10_I(p, o, s) +# define MSGPACK_PP_WHILE_11(p, o, s) MSGPACK_PP_WHILE_11_I(p, o, s) +# define MSGPACK_PP_WHILE_12(p, o, s) MSGPACK_PP_WHILE_12_I(p, o, s) +# define MSGPACK_PP_WHILE_13(p, o, s) MSGPACK_PP_WHILE_13_I(p, o, s) +# define MSGPACK_PP_WHILE_14(p, o, s) MSGPACK_PP_WHILE_14_I(p, o, s) +# define MSGPACK_PP_WHILE_15(p, o, s) MSGPACK_PP_WHILE_15_I(p, o, s) +# define MSGPACK_PP_WHILE_16(p, o, s) MSGPACK_PP_WHILE_16_I(p, o, s) +# define MSGPACK_PP_WHILE_17(p, o, s) MSGPACK_PP_WHILE_17_I(p, o, s) +# define MSGPACK_PP_WHILE_18(p, o, s) MSGPACK_PP_WHILE_18_I(p, o, s) +# define MSGPACK_PP_WHILE_19(p, o, s) MSGPACK_PP_WHILE_19_I(p, o, s) +# define MSGPACK_PP_WHILE_20(p, o, s) MSGPACK_PP_WHILE_20_I(p, o, s) +# define MSGPACK_PP_WHILE_21(p, o, s) MSGPACK_PP_WHILE_21_I(p, o, s) +# define MSGPACK_PP_WHILE_22(p, o, s) MSGPACK_PP_WHILE_22_I(p, o, s) +# define MSGPACK_PP_WHILE_23(p, o, s) MSGPACK_PP_WHILE_23_I(p, o, s) +# define MSGPACK_PP_WHILE_24(p, o, s) MSGPACK_PP_WHILE_24_I(p, o, s) +# define MSGPACK_PP_WHILE_25(p, o, s) MSGPACK_PP_WHILE_25_I(p, o, s) +# define MSGPACK_PP_WHILE_26(p, o, s) MSGPACK_PP_WHILE_26_I(p, o, s) +# define MSGPACK_PP_WHILE_27(p, o, s) MSGPACK_PP_WHILE_27_I(p, o, s) +# define MSGPACK_PP_WHILE_28(p, o, s) MSGPACK_PP_WHILE_28_I(p, o, s) +# define MSGPACK_PP_WHILE_29(p, o, s) MSGPACK_PP_WHILE_29_I(p, o, s) +# define MSGPACK_PP_WHILE_30(p, o, s) MSGPACK_PP_WHILE_30_I(p, o, s) +# define MSGPACK_PP_WHILE_31(p, o, s) MSGPACK_PP_WHILE_31_I(p, o, s) +# define MSGPACK_PP_WHILE_32(p, o, s) MSGPACK_PP_WHILE_32_I(p, o, s) +# define MSGPACK_PP_WHILE_33(p, o, s) MSGPACK_PP_WHILE_33_I(p, o, s) +# define MSGPACK_PP_WHILE_34(p, o, s) MSGPACK_PP_WHILE_34_I(p, o, s) +# define MSGPACK_PP_WHILE_35(p, o, s) MSGPACK_PP_WHILE_35_I(p, o, s) +# define MSGPACK_PP_WHILE_36(p, o, s) MSGPACK_PP_WHILE_36_I(p, o, s) +# define MSGPACK_PP_WHILE_37(p, o, s) MSGPACK_PP_WHILE_37_I(p, o, s) +# define MSGPACK_PP_WHILE_38(p, o, s) MSGPACK_PP_WHILE_38_I(p, o, s) +# define MSGPACK_PP_WHILE_39(p, o, s) MSGPACK_PP_WHILE_39_I(p, o, s) +# define MSGPACK_PP_WHILE_40(p, o, s) MSGPACK_PP_WHILE_40_I(p, o, s) +# define MSGPACK_PP_WHILE_41(p, o, s) MSGPACK_PP_WHILE_41_I(p, o, s) +# define MSGPACK_PP_WHILE_42(p, o, s) MSGPACK_PP_WHILE_42_I(p, o, s) +# define MSGPACK_PP_WHILE_43(p, o, s) MSGPACK_PP_WHILE_43_I(p, o, s) +# define MSGPACK_PP_WHILE_44(p, o, s) MSGPACK_PP_WHILE_44_I(p, o, s) +# define MSGPACK_PP_WHILE_45(p, o, s) MSGPACK_PP_WHILE_45_I(p, o, s) +# define MSGPACK_PP_WHILE_46(p, o, s) MSGPACK_PP_WHILE_46_I(p, o, s) +# define MSGPACK_PP_WHILE_47(p, o, s) MSGPACK_PP_WHILE_47_I(p, o, s) +# define MSGPACK_PP_WHILE_48(p, o, s) MSGPACK_PP_WHILE_48_I(p, o, s) +# define MSGPACK_PP_WHILE_49(p, o, s) MSGPACK_PP_WHILE_49_I(p, o, s) +# define MSGPACK_PP_WHILE_50(p, o, s) MSGPACK_PP_WHILE_50_I(p, o, s) +# define MSGPACK_PP_WHILE_51(p, o, s) MSGPACK_PP_WHILE_51_I(p, o, s) +# define MSGPACK_PP_WHILE_52(p, o, s) MSGPACK_PP_WHILE_52_I(p, o, s) +# define MSGPACK_PP_WHILE_53(p, o, s) MSGPACK_PP_WHILE_53_I(p, o, s) +# define MSGPACK_PP_WHILE_54(p, o, s) MSGPACK_PP_WHILE_54_I(p, o, s) +# define MSGPACK_PP_WHILE_55(p, o, s) MSGPACK_PP_WHILE_55_I(p, o, s) +# define MSGPACK_PP_WHILE_56(p, o, s) MSGPACK_PP_WHILE_56_I(p, o, s) +# define MSGPACK_PP_WHILE_57(p, o, s) MSGPACK_PP_WHILE_57_I(p, o, s) +# define MSGPACK_PP_WHILE_58(p, o, s) MSGPACK_PP_WHILE_58_I(p, o, s) +# define MSGPACK_PP_WHILE_59(p, o, s) MSGPACK_PP_WHILE_59_I(p, o, s) +# define MSGPACK_PP_WHILE_60(p, o, s) MSGPACK_PP_WHILE_60_I(p, o, s) +# define MSGPACK_PP_WHILE_61(p, o, s) MSGPACK_PP_WHILE_61_I(p, o, s) +# define MSGPACK_PP_WHILE_62(p, o, s) MSGPACK_PP_WHILE_62_I(p, o, s) +# define MSGPACK_PP_WHILE_63(p, o, s) MSGPACK_PP_WHILE_63_I(p, o, s) +# define MSGPACK_PP_WHILE_64(p, o, s) MSGPACK_PP_WHILE_64_I(p, o, s) +# define MSGPACK_PP_WHILE_65(p, o, s) MSGPACK_PP_WHILE_65_I(p, o, s) +# define MSGPACK_PP_WHILE_66(p, o, s) MSGPACK_PP_WHILE_66_I(p, o, s) +# define MSGPACK_PP_WHILE_67(p, o, s) MSGPACK_PP_WHILE_67_I(p, o, s) +# define MSGPACK_PP_WHILE_68(p, o, s) MSGPACK_PP_WHILE_68_I(p, o, s) +# define MSGPACK_PP_WHILE_69(p, o, s) MSGPACK_PP_WHILE_69_I(p, o, s) +# define MSGPACK_PP_WHILE_70(p, o, s) MSGPACK_PP_WHILE_70_I(p, o, s) +# define MSGPACK_PP_WHILE_71(p, o, s) MSGPACK_PP_WHILE_71_I(p, o, s) +# define MSGPACK_PP_WHILE_72(p, o, s) MSGPACK_PP_WHILE_72_I(p, o, s) +# define MSGPACK_PP_WHILE_73(p, o, s) MSGPACK_PP_WHILE_73_I(p, o, s) +# define MSGPACK_PP_WHILE_74(p, o, s) MSGPACK_PP_WHILE_74_I(p, o, s) +# define MSGPACK_PP_WHILE_75(p, o, s) MSGPACK_PP_WHILE_75_I(p, o, s) +# define MSGPACK_PP_WHILE_76(p, o, s) MSGPACK_PP_WHILE_76_I(p, o, s) +# define MSGPACK_PP_WHILE_77(p, o, s) MSGPACK_PP_WHILE_77_I(p, o, s) +# define MSGPACK_PP_WHILE_78(p, o, s) MSGPACK_PP_WHILE_78_I(p, o, s) +# define MSGPACK_PP_WHILE_79(p, o, s) MSGPACK_PP_WHILE_79_I(p, o, s) +# define MSGPACK_PP_WHILE_80(p, o, s) MSGPACK_PP_WHILE_80_I(p, o, s) +# define MSGPACK_PP_WHILE_81(p, o, s) MSGPACK_PP_WHILE_81_I(p, o, s) +# define MSGPACK_PP_WHILE_82(p, o, s) MSGPACK_PP_WHILE_82_I(p, o, s) +# define MSGPACK_PP_WHILE_83(p, o, s) MSGPACK_PP_WHILE_83_I(p, o, s) +# define MSGPACK_PP_WHILE_84(p, o, s) MSGPACK_PP_WHILE_84_I(p, o, s) +# define MSGPACK_PP_WHILE_85(p, o, s) MSGPACK_PP_WHILE_85_I(p, o, s) +# define MSGPACK_PP_WHILE_86(p, o, s) MSGPACK_PP_WHILE_86_I(p, o, s) +# define MSGPACK_PP_WHILE_87(p, o, s) MSGPACK_PP_WHILE_87_I(p, o, s) +# define MSGPACK_PP_WHILE_88(p, o, s) MSGPACK_PP_WHILE_88_I(p, o, s) +# define MSGPACK_PP_WHILE_89(p, o, s) MSGPACK_PP_WHILE_89_I(p, o, s) +# define MSGPACK_PP_WHILE_90(p, o, s) MSGPACK_PP_WHILE_90_I(p, o, s) +# define MSGPACK_PP_WHILE_91(p, o, s) MSGPACK_PP_WHILE_91_I(p, o, s) +# define MSGPACK_PP_WHILE_92(p, o, s) MSGPACK_PP_WHILE_92_I(p, o, s) +# define MSGPACK_PP_WHILE_93(p, o, s) MSGPACK_PP_WHILE_93_I(p, o, s) +# define MSGPACK_PP_WHILE_94(p, o, s) MSGPACK_PP_WHILE_94_I(p, o, s) +# define MSGPACK_PP_WHILE_95(p, o, s) MSGPACK_PP_WHILE_95_I(p, o, s) +# define MSGPACK_PP_WHILE_96(p, o, s) MSGPACK_PP_WHILE_96_I(p, o, s) +# define MSGPACK_PP_WHILE_97(p, o, s) MSGPACK_PP_WHILE_97_I(p, o, s) +# define MSGPACK_PP_WHILE_98(p, o, s) MSGPACK_PP_WHILE_98_I(p, o, s) +# define MSGPACK_PP_WHILE_99(p, o, s) MSGPACK_PP_WHILE_99_I(p, o, s) +# define MSGPACK_PP_WHILE_100(p, o, s) MSGPACK_PP_WHILE_100_I(p, o, s) +# define MSGPACK_PP_WHILE_101(p, o, s) MSGPACK_PP_WHILE_101_I(p, o, s) +# define MSGPACK_PP_WHILE_102(p, o, s) MSGPACK_PP_WHILE_102_I(p, o, s) +# define MSGPACK_PP_WHILE_103(p, o, s) MSGPACK_PP_WHILE_103_I(p, o, s) +# define MSGPACK_PP_WHILE_104(p, o, s) MSGPACK_PP_WHILE_104_I(p, o, s) +# define MSGPACK_PP_WHILE_105(p, o, s) MSGPACK_PP_WHILE_105_I(p, o, s) +# define MSGPACK_PP_WHILE_106(p, o, s) MSGPACK_PP_WHILE_106_I(p, o, s) +# define MSGPACK_PP_WHILE_107(p, o, s) MSGPACK_PP_WHILE_107_I(p, o, s) +# define MSGPACK_PP_WHILE_108(p, o, s) MSGPACK_PP_WHILE_108_I(p, o, s) +# define MSGPACK_PP_WHILE_109(p, o, s) MSGPACK_PP_WHILE_109_I(p, o, s) +# define MSGPACK_PP_WHILE_110(p, o, s) MSGPACK_PP_WHILE_110_I(p, o, s) +# define MSGPACK_PP_WHILE_111(p, o, s) MSGPACK_PP_WHILE_111_I(p, o, s) +# define MSGPACK_PP_WHILE_112(p, o, s) MSGPACK_PP_WHILE_112_I(p, o, s) +# define MSGPACK_PP_WHILE_113(p, o, s) MSGPACK_PP_WHILE_113_I(p, o, s) +# define MSGPACK_PP_WHILE_114(p, o, s) MSGPACK_PP_WHILE_114_I(p, o, s) +# define MSGPACK_PP_WHILE_115(p, o, s) MSGPACK_PP_WHILE_115_I(p, o, s) +# define MSGPACK_PP_WHILE_116(p, o, s) MSGPACK_PP_WHILE_116_I(p, o, s) +# define MSGPACK_PP_WHILE_117(p, o, s) MSGPACK_PP_WHILE_117_I(p, o, s) +# define MSGPACK_PP_WHILE_118(p, o, s) MSGPACK_PP_WHILE_118_I(p, o, s) +# define MSGPACK_PP_WHILE_119(p, o, s) MSGPACK_PP_WHILE_119_I(p, o, s) +# define MSGPACK_PP_WHILE_120(p, o, s) MSGPACK_PP_WHILE_120_I(p, o, s) +# define MSGPACK_PP_WHILE_121(p, o, s) MSGPACK_PP_WHILE_121_I(p, o, s) +# define MSGPACK_PP_WHILE_122(p, o, s) MSGPACK_PP_WHILE_122_I(p, o, s) +# define MSGPACK_PP_WHILE_123(p, o, s) MSGPACK_PP_WHILE_123_I(p, o, s) +# define MSGPACK_PP_WHILE_124(p, o, s) MSGPACK_PP_WHILE_124_I(p, o, s) +# define MSGPACK_PP_WHILE_125(p, o, s) MSGPACK_PP_WHILE_125_I(p, o, s) +# define MSGPACK_PP_WHILE_126(p, o, s) MSGPACK_PP_WHILE_126_I(p, o, s) +# define MSGPACK_PP_WHILE_127(p, o, s) MSGPACK_PP_WHILE_127_I(p, o, s) +# define MSGPACK_PP_WHILE_128(p, o, s) MSGPACK_PP_WHILE_128_I(p, o, s) +# define MSGPACK_PP_WHILE_129(p, o, s) MSGPACK_PP_WHILE_129_I(p, o, s) +# define MSGPACK_PP_WHILE_130(p, o, s) MSGPACK_PP_WHILE_130_I(p, o, s) +# define MSGPACK_PP_WHILE_131(p, o, s) MSGPACK_PP_WHILE_131_I(p, o, s) +# define MSGPACK_PP_WHILE_132(p, o, s) MSGPACK_PP_WHILE_132_I(p, o, s) +# define MSGPACK_PP_WHILE_133(p, o, s) MSGPACK_PP_WHILE_133_I(p, o, s) +# define MSGPACK_PP_WHILE_134(p, o, s) MSGPACK_PP_WHILE_134_I(p, o, s) +# define MSGPACK_PP_WHILE_135(p, o, s) MSGPACK_PP_WHILE_135_I(p, o, s) +# define MSGPACK_PP_WHILE_136(p, o, s) MSGPACK_PP_WHILE_136_I(p, o, s) +# define MSGPACK_PP_WHILE_137(p, o, s) MSGPACK_PP_WHILE_137_I(p, o, s) +# define MSGPACK_PP_WHILE_138(p, o, s) MSGPACK_PP_WHILE_138_I(p, o, s) +# define MSGPACK_PP_WHILE_139(p, o, s) MSGPACK_PP_WHILE_139_I(p, o, s) +# define MSGPACK_PP_WHILE_140(p, o, s) MSGPACK_PP_WHILE_140_I(p, o, s) +# define MSGPACK_PP_WHILE_141(p, o, s) MSGPACK_PP_WHILE_141_I(p, o, s) +# define MSGPACK_PP_WHILE_142(p, o, s) MSGPACK_PP_WHILE_142_I(p, o, s) +# define MSGPACK_PP_WHILE_143(p, o, s) MSGPACK_PP_WHILE_143_I(p, o, s) +# define MSGPACK_PP_WHILE_144(p, o, s) MSGPACK_PP_WHILE_144_I(p, o, s) +# define MSGPACK_PP_WHILE_145(p, o, s) MSGPACK_PP_WHILE_145_I(p, o, s) +# define MSGPACK_PP_WHILE_146(p, o, s) MSGPACK_PP_WHILE_146_I(p, o, s) +# define MSGPACK_PP_WHILE_147(p, o, s) MSGPACK_PP_WHILE_147_I(p, o, s) +# define MSGPACK_PP_WHILE_148(p, o, s) MSGPACK_PP_WHILE_148_I(p, o, s) +# define MSGPACK_PP_WHILE_149(p, o, s) MSGPACK_PP_WHILE_149_I(p, o, s) +# define MSGPACK_PP_WHILE_150(p, o, s) MSGPACK_PP_WHILE_150_I(p, o, s) +# define MSGPACK_PP_WHILE_151(p, o, s) MSGPACK_PP_WHILE_151_I(p, o, s) +# define MSGPACK_PP_WHILE_152(p, o, s) MSGPACK_PP_WHILE_152_I(p, o, s) +# define MSGPACK_PP_WHILE_153(p, o, s) MSGPACK_PP_WHILE_153_I(p, o, s) +# define MSGPACK_PP_WHILE_154(p, o, s) MSGPACK_PP_WHILE_154_I(p, o, s) +# define MSGPACK_PP_WHILE_155(p, o, s) MSGPACK_PP_WHILE_155_I(p, o, s) +# define MSGPACK_PP_WHILE_156(p, o, s) MSGPACK_PP_WHILE_156_I(p, o, s) +# define MSGPACK_PP_WHILE_157(p, o, s) MSGPACK_PP_WHILE_157_I(p, o, s) +# define MSGPACK_PP_WHILE_158(p, o, s) MSGPACK_PP_WHILE_158_I(p, o, s) +# define MSGPACK_PP_WHILE_159(p, o, s) MSGPACK_PP_WHILE_159_I(p, o, s) +# define MSGPACK_PP_WHILE_160(p, o, s) MSGPACK_PP_WHILE_160_I(p, o, s) +# define MSGPACK_PP_WHILE_161(p, o, s) MSGPACK_PP_WHILE_161_I(p, o, s) +# define MSGPACK_PP_WHILE_162(p, o, s) MSGPACK_PP_WHILE_162_I(p, o, s) +# define MSGPACK_PP_WHILE_163(p, o, s) MSGPACK_PP_WHILE_163_I(p, o, s) +# define MSGPACK_PP_WHILE_164(p, o, s) MSGPACK_PP_WHILE_164_I(p, o, s) +# define MSGPACK_PP_WHILE_165(p, o, s) MSGPACK_PP_WHILE_165_I(p, o, s) +# define MSGPACK_PP_WHILE_166(p, o, s) MSGPACK_PP_WHILE_166_I(p, o, s) +# define MSGPACK_PP_WHILE_167(p, o, s) MSGPACK_PP_WHILE_167_I(p, o, s) +# define MSGPACK_PP_WHILE_168(p, o, s) MSGPACK_PP_WHILE_168_I(p, o, s) +# define MSGPACK_PP_WHILE_169(p, o, s) MSGPACK_PP_WHILE_169_I(p, o, s) +# define MSGPACK_PP_WHILE_170(p, o, s) MSGPACK_PP_WHILE_170_I(p, o, s) +# define MSGPACK_PP_WHILE_171(p, o, s) MSGPACK_PP_WHILE_171_I(p, o, s) +# define MSGPACK_PP_WHILE_172(p, o, s) MSGPACK_PP_WHILE_172_I(p, o, s) +# define MSGPACK_PP_WHILE_173(p, o, s) MSGPACK_PP_WHILE_173_I(p, o, s) +# define MSGPACK_PP_WHILE_174(p, o, s) MSGPACK_PP_WHILE_174_I(p, o, s) +# define MSGPACK_PP_WHILE_175(p, o, s) MSGPACK_PP_WHILE_175_I(p, o, s) +# define MSGPACK_PP_WHILE_176(p, o, s) MSGPACK_PP_WHILE_176_I(p, o, s) +# define MSGPACK_PP_WHILE_177(p, o, s) MSGPACK_PP_WHILE_177_I(p, o, s) +# define MSGPACK_PP_WHILE_178(p, o, s) MSGPACK_PP_WHILE_178_I(p, o, s) +# define MSGPACK_PP_WHILE_179(p, o, s) MSGPACK_PP_WHILE_179_I(p, o, s) +# define MSGPACK_PP_WHILE_180(p, o, s) MSGPACK_PP_WHILE_180_I(p, o, s) +# define MSGPACK_PP_WHILE_181(p, o, s) MSGPACK_PP_WHILE_181_I(p, o, s) +# define MSGPACK_PP_WHILE_182(p, o, s) MSGPACK_PP_WHILE_182_I(p, o, s) +# define MSGPACK_PP_WHILE_183(p, o, s) MSGPACK_PP_WHILE_183_I(p, o, s) +# define MSGPACK_PP_WHILE_184(p, o, s) MSGPACK_PP_WHILE_184_I(p, o, s) +# define MSGPACK_PP_WHILE_185(p, o, s) MSGPACK_PP_WHILE_185_I(p, o, s) +# define MSGPACK_PP_WHILE_186(p, o, s) MSGPACK_PP_WHILE_186_I(p, o, s) +# define MSGPACK_PP_WHILE_187(p, o, s) MSGPACK_PP_WHILE_187_I(p, o, s) +# define MSGPACK_PP_WHILE_188(p, o, s) MSGPACK_PP_WHILE_188_I(p, o, s) +# define MSGPACK_PP_WHILE_189(p, o, s) MSGPACK_PP_WHILE_189_I(p, o, s) +# define MSGPACK_PP_WHILE_190(p, o, s) MSGPACK_PP_WHILE_190_I(p, o, s) +# define MSGPACK_PP_WHILE_191(p, o, s) MSGPACK_PP_WHILE_191_I(p, o, s) +# define MSGPACK_PP_WHILE_192(p, o, s) MSGPACK_PP_WHILE_192_I(p, o, s) +# define MSGPACK_PP_WHILE_193(p, o, s) MSGPACK_PP_WHILE_193_I(p, o, s) +# define MSGPACK_PP_WHILE_194(p, o, s) MSGPACK_PP_WHILE_194_I(p, o, s) +# define MSGPACK_PP_WHILE_195(p, o, s) MSGPACK_PP_WHILE_195_I(p, o, s) +# define MSGPACK_PP_WHILE_196(p, o, s) MSGPACK_PP_WHILE_196_I(p, o, s) +# define MSGPACK_PP_WHILE_197(p, o, s) MSGPACK_PP_WHILE_197_I(p, o, s) +# define MSGPACK_PP_WHILE_198(p, o, s) MSGPACK_PP_WHILE_198_I(p, o, s) +# define MSGPACK_PP_WHILE_199(p, o, s) MSGPACK_PP_WHILE_199_I(p, o, s) +# define MSGPACK_PP_WHILE_200(p, o, s) MSGPACK_PP_WHILE_200_I(p, o, s) +# define MSGPACK_PP_WHILE_201(p, o, s) MSGPACK_PP_WHILE_201_I(p, o, s) +# define MSGPACK_PP_WHILE_202(p, o, s) MSGPACK_PP_WHILE_202_I(p, o, s) +# define MSGPACK_PP_WHILE_203(p, o, s) MSGPACK_PP_WHILE_203_I(p, o, s) +# define MSGPACK_PP_WHILE_204(p, o, s) MSGPACK_PP_WHILE_204_I(p, o, s) +# define MSGPACK_PP_WHILE_205(p, o, s) MSGPACK_PP_WHILE_205_I(p, o, s) +# define MSGPACK_PP_WHILE_206(p, o, s) MSGPACK_PP_WHILE_206_I(p, o, s) +# define MSGPACK_PP_WHILE_207(p, o, s) MSGPACK_PP_WHILE_207_I(p, o, s) +# define MSGPACK_PP_WHILE_208(p, o, s) MSGPACK_PP_WHILE_208_I(p, o, s) +# define MSGPACK_PP_WHILE_209(p, o, s) MSGPACK_PP_WHILE_209_I(p, o, s) +# define MSGPACK_PP_WHILE_210(p, o, s) MSGPACK_PP_WHILE_210_I(p, o, s) +# define MSGPACK_PP_WHILE_211(p, o, s) MSGPACK_PP_WHILE_211_I(p, o, s) +# define MSGPACK_PP_WHILE_212(p, o, s) MSGPACK_PP_WHILE_212_I(p, o, s) +# define MSGPACK_PP_WHILE_213(p, o, s) MSGPACK_PP_WHILE_213_I(p, o, s) +# define MSGPACK_PP_WHILE_214(p, o, s) MSGPACK_PP_WHILE_214_I(p, o, s) +# define MSGPACK_PP_WHILE_215(p, o, s) MSGPACK_PP_WHILE_215_I(p, o, s) +# define MSGPACK_PP_WHILE_216(p, o, s) MSGPACK_PP_WHILE_216_I(p, o, s) +# define MSGPACK_PP_WHILE_217(p, o, s) MSGPACK_PP_WHILE_217_I(p, o, s) +# define MSGPACK_PP_WHILE_218(p, o, s) MSGPACK_PP_WHILE_218_I(p, o, s) +# define MSGPACK_PP_WHILE_219(p, o, s) MSGPACK_PP_WHILE_219_I(p, o, s) +# define MSGPACK_PP_WHILE_220(p, o, s) MSGPACK_PP_WHILE_220_I(p, o, s) +# define MSGPACK_PP_WHILE_221(p, o, s) MSGPACK_PP_WHILE_221_I(p, o, s) +# define MSGPACK_PP_WHILE_222(p, o, s) MSGPACK_PP_WHILE_222_I(p, o, s) +# define MSGPACK_PP_WHILE_223(p, o, s) MSGPACK_PP_WHILE_223_I(p, o, s) +# define MSGPACK_PP_WHILE_224(p, o, s) MSGPACK_PP_WHILE_224_I(p, o, s) +# define MSGPACK_PP_WHILE_225(p, o, s) MSGPACK_PP_WHILE_225_I(p, o, s) +# define MSGPACK_PP_WHILE_226(p, o, s) MSGPACK_PP_WHILE_226_I(p, o, s) +# define MSGPACK_PP_WHILE_227(p, o, s) MSGPACK_PP_WHILE_227_I(p, o, s) +# define MSGPACK_PP_WHILE_228(p, o, s) MSGPACK_PP_WHILE_228_I(p, o, s) +# define MSGPACK_PP_WHILE_229(p, o, s) MSGPACK_PP_WHILE_229_I(p, o, s) +# define MSGPACK_PP_WHILE_230(p, o, s) MSGPACK_PP_WHILE_230_I(p, o, s) +# define MSGPACK_PP_WHILE_231(p, o, s) MSGPACK_PP_WHILE_231_I(p, o, s) +# define MSGPACK_PP_WHILE_232(p, o, s) MSGPACK_PP_WHILE_232_I(p, o, s) +# define MSGPACK_PP_WHILE_233(p, o, s) MSGPACK_PP_WHILE_233_I(p, o, s) +# define MSGPACK_PP_WHILE_234(p, o, s) MSGPACK_PP_WHILE_234_I(p, o, s) +# define MSGPACK_PP_WHILE_235(p, o, s) MSGPACK_PP_WHILE_235_I(p, o, s) +# define MSGPACK_PP_WHILE_236(p, o, s) MSGPACK_PP_WHILE_236_I(p, o, s) +# define MSGPACK_PP_WHILE_237(p, o, s) MSGPACK_PP_WHILE_237_I(p, o, s) +# define MSGPACK_PP_WHILE_238(p, o, s) MSGPACK_PP_WHILE_238_I(p, o, s) +# define MSGPACK_PP_WHILE_239(p, o, s) MSGPACK_PP_WHILE_239_I(p, o, s) +# define MSGPACK_PP_WHILE_240(p, o, s) MSGPACK_PP_WHILE_240_I(p, o, s) +# define MSGPACK_PP_WHILE_241(p, o, s) MSGPACK_PP_WHILE_241_I(p, o, s) +# define MSGPACK_PP_WHILE_242(p, o, s) MSGPACK_PP_WHILE_242_I(p, o, s) +# define MSGPACK_PP_WHILE_243(p, o, s) MSGPACK_PP_WHILE_243_I(p, o, s) +# define MSGPACK_PP_WHILE_244(p, o, s) MSGPACK_PP_WHILE_244_I(p, o, s) +# define MSGPACK_PP_WHILE_245(p, o, s) MSGPACK_PP_WHILE_245_I(p, o, s) +# define MSGPACK_PP_WHILE_246(p, o, s) MSGPACK_PP_WHILE_246_I(p, o, s) +# define MSGPACK_PP_WHILE_247(p, o, s) MSGPACK_PP_WHILE_247_I(p, o, s) +# define MSGPACK_PP_WHILE_248(p, o, s) MSGPACK_PP_WHILE_248_I(p, o, s) +# define MSGPACK_PP_WHILE_249(p, o, s) MSGPACK_PP_WHILE_249_I(p, o, s) +# define MSGPACK_PP_WHILE_250(p, o, s) MSGPACK_PP_WHILE_250_I(p, o, s) +# define MSGPACK_PP_WHILE_251(p, o, s) MSGPACK_PP_WHILE_251_I(p, o, s) +# define MSGPACK_PP_WHILE_252(p, o, s) MSGPACK_PP_WHILE_252_I(p, o, s) +# define MSGPACK_PP_WHILE_253(p, o, s) MSGPACK_PP_WHILE_253_I(p, o, s) +# define MSGPACK_PP_WHILE_254(p, o, s) MSGPACK_PP_WHILE_254_I(p, o, s) +# define MSGPACK_PP_WHILE_255(p, o, s) MSGPACK_PP_WHILE_255_I(p, o, s) +# define MSGPACK_PP_WHILE_256(p, o, s) MSGPACK_PP_WHILE_256_I(p, o, s) +# +# define MSGPACK_PP_WHILE_1_I(p, o, s) MSGPACK_PP_IF(p(2, s), MSGPACK_PP_WHILE_2, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(2, s)) +# define MSGPACK_PP_WHILE_2_I(p, o, s) MSGPACK_PP_IF(p(3, s), MSGPACK_PP_WHILE_3, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(3, s)) +# define MSGPACK_PP_WHILE_3_I(p, o, s) MSGPACK_PP_IF(p(4, s), MSGPACK_PP_WHILE_4, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(4, s)) +# define MSGPACK_PP_WHILE_4_I(p, o, s) MSGPACK_PP_IF(p(5, s), MSGPACK_PP_WHILE_5, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(5, s)) +# define MSGPACK_PP_WHILE_5_I(p, o, s) MSGPACK_PP_IF(p(6, s), MSGPACK_PP_WHILE_6, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(6, s)) +# define MSGPACK_PP_WHILE_6_I(p, o, s) MSGPACK_PP_IF(p(7, s), MSGPACK_PP_WHILE_7, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(7, s)) +# define MSGPACK_PP_WHILE_7_I(p, o, s) MSGPACK_PP_IF(p(8, s), MSGPACK_PP_WHILE_8, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(8, s)) +# define MSGPACK_PP_WHILE_8_I(p, o, s) MSGPACK_PP_IF(p(9, s), MSGPACK_PP_WHILE_9, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(9, s)) +# define MSGPACK_PP_WHILE_9_I(p, o, s) MSGPACK_PP_IF(p(10, s), MSGPACK_PP_WHILE_10, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(10, s)) +# define MSGPACK_PP_WHILE_10_I(p, o, s) MSGPACK_PP_IF(p(11, s), MSGPACK_PP_WHILE_11, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(11, s)) +# define MSGPACK_PP_WHILE_11_I(p, o, s) MSGPACK_PP_IF(p(12, s), MSGPACK_PP_WHILE_12, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(12, s)) +# define MSGPACK_PP_WHILE_12_I(p, o, s) MSGPACK_PP_IF(p(13, s), MSGPACK_PP_WHILE_13, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(13, s)) +# define MSGPACK_PP_WHILE_13_I(p, o, s) MSGPACK_PP_IF(p(14, s), MSGPACK_PP_WHILE_14, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(14, s)) +# define MSGPACK_PP_WHILE_14_I(p, o, s) MSGPACK_PP_IF(p(15, s), MSGPACK_PP_WHILE_15, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(15, s)) +# define MSGPACK_PP_WHILE_15_I(p, o, s) MSGPACK_PP_IF(p(16, s), MSGPACK_PP_WHILE_16, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(16, s)) +# define MSGPACK_PP_WHILE_16_I(p, o, s) MSGPACK_PP_IF(p(17, s), MSGPACK_PP_WHILE_17, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(17, s)) +# define MSGPACK_PP_WHILE_17_I(p, o, s) MSGPACK_PP_IF(p(18, s), MSGPACK_PP_WHILE_18, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(18, s)) +# define MSGPACK_PP_WHILE_18_I(p, o, s) MSGPACK_PP_IF(p(19, s), MSGPACK_PP_WHILE_19, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(19, s)) +# define MSGPACK_PP_WHILE_19_I(p, o, s) MSGPACK_PP_IF(p(20, s), MSGPACK_PP_WHILE_20, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(20, s)) +# define MSGPACK_PP_WHILE_20_I(p, o, s) MSGPACK_PP_IF(p(21, s), MSGPACK_PP_WHILE_21, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(21, s)) +# define MSGPACK_PP_WHILE_21_I(p, o, s) MSGPACK_PP_IF(p(22, s), MSGPACK_PP_WHILE_22, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(22, s)) +# define MSGPACK_PP_WHILE_22_I(p, o, s) MSGPACK_PP_IF(p(23, s), MSGPACK_PP_WHILE_23, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(23, s)) +# define MSGPACK_PP_WHILE_23_I(p, o, s) MSGPACK_PP_IF(p(24, s), MSGPACK_PP_WHILE_24, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(24, s)) +# define MSGPACK_PP_WHILE_24_I(p, o, s) MSGPACK_PP_IF(p(25, s), MSGPACK_PP_WHILE_25, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(25, s)) +# define MSGPACK_PP_WHILE_25_I(p, o, s) MSGPACK_PP_IF(p(26, s), MSGPACK_PP_WHILE_26, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(26, s)) +# define MSGPACK_PP_WHILE_26_I(p, o, s) MSGPACK_PP_IF(p(27, s), MSGPACK_PP_WHILE_27, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(27, s)) +# define MSGPACK_PP_WHILE_27_I(p, o, s) MSGPACK_PP_IF(p(28, s), MSGPACK_PP_WHILE_28, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(28, s)) +# define MSGPACK_PP_WHILE_28_I(p, o, s) MSGPACK_PP_IF(p(29, s), MSGPACK_PP_WHILE_29, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(29, s)) +# define MSGPACK_PP_WHILE_29_I(p, o, s) MSGPACK_PP_IF(p(30, s), MSGPACK_PP_WHILE_30, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(30, s)) +# define MSGPACK_PP_WHILE_30_I(p, o, s) MSGPACK_PP_IF(p(31, s), MSGPACK_PP_WHILE_31, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(31, s)) +# define MSGPACK_PP_WHILE_31_I(p, o, s) MSGPACK_PP_IF(p(32, s), MSGPACK_PP_WHILE_32, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(32, s)) +# define MSGPACK_PP_WHILE_32_I(p, o, s) MSGPACK_PP_IF(p(33, s), MSGPACK_PP_WHILE_33, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(33, s)) +# define MSGPACK_PP_WHILE_33_I(p, o, s) MSGPACK_PP_IF(p(34, s), MSGPACK_PP_WHILE_34, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(34, s)) +# define MSGPACK_PP_WHILE_34_I(p, o, s) MSGPACK_PP_IF(p(35, s), MSGPACK_PP_WHILE_35, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(35, s)) +# define MSGPACK_PP_WHILE_35_I(p, o, s) MSGPACK_PP_IF(p(36, s), MSGPACK_PP_WHILE_36, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(36, s)) +# define MSGPACK_PP_WHILE_36_I(p, o, s) MSGPACK_PP_IF(p(37, s), MSGPACK_PP_WHILE_37, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(37, s)) +# define MSGPACK_PP_WHILE_37_I(p, o, s) MSGPACK_PP_IF(p(38, s), MSGPACK_PP_WHILE_38, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(38, s)) +# define MSGPACK_PP_WHILE_38_I(p, o, s) MSGPACK_PP_IF(p(39, s), MSGPACK_PP_WHILE_39, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(39, s)) +# define MSGPACK_PP_WHILE_39_I(p, o, s) MSGPACK_PP_IF(p(40, s), MSGPACK_PP_WHILE_40, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(40, s)) +# define MSGPACK_PP_WHILE_40_I(p, o, s) MSGPACK_PP_IF(p(41, s), MSGPACK_PP_WHILE_41, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(41, s)) +# define MSGPACK_PP_WHILE_41_I(p, o, s) MSGPACK_PP_IF(p(42, s), MSGPACK_PP_WHILE_42, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(42, s)) +# define MSGPACK_PP_WHILE_42_I(p, o, s) MSGPACK_PP_IF(p(43, s), MSGPACK_PP_WHILE_43, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(43, s)) +# define MSGPACK_PP_WHILE_43_I(p, o, s) MSGPACK_PP_IF(p(44, s), MSGPACK_PP_WHILE_44, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(44, s)) +# define MSGPACK_PP_WHILE_44_I(p, o, s) MSGPACK_PP_IF(p(45, s), MSGPACK_PP_WHILE_45, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(45, s)) +# define MSGPACK_PP_WHILE_45_I(p, o, s) MSGPACK_PP_IF(p(46, s), MSGPACK_PP_WHILE_46, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(46, s)) +# define MSGPACK_PP_WHILE_46_I(p, o, s) MSGPACK_PP_IF(p(47, s), MSGPACK_PP_WHILE_47, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(47, s)) +# define MSGPACK_PP_WHILE_47_I(p, o, s) MSGPACK_PP_IF(p(48, s), MSGPACK_PP_WHILE_48, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(48, s)) +# define MSGPACK_PP_WHILE_48_I(p, o, s) MSGPACK_PP_IF(p(49, s), MSGPACK_PP_WHILE_49, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(49, s)) +# define MSGPACK_PP_WHILE_49_I(p, o, s) MSGPACK_PP_IF(p(50, s), MSGPACK_PP_WHILE_50, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(50, s)) +# define MSGPACK_PP_WHILE_50_I(p, o, s) MSGPACK_PP_IF(p(51, s), MSGPACK_PP_WHILE_51, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(51, s)) +# define MSGPACK_PP_WHILE_51_I(p, o, s) MSGPACK_PP_IF(p(52, s), MSGPACK_PP_WHILE_52, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(52, s)) +# define MSGPACK_PP_WHILE_52_I(p, o, s) MSGPACK_PP_IF(p(53, s), MSGPACK_PP_WHILE_53, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(53, s)) +# define MSGPACK_PP_WHILE_53_I(p, o, s) MSGPACK_PP_IF(p(54, s), MSGPACK_PP_WHILE_54, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(54, s)) +# define MSGPACK_PP_WHILE_54_I(p, o, s) MSGPACK_PP_IF(p(55, s), MSGPACK_PP_WHILE_55, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(55, s)) +# define MSGPACK_PP_WHILE_55_I(p, o, s) MSGPACK_PP_IF(p(56, s), MSGPACK_PP_WHILE_56, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(56, s)) +# define MSGPACK_PP_WHILE_56_I(p, o, s) MSGPACK_PP_IF(p(57, s), MSGPACK_PP_WHILE_57, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(57, s)) +# define MSGPACK_PP_WHILE_57_I(p, o, s) MSGPACK_PP_IF(p(58, s), MSGPACK_PP_WHILE_58, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(58, s)) +# define MSGPACK_PP_WHILE_58_I(p, o, s) MSGPACK_PP_IF(p(59, s), MSGPACK_PP_WHILE_59, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(59, s)) +# define MSGPACK_PP_WHILE_59_I(p, o, s) MSGPACK_PP_IF(p(60, s), MSGPACK_PP_WHILE_60, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(60, s)) +# define MSGPACK_PP_WHILE_60_I(p, o, s) MSGPACK_PP_IF(p(61, s), MSGPACK_PP_WHILE_61, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(61, s)) +# define MSGPACK_PP_WHILE_61_I(p, o, s) MSGPACK_PP_IF(p(62, s), MSGPACK_PP_WHILE_62, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(62, s)) +# define MSGPACK_PP_WHILE_62_I(p, o, s) MSGPACK_PP_IF(p(63, s), MSGPACK_PP_WHILE_63, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(63, s)) +# define MSGPACK_PP_WHILE_63_I(p, o, s) MSGPACK_PP_IF(p(64, s), MSGPACK_PP_WHILE_64, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(64, s)) +# define MSGPACK_PP_WHILE_64_I(p, o, s) MSGPACK_PP_IF(p(65, s), MSGPACK_PP_WHILE_65, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(65, s)) +# define MSGPACK_PP_WHILE_65_I(p, o, s) MSGPACK_PP_IF(p(66, s), MSGPACK_PP_WHILE_66, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(66, s)) +# define MSGPACK_PP_WHILE_66_I(p, o, s) MSGPACK_PP_IF(p(67, s), MSGPACK_PP_WHILE_67, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(67, s)) +# define MSGPACK_PP_WHILE_67_I(p, o, s) MSGPACK_PP_IF(p(68, s), MSGPACK_PP_WHILE_68, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(68, s)) +# define MSGPACK_PP_WHILE_68_I(p, o, s) MSGPACK_PP_IF(p(69, s), MSGPACK_PP_WHILE_69, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(69, s)) +# define MSGPACK_PP_WHILE_69_I(p, o, s) MSGPACK_PP_IF(p(70, s), MSGPACK_PP_WHILE_70, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(70, s)) +# define MSGPACK_PP_WHILE_70_I(p, o, s) MSGPACK_PP_IF(p(71, s), MSGPACK_PP_WHILE_71, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(71, s)) +# define MSGPACK_PP_WHILE_71_I(p, o, s) MSGPACK_PP_IF(p(72, s), MSGPACK_PP_WHILE_72, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(72, s)) +# define MSGPACK_PP_WHILE_72_I(p, o, s) MSGPACK_PP_IF(p(73, s), MSGPACK_PP_WHILE_73, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(73, s)) +# define MSGPACK_PP_WHILE_73_I(p, o, s) MSGPACK_PP_IF(p(74, s), MSGPACK_PP_WHILE_74, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(74, s)) +# define MSGPACK_PP_WHILE_74_I(p, o, s) MSGPACK_PP_IF(p(75, s), MSGPACK_PP_WHILE_75, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(75, s)) +# define MSGPACK_PP_WHILE_75_I(p, o, s) MSGPACK_PP_IF(p(76, s), MSGPACK_PP_WHILE_76, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(76, s)) +# define MSGPACK_PP_WHILE_76_I(p, o, s) MSGPACK_PP_IF(p(77, s), MSGPACK_PP_WHILE_77, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(77, s)) +# define MSGPACK_PP_WHILE_77_I(p, o, s) MSGPACK_PP_IF(p(78, s), MSGPACK_PP_WHILE_78, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(78, s)) +# define MSGPACK_PP_WHILE_78_I(p, o, s) MSGPACK_PP_IF(p(79, s), MSGPACK_PP_WHILE_79, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(79, s)) +# define MSGPACK_PP_WHILE_79_I(p, o, s) MSGPACK_PP_IF(p(80, s), MSGPACK_PP_WHILE_80, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(80, s)) +# define MSGPACK_PP_WHILE_80_I(p, o, s) MSGPACK_PP_IF(p(81, s), MSGPACK_PP_WHILE_81, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(81, s)) +# define MSGPACK_PP_WHILE_81_I(p, o, s) MSGPACK_PP_IF(p(82, s), MSGPACK_PP_WHILE_82, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(82, s)) +# define MSGPACK_PP_WHILE_82_I(p, o, s) MSGPACK_PP_IF(p(83, s), MSGPACK_PP_WHILE_83, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(83, s)) +# define MSGPACK_PP_WHILE_83_I(p, o, s) MSGPACK_PP_IF(p(84, s), MSGPACK_PP_WHILE_84, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(84, s)) +# define MSGPACK_PP_WHILE_84_I(p, o, s) MSGPACK_PP_IF(p(85, s), MSGPACK_PP_WHILE_85, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(85, s)) +# define MSGPACK_PP_WHILE_85_I(p, o, s) MSGPACK_PP_IF(p(86, s), MSGPACK_PP_WHILE_86, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(86, s)) +# define MSGPACK_PP_WHILE_86_I(p, o, s) MSGPACK_PP_IF(p(87, s), MSGPACK_PP_WHILE_87, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(87, s)) +# define MSGPACK_PP_WHILE_87_I(p, o, s) MSGPACK_PP_IF(p(88, s), MSGPACK_PP_WHILE_88, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(88, s)) +# define MSGPACK_PP_WHILE_88_I(p, o, s) MSGPACK_PP_IF(p(89, s), MSGPACK_PP_WHILE_89, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(89, s)) +# define MSGPACK_PP_WHILE_89_I(p, o, s) MSGPACK_PP_IF(p(90, s), MSGPACK_PP_WHILE_90, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(90, s)) +# define MSGPACK_PP_WHILE_90_I(p, o, s) MSGPACK_PP_IF(p(91, s), MSGPACK_PP_WHILE_91, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(91, s)) +# define MSGPACK_PP_WHILE_91_I(p, o, s) MSGPACK_PP_IF(p(92, s), MSGPACK_PP_WHILE_92, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(92, s)) +# define MSGPACK_PP_WHILE_92_I(p, o, s) MSGPACK_PP_IF(p(93, s), MSGPACK_PP_WHILE_93, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(93, s)) +# define MSGPACK_PP_WHILE_93_I(p, o, s) MSGPACK_PP_IF(p(94, s), MSGPACK_PP_WHILE_94, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(94, s)) +# define MSGPACK_PP_WHILE_94_I(p, o, s) MSGPACK_PP_IF(p(95, s), MSGPACK_PP_WHILE_95, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(95, s)) +# define MSGPACK_PP_WHILE_95_I(p, o, s) MSGPACK_PP_IF(p(96, s), MSGPACK_PP_WHILE_96, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(96, s)) +# define MSGPACK_PP_WHILE_96_I(p, o, s) MSGPACK_PP_IF(p(97, s), MSGPACK_PP_WHILE_97, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(97, s)) +# define MSGPACK_PP_WHILE_97_I(p, o, s) MSGPACK_PP_IF(p(98, s), MSGPACK_PP_WHILE_98, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(98, s)) +# define MSGPACK_PP_WHILE_98_I(p, o, s) MSGPACK_PP_IF(p(99, s), MSGPACK_PP_WHILE_99, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(99, s)) +# define MSGPACK_PP_WHILE_99_I(p, o, s) MSGPACK_PP_IF(p(100, s), MSGPACK_PP_WHILE_100, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(100, s)) +# define MSGPACK_PP_WHILE_100_I(p, o, s) MSGPACK_PP_IF(p(101, s), MSGPACK_PP_WHILE_101, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(101, s)) +# define MSGPACK_PP_WHILE_101_I(p, o, s) MSGPACK_PP_IF(p(102, s), MSGPACK_PP_WHILE_102, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(102, s)) +# define MSGPACK_PP_WHILE_102_I(p, o, s) MSGPACK_PP_IF(p(103, s), MSGPACK_PP_WHILE_103, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(103, s)) +# define MSGPACK_PP_WHILE_103_I(p, o, s) MSGPACK_PP_IF(p(104, s), MSGPACK_PP_WHILE_104, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(104, s)) +# define MSGPACK_PP_WHILE_104_I(p, o, s) MSGPACK_PP_IF(p(105, s), MSGPACK_PP_WHILE_105, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(105, s)) +# define MSGPACK_PP_WHILE_105_I(p, o, s) MSGPACK_PP_IF(p(106, s), MSGPACK_PP_WHILE_106, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(106, s)) +# define MSGPACK_PP_WHILE_106_I(p, o, s) MSGPACK_PP_IF(p(107, s), MSGPACK_PP_WHILE_107, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(107, s)) +# define MSGPACK_PP_WHILE_107_I(p, o, s) MSGPACK_PP_IF(p(108, s), MSGPACK_PP_WHILE_108, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(108, s)) +# define MSGPACK_PP_WHILE_108_I(p, o, s) MSGPACK_PP_IF(p(109, s), MSGPACK_PP_WHILE_109, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(109, s)) +# define MSGPACK_PP_WHILE_109_I(p, o, s) MSGPACK_PP_IF(p(110, s), MSGPACK_PP_WHILE_110, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(110, s)) +# define MSGPACK_PP_WHILE_110_I(p, o, s) MSGPACK_PP_IF(p(111, s), MSGPACK_PP_WHILE_111, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(111, s)) +# define MSGPACK_PP_WHILE_111_I(p, o, s) MSGPACK_PP_IF(p(112, s), MSGPACK_PP_WHILE_112, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(112, s)) +# define MSGPACK_PP_WHILE_112_I(p, o, s) MSGPACK_PP_IF(p(113, s), MSGPACK_PP_WHILE_113, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(113, s)) +# define MSGPACK_PP_WHILE_113_I(p, o, s) MSGPACK_PP_IF(p(114, s), MSGPACK_PP_WHILE_114, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(114, s)) +# define MSGPACK_PP_WHILE_114_I(p, o, s) MSGPACK_PP_IF(p(115, s), MSGPACK_PP_WHILE_115, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(115, s)) +# define MSGPACK_PP_WHILE_115_I(p, o, s) MSGPACK_PP_IF(p(116, s), MSGPACK_PP_WHILE_116, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(116, s)) +# define MSGPACK_PP_WHILE_116_I(p, o, s) MSGPACK_PP_IF(p(117, s), MSGPACK_PP_WHILE_117, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(117, s)) +# define MSGPACK_PP_WHILE_117_I(p, o, s) MSGPACK_PP_IF(p(118, s), MSGPACK_PP_WHILE_118, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(118, s)) +# define MSGPACK_PP_WHILE_118_I(p, o, s) MSGPACK_PP_IF(p(119, s), MSGPACK_PP_WHILE_119, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(119, s)) +# define MSGPACK_PP_WHILE_119_I(p, o, s) MSGPACK_PP_IF(p(120, s), MSGPACK_PP_WHILE_120, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(120, s)) +# define MSGPACK_PP_WHILE_120_I(p, o, s) MSGPACK_PP_IF(p(121, s), MSGPACK_PP_WHILE_121, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(121, s)) +# define MSGPACK_PP_WHILE_121_I(p, o, s) MSGPACK_PP_IF(p(122, s), MSGPACK_PP_WHILE_122, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(122, s)) +# define MSGPACK_PP_WHILE_122_I(p, o, s) MSGPACK_PP_IF(p(123, s), MSGPACK_PP_WHILE_123, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(123, s)) +# define MSGPACK_PP_WHILE_123_I(p, o, s) MSGPACK_PP_IF(p(124, s), MSGPACK_PP_WHILE_124, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(124, s)) +# define MSGPACK_PP_WHILE_124_I(p, o, s) MSGPACK_PP_IF(p(125, s), MSGPACK_PP_WHILE_125, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(125, s)) +# define MSGPACK_PP_WHILE_125_I(p, o, s) MSGPACK_PP_IF(p(126, s), MSGPACK_PP_WHILE_126, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(126, s)) +# define MSGPACK_PP_WHILE_126_I(p, o, s) MSGPACK_PP_IF(p(127, s), MSGPACK_PP_WHILE_127, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(127, s)) +# define MSGPACK_PP_WHILE_127_I(p, o, s) MSGPACK_PP_IF(p(128, s), MSGPACK_PP_WHILE_128, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(128, s)) +# define MSGPACK_PP_WHILE_128_I(p, o, s) MSGPACK_PP_IF(p(129, s), MSGPACK_PP_WHILE_129, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(129, s)) +# define MSGPACK_PP_WHILE_129_I(p, o, s) MSGPACK_PP_IF(p(130, s), MSGPACK_PP_WHILE_130, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(130, s)) +# define MSGPACK_PP_WHILE_130_I(p, o, s) MSGPACK_PP_IF(p(131, s), MSGPACK_PP_WHILE_131, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(131, s)) +# define MSGPACK_PP_WHILE_131_I(p, o, s) MSGPACK_PP_IF(p(132, s), MSGPACK_PP_WHILE_132, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(132, s)) +# define MSGPACK_PP_WHILE_132_I(p, o, s) MSGPACK_PP_IF(p(133, s), MSGPACK_PP_WHILE_133, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(133, s)) +# define MSGPACK_PP_WHILE_133_I(p, o, s) MSGPACK_PP_IF(p(134, s), MSGPACK_PP_WHILE_134, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(134, s)) +# define MSGPACK_PP_WHILE_134_I(p, o, s) MSGPACK_PP_IF(p(135, s), MSGPACK_PP_WHILE_135, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(135, s)) +# define MSGPACK_PP_WHILE_135_I(p, o, s) MSGPACK_PP_IF(p(136, s), MSGPACK_PP_WHILE_136, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(136, s)) +# define MSGPACK_PP_WHILE_136_I(p, o, s) MSGPACK_PP_IF(p(137, s), MSGPACK_PP_WHILE_137, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(137, s)) +# define MSGPACK_PP_WHILE_137_I(p, o, s) MSGPACK_PP_IF(p(138, s), MSGPACK_PP_WHILE_138, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(138, s)) +# define MSGPACK_PP_WHILE_138_I(p, o, s) MSGPACK_PP_IF(p(139, s), MSGPACK_PP_WHILE_139, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(139, s)) +# define MSGPACK_PP_WHILE_139_I(p, o, s) MSGPACK_PP_IF(p(140, s), MSGPACK_PP_WHILE_140, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(140, s)) +# define MSGPACK_PP_WHILE_140_I(p, o, s) MSGPACK_PP_IF(p(141, s), MSGPACK_PP_WHILE_141, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(141, s)) +# define MSGPACK_PP_WHILE_141_I(p, o, s) MSGPACK_PP_IF(p(142, s), MSGPACK_PP_WHILE_142, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(142, s)) +# define MSGPACK_PP_WHILE_142_I(p, o, s) MSGPACK_PP_IF(p(143, s), MSGPACK_PP_WHILE_143, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(143, s)) +# define MSGPACK_PP_WHILE_143_I(p, o, s) MSGPACK_PP_IF(p(144, s), MSGPACK_PP_WHILE_144, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(144, s)) +# define MSGPACK_PP_WHILE_144_I(p, o, s) MSGPACK_PP_IF(p(145, s), MSGPACK_PP_WHILE_145, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(145, s)) +# define MSGPACK_PP_WHILE_145_I(p, o, s) MSGPACK_PP_IF(p(146, s), MSGPACK_PP_WHILE_146, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(146, s)) +# define MSGPACK_PP_WHILE_146_I(p, o, s) MSGPACK_PP_IF(p(147, s), MSGPACK_PP_WHILE_147, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(147, s)) +# define MSGPACK_PP_WHILE_147_I(p, o, s) MSGPACK_PP_IF(p(148, s), MSGPACK_PP_WHILE_148, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(148, s)) +# define MSGPACK_PP_WHILE_148_I(p, o, s) MSGPACK_PP_IF(p(149, s), MSGPACK_PP_WHILE_149, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(149, s)) +# define MSGPACK_PP_WHILE_149_I(p, o, s) MSGPACK_PP_IF(p(150, s), MSGPACK_PP_WHILE_150, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(150, s)) +# define MSGPACK_PP_WHILE_150_I(p, o, s) MSGPACK_PP_IF(p(151, s), MSGPACK_PP_WHILE_151, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(151, s)) +# define MSGPACK_PP_WHILE_151_I(p, o, s) MSGPACK_PP_IF(p(152, s), MSGPACK_PP_WHILE_152, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(152, s)) +# define MSGPACK_PP_WHILE_152_I(p, o, s) MSGPACK_PP_IF(p(153, s), MSGPACK_PP_WHILE_153, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(153, s)) +# define MSGPACK_PP_WHILE_153_I(p, o, s) MSGPACK_PP_IF(p(154, s), MSGPACK_PP_WHILE_154, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(154, s)) +# define MSGPACK_PP_WHILE_154_I(p, o, s) MSGPACK_PP_IF(p(155, s), MSGPACK_PP_WHILE_155, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(155, s)) +# define MSGPACK_PP_WHILE_155_I(p, o, s) MSGPACK_PP_IF(p(156, s), MSGPACK_PP_WHILE_156, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(156, s)) +# define MSGPACK_PP_WHILE_156_I(p, o, s) MSGPACK_PP_IF(p(157, s), MSGPACK_PP_WHILE_157, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(157, s)) +# define MSGPACK_PP_WHILE_157_I(p, o, s) MSGPACK_PP_IF(p(158, s), MSGPACK_PP_WHILE_158, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(158, s)) +# define MSGPACK_PP_WHILE_158_I(p, o, s) MSGPACK_PP_IF(p(159, s), MSGPACK_PP_WHILE_159, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(159, s)) +# define MSGPACK_PP_WHILE_159_I(p, o, s) MSGPACK_PP_IF(p(160, s), MSGPACK_PP_WHILE_160, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(160, s)) +# define MSGPACK_PP_WHILE_160_I(p, o, s) MSGPACK_PP_IF(p(161, s), MSGPACK_PP_WHILE_161, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(161, s)) +# define MSGPACK_PP_WHILE_161_I(p, o, s) MSGPACK_PP_IF(p(162, s), MSGPACK_PP_WHILE_162, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(162, s)) +# define MSGPACK_PP_WHILE_162_I(p, o, s) MSGPACK_PP_IF(p(163, s), MSGPACK_PP_WHILE_163, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(163, s)) +# define MSGPACK_PP_WHILE_163_I(p, o, s) MSGPACK_PP_IF(p(164, s), MSGPACK_PP_WHILE_164, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(164, s)) +# define MSGPACK_PP_WHILE_164_I(p, o, s) MSGPACK_PP_IF(p(165, s), MSGPACK_PP_WHILE_165, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(165, s)) +# define MSGPACK_PP_WHILE_165_I(p, o, s) MSGPACK_PP_IF(p(166, s), MSGPACK_PP_WHILE_166, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(166, s)) +# define MSGPACK_PP_WHILE_166_I(p, o, s) MSGPACK_PP_IF(p(167, s), MSGPACK_PP_WHILE_167, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(167, s)) +# define MSGPACK_PP_WHILE_167_I(p, o, s) MSGPACK_PP_IF(p(168, s), MSGPACK_PP_WHILE_168, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(168, s)) +# define MSGPACK_PP_WHILE_168_I(p, o, s) MSGPACK_PP_IF(p(169, s), MSGPACK_PP_WHILE_169, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(169, s)) +# define MSGPACK_PP_WHILE_169_I(p, o, s) MSGPACK_PP_IF(p(170, s), MSGPACK_PP_WHILE_170, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(170, s)) +# define MSGPACK_PP_WHILE_170_I(p, o, s) MSGPACK_PP_IF(p(171, s), MSGPACK_PP_WHILE_171, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(171, s)) +# define MSGPACK_PP_WHILE_171_I(p, o, s) MSGPACK_PP_IF(p(172, s), MSGPACK_PP_WHILE_172, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(172, s)) +# define MSGPACK_PP_WHILE_172_I(p, o, s) MSGPACK_PP_IF(p(173, s), MSGPACK_PP_WHILE_173, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(173, s)) +# define MSGPACK_PP_WHILE_173_I(p, o, s) MSGPACK_PP_IF(p(174, s), MSGPACK_PP_WHILE_174, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(174, s)) +# define MSGPACK_PP_WHILE_174_I(p, o, s) MSGPACK_PP_IF(p(175, s), MSGPACK_PP_WHILE_175, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(175, s)) +# define MSGPACK_PP_WHILE_175_I(p, o, s) MSGPACK_PP_IF(p(176, s), MSGPACK_PP_WHILE_176, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(176, s)) +# define MSGPACK_PP_WHILE_176_I(p, o, s) MSGPACK_PP_IF(p(177, s), MSGPACK_PP_WHILE_177, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(177, s)) +# define MSGPACK_PP_WHILE_177_I(p, o, s) MSGPACK_PP_IF(p(178, s), MSGPACK_PP_WHILE_178, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(178, s)) +# define MSGPACK_PP_WHILE_178_I(p, o, s) MSGPACK_PP_IF(p(179, s), MSGPACK_PP_WHILE_179, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(179, s)) +# define MSGPACK_PP_WHILE_179_I(p, o, s) MSGPACK_PP_IF(p(180, s), MSGPACK_PP_WHILE_180, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(180, s)) +# define MSGPACK_PP_WHILE_180_I(p, o, s) MSGPACK_PP_IF(p(181, s), MSGPACK_PP_WHILE_181, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(181, s)) +# define MSGPACK_PP_WHILE_181_I(p, o, s) MSGPACK_PP_IF(p(182, s), MSGPACK_PP_WHILE_182, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(182, s)) +# define MSGPACK_PP_WHILE_182_I(p, o, s) MSGPACK_PP_IF(p(183, s), MSGPACK_PP_WHILE_183, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(183, s)) +# define MSGPACK_PP_WHILE_183_I(p, o, s) MSGPACK_PP_IF(p(184, s), MSGPACK_PP_WHILE_184, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(184, s)) +# define MSGPACK_PP_WHILE_184_I(p, o, s) MSGPACK_PP_IF(p(185, s), MSGPACK_PP_WHILE_185, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(185, s)) +# define MSGPACK_PP_WHILE_185_I(p, o, s) MSGPACK_PP_IF(p(186, s), MSGPACK_PP_WHILE_186, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(186, s)) +# define MSGPACK_PP_WHILE_186_I(p, o, s) MSGPACK_PP_IF(p(187, s), MSGPACK_PP_WHILE_187, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(187, s)) +# define MSGPACK_PP_WHILE_187_I(p, o, s) MSGPACK_PP_IF(p(188, s), MSGPACK_PP_WHILE_188, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(188, s)) +# define MSGPACK_PP_WHILE_188_I(p, o, s) MSGPACK_PP_IF(p(189, s), MSGPACK_PP_WHILE_189, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(189, s)) +# define MSGPACK_PP_WHILE_189_I(p, o, s) MSGPACK_PP_IF(p(190, s), MSGPACK_PP_WHILE_190, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(190, s)) +# define MSGPACK_PP_WHILE_190_I(p, o, s) MSGPACK_PP_IF(p(191, s), MSGPACK_PP_WHILE_191, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(191, s)) +# define MSGPACK_PP_WHILE_191_I(p, o, s) MSGPACK_PP_IF(p(192, s), MSGPACK_PP_WHILE_192, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(192, s)) +# define MSGPACK_PP_WHILE_192_I(p, o, s) MSGPACK_PP_IF(p(193, s), MSGPACK_PP_WHILE_193, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(193, s)) +# define MSGPACK_PP_WHILE_193_I(p, o, s) MSGPACK_PP_IF(p(194, s), MSGPACK_PP_WHILE_194, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(194, s)) +# define MSGPACK_PP_WHILE_194_I(p, o, s) MSGPACK_PP_IF(p(195, s), MSGPACK_PP_WHILE_195, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(195, s)) +# define MSGPACK_PP_WHILE_195_I(p, o, s) MSGPACK_PP_IF(p(196, s), MSGPACK_PP_WHILE_196, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(196, s)) +# define MSGPACK_PP_WHILE_196_I(p, o, s) MSGPACK_PP_IF(p(197, s), MSGPACK_PP_WHILE_197, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(197, s)) +# define MSGPACK_PP_WHILE_197_I(p, o, s) MSGPACK_PP_IF(p(198, s), MSGPACK_PP_WHILE_198, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(198, s)) +# define MSGPACK_PP_WHILE_198_I(p, o, s) MSGPACK_PP_IF(p(199, s), MSGPACK_PP_WHILE_199, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(199, s)) +# define MSGPACK_PP_WHILE_199_I(p, o, s) MSGPACK_PP_IF(p(200, s), MSGPACK_PP_WHILE_200, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(200, s)) +# define MSGPACK_PP_WHILE_200_I(p, o, s) MSGPACK_PP_IF(p(201, s), MSGPACK_PP_WHILE_201, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(201, s)) +# define MSGPACK_PP_WHILE_201_I(p, o, s) MSGPACK_PP_IF(p(202, s), MSGPACK_PP_WHILE_202, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(202, s)) +# define MSGPACK_PP_WHILE_202_I(p, o, s) MSGPACK_PP_IF(p(203, s), MSGPACK_PP_WHILE_203, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(203, s)) +# define MSGPACK_PP_WHILE_203_I(p, o, s) MSGPACK_PP_IF(p(204, s), MSGPACK_PP_WHILE_204, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(204, s)) +# define MSGPACK_PP_WHILE_204_I(p, o, s) MSGPACK_PP_IF(p(205, s), MSGPACK_PP_WHILE_205, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(205, s)) +# define MSGPACK_PP_WHILE_205_I(p, o, s) MSGPACK_PP_IF(p(206, s), MSGPACK_PP_WHILE_206, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(206, s)) +# define MSGPACK_PP_WHILE_206_I(p, o, s) MSGPACK_PP_IF(p(207, s), MSGPACK_PP_WHILE_207, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(207, s)) +# define MSGPACK_PP_WHILE_207_I(p, o, s) MSGPACK_PP_IF(p(208, s), MSGPACK_PP_WHILE_208, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(208, s)) +# define MSGPACK_PP_WHILE_208_I(p, o, s) MSGPACK_PP_IF(p(209, s), MSGPACK_PP_WHILE_209, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(209, s)) +# define MSGPACK_PP_WHILE_209_I(p, o, s) MSGPACK_PP_IF(p(210, s), MSGPACK_PP_WHILE_210, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(210, s)) +# define MSGPACK_PP_WHILE_210_I(p, o, s) MSGPACK_PP_IF(p(211, s), MSGPACK_PP_WHILE_211, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(211, s)) +# define MSGPACK_PP_WHILE_211_I(p, o, s) MSGPACK_PP_IF(p(212, s), MSGPACK_PP_WHILE_212, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(212, s)) +# define MSGPACK_PP_WHILE_212_I(p, o, s) MSGPACK_PP_IF(p(213, s), MSGPACK_PP_WHILE_213, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(213, s)) +# define MSGPACK_PP_WHILE_213_I(p, o, s) MSGPACK_PP_IF(p(214, s), MSGPACK_PP_WHILE_214, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(214, s)) +# define MSGPACK_PP_WHILE_214_I(p, o, s) MSGPACK_PP_IF(p(215, s), MSGPACK_PP_WHILE_215, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(215, s)) +# define MSGPACK_PP_WHILE_215_I(p, o, s) MSGPACK_PP_IF(p(216, s), MSGPACK_PP_WHILE_216, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(216, s)) +# define MSGPACK_PP_WHILE_216_I(p, o, s) MSGPACK_PP_IF(p(217, s), MSGPACK_PP_WHILE_217, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(217, s)) +# define MSGPACK_PP_WHILE_217_I(p, o, s) MSGPACK_PP_IF(p(218, s), MSGPACK_PP_WHILE_218, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(218, s)) +# define MSGPACK_PP_WHILE_218_I(p, o, s) MSGPACK_PP_IF(p(219, s), MSGPACK_PP_WHILE_219, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(219, s)) +# define MSGPACK_PP_WHILE_219_I(p, o, s) MSGPACK_PP_IF(p(220, s), MSGPACK_PP_WHILE_220, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(220, s)) +# define MSGPACK_PP_WHILE_220_I(p, o, s) MSGPACK_PP_IF(p(221, s), MSGPACK_PP_WHILE_221, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(221, s)) +# define MSGPACK_PP_WHILE_221_I(p, o, s) MSGPACK_PP_IF(p(222, s), MSGPACK_PP_WHILE_222, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(222, s)) +# define MSGPACK_PP_WHILE_222_I(p, o, s) MSGPACK_PP_IF(p(223, s), MSGPACK_PP_WHILE_223, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(223, s)) +# define MSGPACK_PP_WHILE_223_I(p, o, s) MSGPACK_PP_IF(p(224, s), MSGPACK_PP_WHILE_224, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(224, s)) +# define MSGPACK_PP_WHILE_224_I(p, o, s) MSGPACK_PP_IF(p(225, s), MSGPACK_PP_WHILE_225, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(225, s)) +# define MSGPACK_PP_WHILE_225_I(p, o, s) MSGPACK_PP_IF(p(226, s), MSGPACK_PP_WHILE_226, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(226, s)) +# define MSGPACK_PP_WHILE_226_I(p, o, s) MSGPACK_PP_IF(p(227, s), MSGPACK_PP_WHILE_227, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(227, s)) +# define MSGPACK_PP_WHILE_227_I(p, o, s) MSGPACK_PP_IF(p(228, s), MSGPACK_PP_WHILE_228, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(228, s)) +# define MSGPACK_PP_WHILE_228_I(p, o, s) MSGPACK_PP_IF(p(229, s), MSGPACK_PP_WHILE_229, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(229, s)) +# define MSGPACK_PP_WHILE_229_I(p, o, s) MSGPACK_PP_IF(p(230, s), MSGPACK_PP_WHILE_230, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(230, s)) +# define MSGPACK_PP_WHILE_230_I(p, o, s) MSGPACK_PP_IF(p(231, s), MSGPACK_PP_WHILE_231, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(231, s)) +# define MSGPACK_PP_WHILE_231_I(p, o, s) MSGPACK_PP_IF(p(232, s), MSGPACK_PP_WHILE_232, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(232, s)) +# define MSGPACK_PP_WHILE_232_I(p, o, s) MSGPACK_PP_IF(p(233, s), MSGPACK_PP_WHILE_233, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(233, s)) +# define MSGPACK_PP_WHILE_233_I(p, o, s) MSGPACK_PP_IF(p(234, s), MSGPACK_PP_WHILE_234, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(234, s)) +# define MSGPACK_PP_WHILE_234_I(p, o, s) MSGPACK_PP_IF(p(235, s), MSGPACK_PP_WHILE_235, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(235, s)) +# define MSGPACK_PP_WHILE_235_I(p, o, s) MSGPACK_PP_IF(p(236, s), MSGPACK_PP_WHILE_236, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(236, s)) +# define MSGPACK_PP_WHILE_236_I(p, o, s) MSGPACK_PP_IF(p(237, s), MSGPACK_PP_WHILE_237, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(237, s)) +# define MSGPACK_PP_WHILE_237_I(p, o, s) MSGPACK_PP_IF(p(238, s), MSGPACK_PP_WHILE_238, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(238, s)) +# define MSGPACK_PP_WHILE_238_I(p, o, s) MSGPACK_PP_IF(p(239, s), MSGPACK_PP_WHILE_239, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(239, s)) +# define MSGPACK_PP_WHILE_239_I(p, o, s) MSGPACK_PP_IF(p(240, s), MSGPACK_PP_WHILE_240, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(240, s)) +# define MSGPACK_PP_WHILE_240_I(p, o, s) MSGPACK_PP_IF(p(241, s), MSGPACK_PP_WHILE_241, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(241, s)) +# define MSGPACK_PP_WHILE_241_I(p, o, s) MSGPACK_PP_IF(p(242, s), MSGPACK_PP_WHILE_242, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(242, s)) +# define MSGPACK_PP_WHILE_242_I(p, o, s) MSGPACK_PP_IF(p(243, s), MSGPACK_PP_WHILE_243, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(243, s)) +# define MSGPACK_PP_WHILE_243_I(p, o, s) MSGPACK_PP_IF(p(244, s), MSGPACK_PP_WHILE_244, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(244, s)) +# define MSGPACK_PP_WHILE_244_I(p, o, s) MSGPACK_PP_IF(p(245, s), MSGPACK_PP_WHILE_245, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(245, s)) +# define MSGPACK_PP_WHILE_245_I(p, o, s) MSGPACK_PP_IF(p(246, s), MSGPACK_PP_WHILE_246, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(246, s)) +# define MSGPACK_PP_WHILE_246_I(p, o, s) MSGPACK_PP_IF(p(247, s), MSGPACK_PP_WHILE_247, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(247, s)) +# define MSGPACK_PP_WHILE_247_I(p, o, s) MSGPACK_PP_IF(p(248, s), MSGPACK_PP_WHILE_248, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(248, s)) +# define MSGPACK_PP_WHILE_248_I(p, o, s) MSGPACK_PP_IF(p(249, s), MSGPACK_PP_WHILE_249, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(249, s)) +# define MSGPACK_PP_WHILE_249_I(p, o, s) MSGPACK_PP_IF(p(250, s), MSGPACK_PP_WHILE_250, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(250, s)) +# define MSGPACK_PP_WHILE_250_I(p, o, s) MSGPACK_PP_IF(p(251, s), MSGPACK_PP_WHILE_251, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(251, s)) +# define MSGPACK_PP_WHILE_251_I(p, o, s) MSGPACK_PP_IF(p(252, s), MSGPACK_PP_WHILE_252, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(252, s)) +# define MSGPACK_PP_WHILE_252_I(p, o, s) MSGPACK_PP_IF(p(253, s), MSGPACK_PP_WHILE_253, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(253, s)) +# define MSGPACK_PP_WHILE_253_I(p, o, s) MSGPACK_PP_IF(p(254, s), MSGPACK_PP_WHILE_254, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(254, s)) +# define MSGPACK_PP_WHILE_254_I(p, o, s) MSGPACK_PP_IF(p(255, s), MSGPACK_PP_WHILE_255, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(255, s)) +# define MSGPACK_PP_WHILE_255_I(p, o, s) MSGPACK_PP_IF(p(256, s), MSGPACK_PP_WHILE_256, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(256, s)) +# define MSGPACK_PP_WHILE_256_I(p, o, s) MSGPACK_PP_IF(p(257, s), MSGPACK_PP_WHILE_257, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(257, s)) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/control/detail/msvc/while.hpp b/third_party/msgpack/include/msgpack/preprocessor/control/detail/msvc/while.hpp new file mode 100644 index 000000000000..177160d5a803 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/control/detail/msvc/while.hpp @@ -0,0 +1,277 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP +# define MSGPACK_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP +# +# include +# include +# +# define MSGPACK_PP_WHILE_1(p, o, s) MSGPACK_PP_IF(p(2, s), MSGPACK_PP_WHILE_2, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(2, s)) +# define MSGPACK_PP_WHILE_2(p, o, s) MSGPACK_PP_IF(p(3, s), MSGPACK_PP_WHILE_3, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(3, s)) +# define MSGPACK_PP_WHILE_3(p, o, s) MSGPACK_PP_IF(p(4, s), MSGPACK_PP_WHILE_4, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(4, s)) +# define MSGPACK_PP_WHILE_4(p, o, s) MSGPACK_PP_IF(p(5, s), MSGPACK_PP_WHILE_5, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(5, s)) +# define MSGPACK_PP_WHILE_5(p, o, s) MSGPACK_PP_IF(p(6, s), MSGPACK_PP_WHILE_6, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(6, s)) +# define MSGPACK_PP_WHILE_6(p, o, s) MSGPACK_PP_IF(p(7, s), MSGPACK_PP_WHILE_7, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(7, s)) +# define MSGPACK_PP_WHILE_7(p, o, s) MSGPACK_PP_IF(p(8, s), MSGPACK_PP_WHILE_8, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(8, s)) +# define MSGPACK_PP_WHILE_8(p, o, s) MSGPACK_PP_IF(p(9, s), MSGPACK_PP_WHILE_9, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(9, s)) +# define MSGPACK_PP_WHILE_9(p, o, s) MSGPACK_PP_IF(p(10, s), MSGPACK_PP_WHILE_10, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(10, s)) +# define MSGPACK_PP_WHILE_10(p, o, s) MSGPACK_PP_IF(p(11, s), MSGPACK_PP_WHILE_11, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(11, s)) +# define MSGPACK_PP_WHILE_11(p, o, s) MSGPACK_PP_IF(p(12, s), MSGPACK_PP_WHILE_12, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(12, s)) +# define MSGPACK_PP_WHILE_12(p, o, s) MSGPACK_PP_IF(p(13, s), MSGPACK_PP_WHILE_13, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(13, s)) +# define MSGPACK_PP_WHILE_13(p, o, s) MSGPACK_PP_IF(p(14, s), MSGPACK_PP_WHILE_14, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(14, s)) +# define MSGPACK_PP_WHILE_14(p, o, s) MSGPACK_PP_IF(p(15, s), MSGPACK_PP_WHILE_15, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(15, s)) +# define MSGPACK_PP_WHILE_15(p, o, s) MSGPACK_PP_IF(p(16, s), MSGPACK_PP_WHILE_16, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(16, s)) +# define MSGPACK_PP_WHILE_16(p, o, s) MSGPACK_PP_IF(p(17, s), MSGPACK_PP_WHILE_17, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(17, s)) +# define MSGPACK_PP_WHILE_17(p, o, s) MSGPACK_PP_IF(p(18, s), MSGPACK_PP_WHILE_18, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(18, s)) +# define MSGPACK_PP_WHILE_18(p, o, s) MSGPACK_PP_IF(p(19, s), MSGPACK_PP_WHILE_19, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(19, s)) +# define MSGPACK_PP_WHILE_19(p, o, s) MSGPACK_PP_IF(p(20, s), MSGPACK_PP_WHILE_20, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(20, s)) +# define MSGPACK_PP_WHILE_20(p, o, s) MSGPACK_PP_IF(p(21, s), MSGPACK_PP_WHILE_21, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(21, s)) +# define MSGPACK_PP_WHILE_21(p, o, s) MSGPACK_PP_IF(p(22, s), MSGPACK_PP_WHILE_22, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(22, s)) +# define MSGPACK_PP_WHILE_22(p, o, s) MSGPACK_PP_IF(p(23, s), MSGPACK_PP_WHILE_23, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(23, s)) +# define MSGPACK_PP_WHILE_23(p, o, s) MSGPACK_PP_IF(p(24, s), MSGPACK_PP_WHILE_24, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(24, s)) +# define MSGPACK_PP_WHILE_24(p, o, s) MSGPACK_PP_IF(p(25, s), MSGPACK_PP_WHILE_25, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(25, s)) +# define MSGPACK_PP_WHILE_25(p, o, s) MSGPACK_PP_IF(p(26, s), MSGPACK_PP_WHILE_26, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(26, s)) +# define MSGPACK_PP_WHILE_26(p, o, s) MSGPACK_PP_IF(p(27, s), MSGPACK_PP_WHILE_27, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(27, s)) +# define MSGPACK_PP_WHILE_27(p, o, s) MSGPACK_PP_IF(p(28, s), MSGPACK_PP_WHILE_28, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(28, s)) +# define MSGPACK_PP_WHILE_28(p, o, s) MSGPACK_PP_IF(p(29, s), MSGPACK_PP_WHILE_29, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(29, s)) +# define MSGPACK_PP_WHILE_29(p, o, s) MSGPACK_PP_IF(p(30, s), MSGPACK_PP_WHILE_30, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(30, s)) +# define MSGPACK_PP_WHILE_30(p, o, s) MSGPACK_PP_IF(p(31, s), MSGPACK_PP_WHILE_31, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(31, s)) +# define MSGPACK_PP_WHILE_31(p, o, s) MSGPACK_PP_IF(p(32, s), MSGPACK_PP_WHILE_32, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(32, s)) +# define MSGPACK_PP_WHILE_32(p, o, s) MSGPACK_PP_IF(p(33, s), MSGPACK_PP_WHILE_33, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(33, s)) +# define MSGPACK_PP_WHILE_33(p, o, s) MSGPACK_PP_IF(p(34, s), MSGPACK_PP_WHILE_34, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(34, s)) +# define MSGPACK_PP_WHILE_34(p, o, s) MSGPACK_PP_IF(p(35, s), MSGPACK_PP_WHILE_35, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(35, s)) +# define MSGPACK_PP_WHILE_35(p, o, s) MSGPACK_PP_IF(p(36, s), MSGPACK_PP_WHILE_36, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(36, s)) +# define MSGPACK_PP_WHILE_36(p, o, s) MSGPACK_PP_IF(p(37, s), MSGPACK_PP_WHILE_37, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(37, s)) +# define MSGPACK_PP_WHILE_37(p, o, s) MSGPACK_PP_IF(p(38, s), MSGPACK_PP_WHILE_38, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(38, s)) +# define MSGPACK_PP_WHILE_38(p, o, s) MSGPACK_PP_IF(p(39, s), MSGPACK_PP_WHILE_39, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(39, s)) +# define MSGPACK_PP_WHILE_39(p, o, s) MSGPACK_PP_IF(p(40, s), MSGPACK_PP_WHILE_40, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(40, s)) +# define MSGPACK_PP_WHILE_40(p, o, s) MSGPACK_PP_IF(p(41, s), MSGPACK_PP_WHILE_41, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(41, s)) +# define MSGPACK_PP_WHILE_41(p, o, s) MSGPACK_PP_IF(p(42, s), MSGPACK_PP_WHILE_42, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(42, s)) +# define MSGPACK_PP_WHILE_42(p, o, s) MSGPACK_PP_IF(p(43, s), MSGPACK_PP_WHILE_43, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(43, s)) +# define MSGPACK_PP_WHILE_43(p, o, s) MSGPACK_PP_IF(p(44, s), MSGPACK_PP_WHILE_44, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(44, s)) +# define MSGPACK_PP_WHILE_44(p, o, s) MSGPACK_PP_IF(p(45, s), MSGPACK_PP_WHILE_45, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(45, s)) +# define MSGPACK_PP_WHILE_45(p, o, s) MSGPACK_PP_IF(p(46, s), MSGPACK_PP_WHILE_46, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(46, s)) +# define MSGPACK_PP_WHILE_46(p, o, s) MSGPACK_PP_IF(p(47, s), MSGPACK_PP_WHILE_47, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(47, s)) +# define MSGPACK_PP_WHILE_47(p, o, s) MSGPACK_PP_IF(p(48, s), MSGPACK_PP_WHILE_48, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(48, s)) +# define MSGPACK_PP_WHILE_48(p, o, s) MSGPACK_PP_IF(p(49, s), MSGPACK_PP_WHILE_49, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(49, s)) +# define MSGPACK_PP_WHILE_49(p, o, s) MSGPACK_PP_IF(p(50, s), MSGPACK_PP_WHILE_50, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(50, s)) +# define MSGPACK_PP_WHILE_50(p, o, s) MSGPACK_PP_IF(p(51, s), MSGPACK_PP_WHILE_51, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(51, s)) +# define MSGPACK_PP_WHILE_51(p, o, s) MSGPACK_PP_IF(p(52, s), MSGPACK_PP_WHILE_52, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(52, s)) +# define MSGPACK_PP_WHILE_52(p, o, s) MSGPACK_PP_IF(p(53, s), MSGPACK_PP_WHILE_53, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(53, s)) +# define MSGPACK_PP_WHILE_53(p, o, s) MSGPACK_PP_IF(p(54, s), MSGPACK_PP_WHILE_54, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(54, s)) +# define MSGPACK_PP_WHILE_54(p, o, s) MSGPACK_PP_IF(p(55, s), MSGPACK_PP_WHILE_55, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(55, s)) +# define MSGPACK_PP_WHILE_55(p, o, s) MSGPACK_PP_IF(p(56, s), MSGPACK_PP_WHILE_56, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(56, s)) +# define MSGPACK_PP_WHILE_56(p, o, s) MSGPACK_PP_IF(p(57, s), MSGPACK_PP_WHILE_57, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(57, s)) +# define MSGPACK_PP_WHILE_57(p, o, s) MSGPACK_PP_IF(p(58, s), MSGPACK_PP_WHILE_58, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(58, s)) +# define MSGPACK_PP_WHILE_58(p, o, s) MSGPACK_PP_IF(p(59, s), MSGPACK_PP_WHILE_59, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(59, s)) +# define MSGPACK_PP_WHILE_59(p, o, s) MSGPACK_PP_IF(p(60, s), MSGPACK_PP_WHILE_60, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(60, s)) +# define MSGPACK_PP_WHILE_60(p, o, s) MSGPACK_PP_IF(p(61, s), MSGPACK_PP_WHILE_61, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(61, s)) +# define MSGPACK_PP_WHILE_61(p, o, s) MSGPACK_PP_IF(p(62, s), MSGPACK_PP_WHILE_62, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(62, s)) +# define MSGPACK_PP_WHILE_62(p, o, s) MSGPACK_PP_IF(p(63, s), MSGPACK_PP_WHILE_63, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(63, s)) +# define MSGPACK_PP_WHILE_63(p, o, s) MSGPACK_PP_IF(p(64, s), MSGPACK_PP_WHILE_64, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(64, s)) +# define MSGPACK_PP_WHILE_64(p, o, s) MSGPACK_PP_IF(p(65, s), MSGPACK_PP_WHILE_65, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(65, s)) +# define MSGPACK_PP_WHILE_65(p, o, s) MSGPACK_PP_IF(p(66, s), MSGPACK_PP_WHILE_66, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(66, s)) +# define MSGPACK_PP_WHILE_66(p, o, s) MSGPACK_PP_IF(p(67, s), MSGPACK_PP_WHILE_67, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(67, s)) +# define MSGPACK_PP_WHILE_67(p, o, s) MSGPACK_PP_IF(p(68, s), MSGPACK_PP_WHILE_68, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(68, s)) +# define MSGPACK_PP_WHILE_68(p, o, s) MSGPACK_PP_IF(p(69, s), MSGPACK_PP_WHILE_69, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(69, s)) +# define MSGPACK_PP_WHILE_69(p, o, s) MSGPACK_PP_IF(p(70, s), MSGPACK_PP_WHILE_70, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(70, s)) +# define MSGPACK_PP_WHILE_70(p, o, s) MSGPACK_PP_IF(p(71, s), MSGPACK_PP_WHILE_71, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(71, s)) +# define MSGPACK_PP_WHILE_71(p, o, s) MSGPACK_PP_IF(p(72, s), MSGPACK_PP_WHILE_72, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(72, s)) +# define MSGPACK_PP_WHILE_72(p, o, s) MSGPACK_PP_IF(p(73, s), MSGPACK_PP_WHILE_73, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(73, s)) +# define MSGPACK_PP_WHILE_73(p, o, s) MSGPACK_PP_IF(p(74, s), MSGPACK_PP_WHILE_74, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(74, s)) +# define MSGPACK_PP_WHILE_74(p, o, s) MSGPACK_PP_IF(p(75, s), MSGPACK_PP_WHILE_75, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(75, s)) +# define MSGPACK_PP_WHILE_75(p, o, s) MSGPACK_PP_IF(p(76, s), MSGPACK_PP_WHILE_76, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(76, s)) +# define MSGPACK_PP_WHILE_76(p, o, s) MSGPACK_PP_IF(p(77, s), MSGPACK_PP_WHILE_77, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(77, s)) +# define MSGPACK_PP_WHILE_77(p, o, s) MSGPACK_PP_IF(p(78, s), MSGPACK_PP_WHILE_78, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(78, s)) +# define MSGPACK_PP_WHILE_78(p, o, s) MSGPACK_PP_IF(p(79, s), MSGPACK_PP_WHILE_79, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(79, s)) +# define MSGPACK_PP_WHILE_79(p, o, s) MSGPACK_PP_IF(p(80, s), MSGPACK_PP_WHILE_80, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(80, s)) +# define MSGPACK_PP_WHILE_80(p, o, s) MSGPACK_PP_IF(p(81, s), MSGPACK_PP_WHILE_81, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(81, s)) +# define MSGPACK_PP_WHILE_81(p, o, s) MSGPACK_PP_IF(p(82, s), MSGPACK_PP_WHILE_82, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(82, s)) +# define MSGPACK_PP_WHILE_82(p, o, s) MSGPACK_PP_IF(p(83, s), MSGPACK_PP_WHILE_83, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(83, s)) +# define MSGPACK_PP_WHILE_83(p, o, s) MSGPACK_PP_IF(p(84, s), MSGPACK_PP_WHILE_84, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(84, s)) +# define MSGPACK_PP_WHILE_84(p, o, s) MSGPACK_PP_IF(p(85, s), MSGPACK_PP_WHILE_85, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(85, s)) +# define MSGPACK_PP_WHILE_85(p, o, s) MSGPACK_PP_IF(p(86, s), MSGPACK_PP_WHILE_86, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(86, s)) +# define MSGPACK_PP_WHILE_86(p, o, s) MSGPACK_PP_IF(p(87, s), MSGPACK_PP_WHILE_87, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(87, s)) +# define MSGPACK_PP_WHILE_87(p, o, s) MSGPACK_PP_IF(p(88, s), MSGPACK_PP_WHILE_88, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(88, s)) +# define MSGPACK_PP_WHILE_88(p, o, s) MSGPACK_PP_IF(p(89, s), MSGPACK_PP_WHILE_89, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(89, s)) +# define MSGPACK_PP_WHILE_89(p, o, s) MSGPACK_PP_IF(p(90, s), MSGPACK_PP_WHILE_90, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(90, s)) +# define MSGPACK_PP_WHILE_90(p, o, s) MSGPACK_PP_IF(p(91, s), MSGPACK_PP_WHILE_91, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(91, s)) +# define MSGPACK_PP_WHILE_91(p, o, s) MSGPACK_PP_IF(p(92, s), MSGPACK_PP_WHILE_92, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(92, s)) +# define MSGPACK_PP_WHILE_92(p, o, s) MSGPACK_PP_IF(p(93, s), MSGPACK_PP_WHILE_93, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(93, s)) +# define MSGPACK_PP_WHILE_93(p, o, s) MSGPACK_PP_IF(p(94, s), MSGPACK_PP_WHILE_94, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(94, s)) +# define MSGPACK_PP_WHILE_94(p, o, s) MSGPACK_PP_IF(p(95, s), MSGPACK_PP_WHILE_95, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(95, s)) +# define MSGPACK_PP_WHILE_95(p, o, s) MSGPACK_PP_IF(p(96, s), MSGPACK_PP_WHILE_96, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(96, s)) +# define MSGPACK_PP_WHILE_96(p, o, s) MSGPACK_PP_IF(p(97, s), MSGPACK_PP_WHILE_97, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(97, s)) +# define MSGPACK_PP_WHILE_97(p, o, s) MSGPACK_PP_IF(p(98, s), MSGPACK_PP_WHILE_98, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(98, s)) +# define MSGPACK_PP_WHILE_98(p, o, s) MSGPACK_PP_IF(p(99, s), MSGPACK_PP_WHILE_99, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(99, s)) +# define MSGPACK_PP_WHILE_99(p, o, s) MSGPACK_PP_IF(p(100, s), MSGPACK_PP_WHILE_100, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(100, s)) +# define MSGPACK_PP_WHILE_100(p, o, s) MSGPACK_PP_IF(p(101, s), MSGPACK_PP_WHILE_101, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(101, s)) +# define MSGPACK_PP_WHILE_101(p, o, s) MSGPACK_PP_IF(p(102, s), MSGPACK_PP_WHILE_102, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(102, s)) +# define MSGPACK_PP_WHILE_102(p, o, s) MSGPACK_PP_IF(p(103, s), MSGPACK_PP_WHILE_103, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(103, s)) +# define MSGPACK_PP_WHILE_103(p, o, s) MSGPACK_PP_IF(p(104, s), MSGPACK_PP_WHILE_104, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(104, s)) +# define MSGPACK_PP_WHILE_104(p, o, s) MSGPACK_PP_IF(p(105, s), MSGPACK_PP_WHILE_105, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(105, s)) +# define MSGPACK_PP_WHILE_105(p, o, s) MSGPACK_PP_IF(p(106, s), MSGPACK_PP_WHILE_106, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(106, s)) +# define MSGPACK_PP_WHILE_106(p, o, s) MSGPACK_PP_IF(p(107, s), MSGPACK_PP_WHILE_107, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(107, s)) +# define MSGPACK_PP_WHILE_107(p, o, s) MSGPACK_PP_IF(p(108, s), MSGPACK_PP_WHILE_108, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(108, s)) +# define MSGPACK_PP_WHILE_108(p, o, s) MSGPACK_PP_IF(p(109, s), MSGPACK_PP_WHILE_109, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(109, s)) +# define MSGPACK_PP_WHILE_109(p, o, s) MSGPACK_PP_IF(p(110, s), MSGPACK_PP_WHILE_110, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(110, s)) +# define MSGPACK_PP_WHILE_110(p, o, s) MSGPACK_PP_IF(p(111, s), MSGPACK_PP_WHILE_111, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(111, s)) +# define MSGPACK_PP_WHILE_111(p, o, s) MSGPACK_PP_IF(p(112, s), MSGPACK_PP_WHILE_112, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(112, s)) +# define MSGPACK_PP_WHILE_112(p, o, s) MSGPACK_PP_IF(p(113, s), MSGPACK_PP_WHILE_113, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(113, s)) +# define MSGPACK_PP_WHILE_113(p, o, s) MSGPACK_PP_IF(p(114, s), MSGPACK_PP_WHILE_114, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(114, s)) +# define MSGPACK_PP_WHILE_114(p, o, s) MSGPACK_PP_IF(p(115, s), MSGPACK_PP_WHILE_115, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(115, s)) +# define MSGPACK_PP_WHILE_115(p, o, s) MSGPACK_PP_IF(p(116, s), MSGPACK_PP_WHILE_116, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(116, s)) +# define MSGPACK_PP_WHILE_116(p, o, s) MSGPACK_PP_IF(p(117, s), MSGPACK_PP_WHILE_117, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(117, s)) +# define MSGPACK_PP_WHILE_117(p, o, s) MSGPACK_PP_IF(p(118, s), MSGPACK_PP_WHILE_118, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(118, s)) +# define MSGPACK_PP_WHILE_118(p, o, s) MSGPACK_PP_IF(p(119, s), MSGPACK_PP_WHILE_119, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(119, s)) +# define MSGPACK_PP_WHILE_119(p, o, s) MSGPACK_PP_IF(p(120, s), MSGPACK_PP_WHILE_120, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(120, s)) +# define MSGPACK_PP_WHILE_120(p, o, s) MSGPACK_PP_IF(p(121, s), MSGPACK_PP_WHILE_121, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(121, s)) +# define MSGPACK_PP_WHILE_121(p, o, s) MSGPACK_PP_IF(p(122, s), MSGPACK_PP_WHILE_122, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(122, s)) +# define MSGPACK_PP_WHILE_122(p, o, s) MSGPACK_PP_IF(p(123, s), MSGPACK_PP_WHILE_123, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(123, s)) +# define MSGPACK_PP_WHILE_123(p, o, s) MSGPACK_PP_IF(p(124, s), MSGPACK_PP_WHILE_124, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(124, s)) +# define MSGPACK_PP_WHILE_124(p, o, s) MSGPACK_PP_IF(p(125, s), MSGPACK_PP_WHILE_125, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(125, s)) +# define MSGPACK_PP_WHILE_125(p, o, s) MSGPACK_PP_IF(p(126, s), MSGPACK_PP_WHILE_126, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(126, s)) +# define MSGPACK_PP_WHILE_126(p, o, s) MSGPACK_PP_IF(p(127, s), MSGPACK_PP_WHILE_127, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(127, s)) +# define MSGPACK_PP_WHILE_127(p, o, s) MSGPACK_PP_IF(p(128, s), MSGPACK_PP_WHILE_128, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(128, s)) +# define MSGPACK_PP_WHILE_128(p, o, s) MSGPACK_PP_IF(p(129, s), MSGPACK_PP_WHILE_129, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(129, s)) +# define MSGPACK_PP_WHILE_129(p, o, s) MSGPACK_PP_IF(p(130, s), MSGPACK_PP_WHILE_130, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(130, s)) +# define MSGPACK_PP_WHILE_130(p, o, s) MSGPACK_PP_IF(p(131, s), MSGPACK_PP_WHILE_131, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(131, s)) +# define MSGPACK_PP_WHILE_131(p, o, s) MSGPACK_PP_IF(p(132, s), MSGPACK_PP_WHILE_132, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(132, s)) +# define MSGPACK_PP_WHILE_132(p, o, s) MSGPACK_PP_IF(p(133, s), MSGPACK_PP_WHILE_133, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(133, s)) +# define MSGPACK_PP_WHILE_133(p, o, s) MSGPACK_PP_IF(p(134, s), MSGPACK_PP_WHILE_134, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(134, s)) +# define MSGPACK_PP_WHILE_134(p, o, s) MSGPACK_PP_IF(p(135, s), MSGPACK_PP_WHILE_135, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(135, s)) +# define MSGPACK_PP_WHILE_135(p, o, s) MSGPACK_PP_IF(p(136, s), MSGPACK_PP_WHILE_136, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(136, s)) +# define MSGPACK_PP_WHILE_136(p, o, s) MSGPACK_PP_IF(p(137, s), MSGPACK_PP_WHILE_137, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(137, s)) +# define MSGPACK_PP_WHILE_137(p, o, s) MSGPACK_PP_IF(p(138, s), MSGPACK_PP_WHILE_138, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(138, s)) +# define MSGPACK_PP_WHILE_138(p, o, s) MSGPACK_PP_IF(p(139, s), MSGPACK_PP_WHILE_139, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(139, s)) +# define MSGPACK_PP_WHILE_139(p, o, s) MSGPACK_PP_IF(p(140, s), MSGPACK_PP_WHILE_140, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(140, s)) +# define MSGPACK_PP_WHILE_140(p, o, s) MSGPACK_PP_IF(p(141, s), MSGPACK_PP_WHILE_141, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(141, s)) +# define MSGPACK_PP_WHILE_141(p, o, s) MSGPACK_PP_IF(p(142, s), MSGPACK_PP_WHILE_142, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(142, s)) +# define MSGPACK_PP_WHILE_142(p, o, s) MSGPACK_PP_IF(p(143, s), MSGPACK_PP_WHILE_143, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(143, s)) +# define MSGPACK_PP_WHILE_143(p, o, s) MSGPACK_PP_IF(p(144, s), MSGPACK_PP_WHILE_144, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(144, s)) +# define MSGPACK_PP_WHILE_144(p, o, s) MSGPACK_PP_IF(p(145, s), MSGPACK_PP_WHILE_145, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(145, s)) +# define MSGPACK_PP_WHILE_145(p, o, s) MSGPACK_PP_IF(p(146, s), MSGPACK_PP_WHILE_146, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(146, s)) +# define MSGPACK_PP_WHILE_146(p, o, s) MSGPACK_PP_IF(p(147, s), MSGPACK_PP_WHILE_147, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(147, s)) +# define MSGPACK_PP_WHILE_147(p, o, s) MSGPACK_PP_IF(p(148, s), MSGPACK_PP_WHILE_148, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(148, s)) +# define MSGPACK_PP_WHILE_148(p, o, s) MSGPACK_PP_IF(p(149, s), MSGPACK_PP_WHILE_149, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(149, s)) +# define MSGPACK_PP_WHILE_149(p, o, s) MSGPACK_PP_IF(p(150, s), MSGPACK_PP_WHILE_150, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(150, s)) +# define MSGPACK_PP_WHILE_150(p, o, s) MSGPACK_PP_IF(p(151, s), MSGPACK_PP_WHILE_151, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(151, s)) +# define MSGPACK_PP_WHILE_151(p, o, s) MSGPACK_PP_IF(p(152, s), MSGPACK_PP_WHILE_152, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(152, s)) +# define MSGPACK_PP_WHILE_152(p, o, s) MSGPACK_PP_IF(p(153, s), MSGPACK_PP_WHILE_153, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(153, s)) +# define MSGPACK_PP_WHILE_153(p, o, s) MSGPACK_PP_IF(p(154, s), MSGPACK_PP_WHILE_154, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(154, s)) +# define MSGPACK_PP_WHILE_154(p, o, s) MSGPACK_PP_IF(p(155, s), MSGPACK_PP_WHILE_155, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(155, s)) +# define MSGPACK_PP_WHILE_155(p, o, s) MSGPACK_PP_IF(p(156, s), MSGPACK_PP_WHILE_156, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(156, s)) +# define MSGPACK_PP_WHILE_156(p, o, s) MSGPACK_PP_IF(p(157, s), MSGPACK_PP_WHILE_157, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(157, s)) +# define MSGPACK_PP_WHILE_157(p, o, s) MSGPACK_PP_IF(p(158, s), MSGPACK_PP_WHILE_158, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(158, s)) +# define MSGPACK_PP_WHILE_158(p, o, s) MSGPACK_PP_IF(p(159, s), MSGPACK_PP_WHILE_159, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(159, s)) +# define MSGPACK_PP_WHILE_159(p, o, s) MSGPACK_PP_IF(p(160, s), MSGPACK_PP_WHILE_160, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(160, s)) +# define MSGPACK_PP_WHILE_160(p, o, s) MSGPACK_PP_IF(p(161, s), MSGPACK_PP_WHILE_161, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(161, s)) +# define MSGPACK_PP_WHILE_161(p, o, s) MSGPACK_PP_IF(p(162, s), MSGPACK_PP_WHILE_162, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(162, s)) +# define MSGPACK_PP_WHILE_162(p, o, s) MSGPACK_PP_IF(p(163, s), MSGPACK_PP_WHILE_163, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(163, s)) +# define MSGPACK_PP_WHILE_163(p, o, s) MSGPACK_PP_IF(p(164, s), MSGPACK_PP_WHILE_164, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(164, s)) +# define MSGPACK_PP_WHILE_164(p, o, s) MSGPACK_PP_IF(p(165, s), MSGPACK_PP_WHILE_165, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(165, s)) +# define MSGPACK_PP_WHILE_165(p, o, s) MSGPACK_PP_IF(p(166, s), MSGPACK_PP_WHILE_166, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(166, s)) +# define MSGPACK_PP_WHILE_166(p, o, s) MSGPACK_PP_IF(p(167, s), MSGPACK_PP_WHILE_167, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(167, s)) +# define MSGPACK_PP_WHILE_167(p, o, s) MSGPACK_PP_IF(p(168, s), MSGPACK_PP_WHILE_168, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(168, s)) +# define MSGPACK_PP_WHILE_168(p, o, s) MSGPACK_PP_IF(p(169, s), MSGPACK_PP_WHILE_169, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(169, s)) +# define MSGPACK_PP_WHILE_169(p, o, s) MSGPACK_PP_IF(p(170, s), MSGPACK_PP_WHILE_170, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(170, s)) +# define MSGPACK_PP_WHILE_170(p, o, s) MSGPACK_PP_IF(p(171, s), MSGPACK_PP_WHILE_171, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(171, s)) +# define MSGPACK_PP_WHILE_171(p, o, s) MSGPACK_PP_IF(p(172, s), MSGPACK_PP_WHILE_172, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(172, s)) +# define MSGPACK_PP_WHILE_172(p, o, s) MSGPACK_PP_IF(p(173, s), MSGPACK_PP_WHILE_173, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(173, s)) +# define MSGPACK_PP_WHILE_173(p, o, s) MSGPACK_PP_IF(p(174, s), MSGPACK_PP_WHILE_174, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(174, s)) +# define MSGPACK_PP_WHILE_174(p, o, s) MSGPACK_PP_IF(p(175, s), MSGPACK_PP_WHILE_175, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(175, s)) +# define MSGPACK_PP_WHILE_175(p, o, s) MSGPACK_PP_IF(p(176, s), MSGPACK_PP_WHILE_176, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(176, s)) +# define MSGPACK_PP_WHILE_176(p, o, s) MSGPACK_PP_IF(p(177, s), MSGPACK_PP_WHILE_177, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(177, s)) +# define MSGPACK_PP_WHILE_177(p, o, s) MSGPACK_PP_IF(p(178, s), MSGPACK_PP_WHILE_178, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(178, s)) +# define MSGPACK_PP_WHILE_178(p, o, s) MSGPACK_PP_IF(p(179, s), MSGPACK_PP_WHILE_179, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(179, s)) +# define MSGPACK_PP_WHILE_179(p, o, s) MSGPACK_PP_IF(p(180, s), MSGPACK_PP_WHILE_180, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(180, s)) +# define MSGPACK_PP_WHILE_180(p, o, s) MSGPACK_PP_IF(p(181, s), MSGPACK_PP_WHILE_181, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(181, s)) +# define MSGPACK_PP_WHILE_181(p, o, s) MSGPACK_PP_IF(p(182, s), MSGPACK_PP_WHILE_182, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(182, s)) +# define MSGPACK_PP_WHILE_182(p, o, s) MSGPACK_PP_IF(p(183, s), MSGPACK_PP_WHILE_183, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(183, s)) +# define MSGPACK_PP_WHILE_183(p, o, s) MSGPACK_PP_IF(p(184, s), MSGPACK_PP_WHILE_184, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(184, s)) +# define MSGPACK_PP_WHILE_184(p, o, s) MSGPACK_PP_IF(p(185, s), MSGPACK_PP_WHILE_185, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(185, s)) +# define MSGPACK_PP_WHILE_185(p, o, s) MSGPACK_PP_IF(p(186, s), MSGPACK_PP_WHILE_186, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(186, s)) +# define MSGPACK_PP_WHILE_186(p, o, s) MSGPACK_PP_IF(p(187, s), MSGPACK_PP_WHILE_187, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(187, s)) +# define MSGPACK_PP_WHILE_187(p, o, s) MSGPACK_PP_IF(p(188, s), MSGPACK_PP_WHILE_188, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(188, s)) +# define MSGPACK_PP_WHILE_188(p, o, s) MSGPACK_PP_IF(p(189, s), MSGPACK_PP_WHILE_189, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(189, s)) +# define MSGPACK_PP_WHILE_189(p, o, s) MSGPACK_PP_IF(p(190, s), MSGPACK_PP_WHILE_190, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(190, s)) +# define MSGPACK_PP_WHILE_190(p, o, s) MSGPACK_PP_IF(p(191, s), MSGPACK_PP_WHILE_191, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(191, s)) +# define MSGPACK_PP_WHILE_191(p, o, s) MSGPACK_PP_IF(p(192, s), MSGPACK_PP_WHILE_192, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(192, s)) +# define MSGPACK_PP_WHILE_192(p, o, s) MSGPACK_PP_IF(p(193, s), MSGPACK_PP_WHILE_193, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(193, s)) +# define MSGPACK_PP_WHILE_193(p, o, s) MSGPACK_PP_IF(p(194, s), MSGPACK_PP_WHILE_194, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(194, s)) +# define MSGPACK_PP_WHILE_194(p, o, s) MSGPACK_PP_IF(p(195, s), MSGPACK_PP_WHILE_195, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(195, s)) +# define MSGPACK_PP_WHILE_195(p, o, s) MSGPACK_PP_IF(p(196, s), MSGPACK_PP_WHILE_196, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(196, s)) +# define MSGPACK_PP_WHILE_196(p, o, s) MSGPACK_PP_IF(p(197, s), MSGPACK_PP_WHILE_197, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(197, s)) +# define MSGPACK_PP_WHILE_197(p, o, s) MSGPACK_PP_IF(p(198, s), MSGPACK_PP_WHILE_198, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(198, s)) +# define MSGPACK_PP_WHILE_198(p, o, s) MSGPACK_PP_IF(p(199, s), MSGPACK_PP_WHILE_199, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(199, s)) +# define MSGPACK_PP_WHILE_199(p, o, s) MSGPACK_PP_IF(p(200, s), MSGPACK_PP_WHILE_200, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(200, s)) +# define MSGPACK_PP_WHILE_200(p, o, s) MSGPACK_PP_IF(p(201, s), MSGPACK_PP_WHILE_201, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(201, s)) +# define MSGPACK_PP_WHILE_201(p, o, s) MSGPACK_PP_IF(p(202, s), MSGPACK_PP_WHILE_202, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(202, s)) +# define MSGPACK_PP_WHILE_202(p, o, s) MSGPACK_PP_IF(p(203, s), MSGPACK_PP_WHILE_203, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(203, s)) +# define MSGPACK_PP_WHILE_203(p, o, s) MSGPACK_PP_IF(p(204, s), MSGPACK_PP_WHILE_204, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(204, s)) +# define MSGPACK_PP_WHILE_204(p, o, s) MSGPACK_PP_IF(p(205, s), MSGPACK_PP_WHILE_205, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(205, s)) +# define MSGPACK_PP_WHILE_205(p, o, s) MSGPACK_PP_IF(p(206, s), MSGPACK_PP_WHILE_206, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(206, s)) +# define MSGPACK_PP_WHILE_206(p, o, s) MSGPACK_PP_IF(p(207, s), MSGPACK_PP_WHILE_207, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(207, s)) +# define MSGPACK_PP_WHILE_207(p, o, s) MSGPACK_PP_IF(p(208, s), MSGPACK_PP_WHILE_208, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(208, s)) +# define MSGPACK_PP_WHILE_208(p, o, s) MSGPACK_PP_IF(p(209, s), MSGPACK_PP_WHILE_209, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(209, s)) +# define MSGPACK_PP_WHILE_209(p, o, s) MSGPACK_PP_IF(p(210, s), MSGPACK_PP_WHILE_210, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(210, s)) +# define MSGPACK_PP_WHILE_210(p, o, s) MSGPACK_PP_IF(p(211, s), MSGPACK_PP_WHILE_211, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(211, s)) +# define MSGPACK_PP_WHILE_211(p, o, s) MSGPACK_PP_IF(p(212, s), MSGPACK_PP_WHILE_212, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(212, s)) +# define MSGPACK_PP_WHILE_212(p, o, s) MSGPACK_PP_IF(p(213, s), MSGPACK_PP_WHILE_213, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(213, s)) +# define MSGPACK_PP_WHILE_213(p, o, s) MSGPACK_PP_IF(p(214, s), MSGPACK_PP_WHILE_214, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(214, s)) +# define MSGPACK_PP_WHILE_214(p, o, s) MSGPACK_PP_IF(p(215, s), MSGPACK_PP_WHILE_215, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(215, s)) +# define MSGPACK_PP_WHILE_215(p, o, s) MSGPACK_PP_IF(p(216, s), MSGPACK_PP_WHILE_216, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(216, s)) +# define MSGPACK_PP_WHILE_216(p, o, s) MSGPACK_PP_IF(p(217, s), MSGPACK_PP_WHILE_217, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(217, s)) +# define MSGPACK_PP_WHILE_217(p, o, s) MSGPACK_PP_IF(p(218, s), MSGPACK_PP_WHILE_218, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(218, s)) +# define MSGPACK_PP_WHILE_218(p, o, s) MSGPACK_PP_IF(p(219, s), MSGPACK_PP_WHILE_219, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(219, s)) +# define MSGPACK_PP_WHILE_219(p, o, s) MSGPACK_PP_IF(p(220, s), MSGPACK_PP_WHILE_220, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(220, s)) +# define MSGPACK_PP_WHILE_220(p, o, s) MSGPACK_PP_IF(p(221, s), MSGPACK_PP_WHILE_221, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(221, s)) +# define MSGPACK_PP_WHILE_221(p, o, s) MSGPACK_PP_IF(p(222, s), MSGPACK_PP_WHILE_222, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(222, s)) +# define MSGPACK_PP_WHILE_222(p, o, s) MSGPACK_PP_IF(p(223, s), MSGPACK_PP_WHILE_223, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(223, s)) +# define MSGPACK_PP_WHILE_223(p, o, s) MSGPACK_PP_IF(p(224, s), MSGPACK_PP_WHILE_224, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(224, s)) +# define MSGPACK_PP_WHILE_224(p, o, s) MSGPACK_PP_IF(p(225, s), MSGPACK_PP_WHILE_225, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(225, s)) +# define MSGPACK_PP_WHILE_225(p, o, s) MSGPACK_PP_IF(p(226, s), MSGPACK_PP_WHILE_226, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(226, s)) +# define MSGPACK_PP_WHILE_226(p, o, s) MSGPACK_PP_IF(p(227, s), MSGPACK_PP_WHILE_227, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(227, s)) +# define MSGPACK_PP_WHILE_227(p, o, s) MSGPACK_PP_IF(p(228, s), MSGPACK_PP_WHILE_228, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(228, s)) +# define MSGPACK_PP_WHILE_228(p, o, s) MSGPACK_PP_IF(p(229, s), MSGPACK_PP_WHILE_229, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(229, s)) +# define MSGPACK_PP_WHILE_229(p, o, s) MSGPACK_PP_IF(p(230, s), MSGPACK_PP_WHILE_230, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(230, s)) +# define MSGPACK_PP_WHILE_230(p, o, s) MSGPACK_PP_IF(p(231, s), MSGPACK_PP_WHILE_231, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(231, s)) +# define MSGPACK_PP_WHILE_231(p, o, s) MSGPACK_PP_IF(p(232, s), MSGPACK_PP_WHILE_232, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(232, s)) +# define MSGPACK_PP_WHILE_232(p, o, s) MSGPACK_PP_IF(p(233, s), MSGPACK_PP_WHILE_233, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(233, s)) +# define MSGPACK_PP_WHILE_233(p, o, s) MSGPACK_PP_IF(p(234, s), MSGPACK_PP_WHILE_234, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(234, s)) +# define MSGPACK_PP_WHILE_234(p, o, s) MSGPACK_PP_IF(p(235, s), MSGPACK_PP_WHILE_235, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(235, s)) +# define MSGPACK_PP_WHILE_235(p, o, s) MSGPACK_PP_IF(p(236, s), MSGPACK_PP_WHILE_236, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(236, s)) +# define MSGPACK_PP_WHILE_236(p, o, s) MSGPACK_PP_IF(p(237, s), MSGPACK_PP_WHILE_237, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(237, s)) +# define MSGPACK_PP_WHILE_237(p, o, s) MSGPACK_PP_IF(p(238, s), MSGPACK_PP_WHILE_238, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(238, s)) +# define MSGPACK_PP_WHILE_238(p, o, s) MSGPACK_PP_IF(p(239, s), MSGPACK_PP_WHILE_239, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(239, s)) +# define MSGPACK_PP_WHILE_239(p, o, s) MSGPACK_PP_IF(p(240, s), MSGPACK_PP_WHILE_240, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(240, s)) +# define MSGPACK_PP_WHILE_240(p, o, s) MSGPACK_PP_IF(p(241, s), MSGPACK_PP_WHILE_241, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(241, s)) +# define MSGPACK_PP_WHILE_241(p, o, s) MSGPACK_PP_IF(p(242, s), MSGPACK_PP_WHILE_242, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(242, s)) +# define MSGPACK_PP_WHILE_242(p, o, s) MSGPACK_PP_IF(p(243, s), MSGPACK_PP_WHILE_243, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(243, s)) +# define MSGPACK_PP_WHILE_243(p, o, s) MSGPACK_PP_IF(p(244, s), MSGPACK_PP_WHILE_244, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(244, s)) +# define MSGPACK_PP_WHILE_244(p, o, s) MSGPACK_PP_IF(p(245, s), MSGPACK_PP_WHILE_245, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(245, s)) +# define MSGPACK_PP_WHILE_245(p, o, s) MSGPACK_PP_IF(p(246, s), MSGPACK_PP_WHILE_246, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(246, s)) +# define MSGPACK_PP_WHILE_246(p, o, s) MSGPACK_PP_IF(p(247, s), MSGPACK_PP_WHILE_247, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(247, s)) +# define MSGPACK_PP_WHILE_247(p, o, s) MSGPACK_PP_IF(p(248, s), MSGPACK_PP_WHILE_248, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(248, s)) +# define MSGPACK_PP_WHILE_248(p, o, s) MSGPACK_PP_IF(p(249, s), MSGPACK_PP_WHILE_249, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(249, s)) +# define MSGPACK_PP_WHILE_249(p, o, s) MSGPACK_PP_IF(p(250, s), MSGPACK_PP_WHILE_250, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(250, s)) +# define MSGPACK_PP_WHILE_250(p, o, s) MSGPACK_PP_IF(p(251, s), MSGPACK_PP_WHILE_251, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(251, s)) +# define MSGPACK_PP_WHILE_251(p, o, s) MSGPACK_PP_IF(p(252, s), MSGPACK_PP_WHILE_252, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(252, s)) +# define MSGPACK_PP_WHILE_252(p, o, s) MSGPACK_PP_IF(p(253, s), MSGPACK_PP_WHILE_253, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(253, s)) +# define MSGPACK_PP_WHILE_253(p, o, s) MSGPACK_PP_IF(p(254, s), MSGPACK_PP_WHILE_254, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(254, s)) +# define MSGPACK_PP_WHILE_254(p, o, s) MSGPACK_PP_IF(p(255, s), MSGPACK_PP_WHILE_255, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(255, s)) +# define MSGPACK_PP_WHILE_255(p, o, s) MSGPACK_PP_IF(p(256, s), MSGPACK_PP_WHILE_256, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(256, s)) +# define MSGPACK_PP_WHILE_256(p, o, s) MSGPACK_PP_IF(p(257, s), MSGPACK_PP_WHILE_257, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(257, s)) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/control/detail/while.hpp b/third_party/msgpack/include/msgpack/preprocessor/control/detail/while.hpp new file mode 100644 index 000000000000..5cfda144b281 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/control/detail/while.hpp @@ -0,0 +1,536 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP +# define MSGPACK_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP +# +# include +# include +# include +# +# define MSGPACK_PP_WHILE_1(p, o, s) MSGPACK_PP_WHILE_1_C(MSGPACK_PP_BOOL(p(2, s)), p, o, s) +# define MSGPACK_PP_WHILE_2(p, o, s) MSGPACK_PP_WHILE_2_C(MSGPACK_PP_BOOL(p(3, s)), p, o, s) +# define MSGPACK_PP_WHILE_3(p, o, s) MSGPACK_PP_WHILE_3_C(MSGPACK_PP_BOOL(p(4, s)), p, o, s) +# define MSGPACK_PP_WHILE_4(p, o, s) MSGPACK_PP_WHILE_4_C(MSGPACK_PP_BOOL(p(5, s)), p, o, s) +# define MSGPACK_PP_WHILE_5(p, o, s) MSGPACK_PP_WHILE_5_C(MSGPACK_PP_BOOL(p(6, s)), p, o, s) +# define MSGPACK_PP_WHILE_6(p, o, s) MSGPACK_PP_WHILE_6_C(MSGPACK_PP_BOOL(p(7, s)), p, o, s) +# define MSGPACK_PP_WHILE_7(p, o, s) MSGPACK_PP_WHILE_7_C(MSGPACK_PP_BOOL(p(8, s)), p, o, s) +# define MSGPACK_PP_WHILE_8(p, o, s) MSGPACK_PP_WHILE_8_C(MSGPACK_PP_BOOL(p(9, s)), p, o, s) +# define MSGPACK_PP_WHILE_9(p, o, s) MSGPACK_PP_WHILE_9_C(MSGPACK_PP_BOOL(p(10, s)), p, o, s) +# define MSGPACK_PP_WHILE_10(p, o, s) MSGPACK_PP_WHILE_10_C(MSGPACK_PP_BOOL(p(11, s)), p, o, s) +# define MSGPACK_PP_WHILE_11(p, o, s) MSGPACK_PP_WHILE_11_C(MSGPACK_PP_BOOL(p(12, s)), p, o, s) +# define MSGPACK_PP_WHILE_12(p, o, s) MSGPACK_PP_WHILE_12_C(MSGPACK_PP_BOOL(p(13, s)), p, o, s) +# define MSGPACK_PP_WHILE_13(p, o, s) MSGPACK_PP_WHILE_13_C(MSGPACK_PP_BOOL(p(14, s)), p, o, s) +# define MSGPACK_PP_WHILE_14(p, o, s) MSGPACK_PP_WHILE_14_C(MSGPACK_PP_BOOL(p(15, s)), p, o, s) +# define MSGPACK_PP_WHILE_15(p, o, s) MSGPACK_PP_WHILE_15_C(MSGPACK_PP_BOOL(p(16, s)), p, o, s) +# define MSGPACK_PP_WHILE_16(p, o, s) MSGPACK_PP_WHILE_16_C(MSGPACK_PP_BOOL(p(17, s)), p, o, s) +# define MSGPACK_PP_WHILE_17(p, o, s) MSGPACK_PP_WHILE_17_C(MSGPACK_PP_BOOL(p(18, s)), p, o, s) +# define MSGPACK_PP_WHILE_18(p, o, s) MSGPACK_PP_WHILE_18_C(MSGPACK_PP_BOOL(p(19, s)), p, o, s) +# define MSGPACK_PP_WHILE_19(p, o, s) MSGPACK_PP_WHILE_19_C(MSGPACK_PP_BOOL(p(20, s)), p, o, s) +# define MSGPACK_PP_WHILE_20(p, o, s) MSGPACK_PP_WHILE_20_C(MSGPACK_PP_BOOL(p(21, s)), p, o, s) +# define MSGPACK_PP_WHILE_21(p, o, s) MSGPACK_PP_WHILE_21_C(MSGPACK_PP_BOOL(p(22, s)), p, o, s) +# define MSGPACK_PP_WHILE_22(p, o, s) MSGPACK_PP_WHILE_22_C(MSGPACK_PP_BOOL(p(23, s)), p, o, s) +# define MSGPACK_PP_WHILE_23(p, o, s) MSGPACK_PP_WHILE_23_C(MSGPACK_PP_BOOL(p(24, s)), p, o, s) +# define MSGPACK_PP_WHILE_24(p, o, s) MSGPACK_PP_WHILE_24_C(MSGPACK_PP_BOOL(p(25, s)), p, o, s) +# define MSGPACK_PP_WHILE_25(p, o, s) MSGPACK_PP_WHILE_25_C(MSGPACK_PP_BOOL(p(26, s)), p, o, s) +# define MSGPACK_PP_WHILE_26(p, o, s) MSGPACK_PP_WHILE_26_C(MSGPACK_PP_BOOL(p(27, s)), p, o, s) +# define MSGPACK_PP_WHILE_27(p, o, s) MSGPACK_PP_WHILE_27_C(MSGPACK_PP_BOOL(p(28, s)), p, o, s) +# define MSGPACK_PP_WHILE_28(p, o, s) MSGPACK_PP_WHILE_28_C(MSGPACK_PP_BOOL(p(29, s)), p, o, s) +# define MSGPACK_PP_WHILE_29(p, o, s) MSGPACK_PP_WHILE_29_C(MSGPACK_PP_BOOL(p(30, s)), p, o, s) +# define MSGPACK_PP_WHILE_30(p, o, s) MSGPACK_PP_WHILE_30_C(MSGPACK_PP_BOOL(p(31, s)), p, o, s) +# define MSGPACK_PP_WHILE_31(p, o, s) MSGPACK_PP_WHILE_31_C(MSGPACK_PP_BOOL(p(32, s)), p, o, s) +# define MSGPACK_PP_WHILE_32(p, o, s) MSGPACK_PP_WHILE_32_C(MSGPACK_PP_BOOL(p(33, s)), p, o, s) +# define MSGPACK_PP_WHILE_33(p, o, s) MSGPACK_PP_WHILE_33_C(MSGPACK_PP_BOOL(p(34, s)), p, o, s) +# define MSGPACK_PP_WHILE_34(p, o, s) MSGPACK_PP_WHILE_34_C(MSGPACK_PP_BOOL(p(35, s)), p, o, s) +# define MSGPACK_PP_WHILE_35(p, o, s) MSGPACK_PP_WHILE_35_C(MSGPACK_PP_BOOL(p(36, s)), p, o, s) +# define MSGPACK_PP_WHILE_36(p, o, s) MSGPACK_PP_WHILE_36_C(MSGPACK_PP_BOOL(p(37, s)), p, o, s) +# define MSGPACK_PP_WHILE_37(p, o, s) MSGPACK_PP_WHILE_37_C(MSGPACK_PP_BOOL(p(38, s)), p, o, s) +# define MSGPACK_PP_WHILE_38(p, o, s) MSGPACK_PP_WHILE_38_C(MSGPACK_PP_BOOL(p(39, s)), p, o, s) +# define MSGPACK_PP_WHILE_39(p, o, s) MSGPACK_PP_WHILE_39_C(MSGPACK_PP_BOOL(p(40, s)), p, o, s) +# define MSGPACK_PP_WHILE_40(p, o, s) MSGPACK_PP_WHILE_40_C(MSGPACK_PP_BOOL(p(41, s)), p, o, s) +# define MSGPACK_PP_WHILE_41(p, o, s) MSGPACK_PP_WHILE_41_C(MSGPACK_PP_BOOL(p(42, s)), p, o, s) +# define MSGPACK_PP_WHILE_42(p, o, s) MSGPACK_PP_WHILE_42_C(MSGPACK_PP_BOOL(p(43, s)), p, o, s) +# define MSGPACK_PP_WHILE_43(p, o, s) MSGPACK_PP_WHILE_43_C(MSGPACK_PP_BOOL(p(44, s)), p, o, s) +# define MSGPACK_PP_WHILE_44(p, o, s) MSGPACK_PP_WHILE_44_C(MSGPACK_PP_BOOL(p(45, s)), p, o, s) +# define MSGPACK_PP_WHILE_45(p, o, s) MSGPACK_PP_WHILE_45_C(MSGPACK_PP_BOOL(p(46, s)), p, o, s) +# define MSGPACK_PP_WHILE_46(p, o, s) MSGPACK_PP_WHILE_46_C(MSGPACK_PP_BOOL(p(47, s)), p, o, s) +# define MSGPACK_PP_WHILE_47(p, o, s) MSGPACK_PP_WHILE_47_C(MSGPACK_PP_BOOL(p(48, s)), p, o, s) +# define MSGPACK_PP_WHILE_48(p, o, s) MSGPACK_PP_WHILE_48_C(MSGPACK_PP_BOOL(p(49, s)), p, o, s) +# define MSGPACK_PP_WHILE_49(p, o, s) MSGPACK_PP_WHILE_49_C(MSGPACK_PP_BOOL(p(50, s)), p, o, s) +# define MSGPACK_PP_WHILE_50(p, o, s) MSGPACK_PP_WHILE_50_C(MSGPACK_PP_BOOL(p(51, s)), p, o, s) +# define MSGPACK_PP_WHILE_51(p, o, s) MSGPACK_PP_WHILE_51_C(MSGPACK_PP_BOOL(p(52, s)), p, o, s) +# define MSGPACK_PP_WHILE_52(p, o, s) MSGPACK_PP_WHILE_52_C(MSGPACK_PP_BOOL(p(53, s)), p, o, s) +# define MSGPACK_PP_WHILE_53(p, o, s) MSGPACK_PP_WHILE_53_C(MSGPACK_PP_BOOL(p(54, s)), p, o, s) +# define MSGPACK_PP_WHILE_54(p, o, s) MSGPACK_PP_WHILE_54_C(MSGPACK_PP_BOOL(p(55, s)), p, o, s) +# define MSGPACK_PP_WHILE_55(p, o, s) MSGPACK_PP_WHILE_55_C(MSGPACK_PP_BOOL(p(56, s)), p, o, s) +# define MSGPACK_PP_WHILE_56(p, o, s) MSGPACK_PP_WHILE_56_C(MSGPACK_PP_BOOL(p(57, s)), p, o, s) +# define MSGPACK_PP_WHILE_57(p, o, s) MSGPACK_PP_WHILE_57_C(MSGPACK_PP_BOOL(p(58, s)), p, o, s) +# define MSGPACK_PP_WHILE_58(p, o, s) MSGPACK_PP_WHILE_58_C(MSGPACK_PP_BOOL(p(59, s)), p, o, s) +# define MSGPACK_PP_WHILE_59(p, o, s) MSGPACK_PP_WHILE_59_C(MSGPACK_PP_BOOL(p(60, s)), p, o, s) +# define MSGPACK_PP_WHILE_60(p, o, s) MSGPACK_PP_WHILE_60_C(MSGPACK_PP_BOOL(p(61, s)), p, o, s) +# define MSGPACK_PP_WHILE_61(p, o, s) MSGPACK_PP_WHILE_61_C(MSGPACK_PP_BOOL(p(62, s)), p, o, s) +# define MSGPACK_PP_WHILE_62(p, o, s) MSGPACK_PP_WHILE_62_C(MSGPACK_PP_BOOL(p(63, s)), p, o, s) +# define MSGPACK_PP_WHILE_63(p, o, s) MSGPACK_PP_WHILE_63_C(MSGPACK_PP_BOOL(p(64, s)), p, o, s) +# define MSGPACK_PP_WHILE_64(p, o, s) MSGPACK_PP_WHILE_64_C(MSGPACK_PP_BOOL(p(65, s)), p, o, s) +# define MSGPACK_PP_WHILE_65(p, o, s) MSGPACK_PP_WHILE_65_C(MSGPACK_PP_BOOL(p(66, s)), p, o, s) +# define MSGPACK_PP_WHILE_66(p, o, s) MSGPACK_PP_WHILE_66_C(MSGPACK_PP_BOOL(p(67, s)), p, o, s) +# define MSGPACK_PP_WHILE_67(p, o, s) MSGPACK_PP_WHILE_67_C(MSGPACK_PP_BOOL(p(68, s)), p, o, s) +# define MSGPACK_PP_WHILE_68(p, o, s) MSGPACK_PP_WHILE_68_C(MSGPACK_PP_BOOL(p(69, s)), p, o, s) +# define MSGPACK_PP_WHILE_69(p, o, s) MSGPACK_PP_WHILE_69_C(MSGPACK_PP_BOOL(p(70, s)), p, o, s) +# define MSGPACK_PP_WHILE_70(p, o, s) MSGPACK_PP_WHILE_70_C(MSGPACK_PP_BOOL(p(71, s)), p, o, s) +# define MSGPACK_PP_WHILE_71(p, o, s) MSGPACK_PP_WHILE_71_C(MSGPACK_PP_BOOL(p(72, s)), p, o, s) +# define MSGPACK_PP_WHILE_72(p, o, s) MSGPACK_PP_WHILE_72_C(MSGPACK_PP_BOOL(p(73, s)), p, o, s) +# define MSGPACK_PP_WHILE_73(p, o, s) MSGPACK_PP_WHILE_73_C(MSGPACK_PP_BOOL(p(74, s)), p, o, s) +# define MSGPACK_PP_WHILE_74(p, o, s) MSGPACK_PP_WHILE_74_C(MSGPACK_PP_BOOL(p(75, s)), p, o, s) +# define MSGPACK_PP_WHILE_75(p, o, s) MSGPACK_PP_WHILE_75_C(MSGPACK_PP_BOOL(p(76, s)), p, o, s) +# define MSGPACK_PP_WHILE_76(p, o, s) MSGPACK_PP_WHILE_76_C(MSGPACK_PP_BOOL(p(77, s)), p, o, s) +# define MSGPACK_PP_WHILE_77(p, o, s) MSGPACK_PP_WHILE_77_C(MSGPACK_PP_BOOL(p(78, s)), p, o, s) +# define MSGPACK_PP_WHILE_78(p, o, s) MSGPACK_PP_WHILE_78_C(MSGPACK_PP_BOOL(p(79, s)), p, o, s) +# define MSGPACK_PP_WHILE_79(p, o, s) MSGPACK_PP_WHILE_79_C(MSGPACK_PP_BOOL(p(80, s)), p, o, s) +# define MSGPACK_PP_WHILE_80(p, o, s) MSGPACK_PP_WHILE_80_C(MSGPACK_PP_BOOL(p(81, s)), p, o, s) +# define MSGPACK_PP_WHILE_81(p, o, s) MSGPACK_PP_WHILE_81_C(MSGPACK_PP_BOOL(p(82, s)), p, o, s) +# define MSGPACK_PP_WHILE_82(p, o, s) MSGPACK_PP_WHILE_82_C(MSGPACK_PP_BOOL(p(83, s)), p, o, s) +# define MSGPACK_PP_WHILE_83(p, o, s) MSGPACK_PP_WHILE_83_C(MSGPACK_PP_BOOL(p(84, s)), p, o, s) +# define MSGPACK_PP_WHILE_84(p, o, s) MSGPACK_PP_WHILE_84_C(MSGPACK_PP_BOOL(p(85, s)), p, o, s) +# define MSGPACK_PP_WHILE_85(p, o, s) MSGPACK_PP_WHILE_85_C(MSGPACK_PP_BOOL(p(86, s)), p, o, s) +# define MSGPACK_PP_WHILE_86(p, o, s) MSGPACK_PP_WHILE_86_C(MSGPACK_PP_BOOL(p(87, s)), p, o, s) +# define MSGPACK_PP_WHILE_87(p, o, s) MSGPACK_PP_WHILE_87_C(MSGPACK_PP_BOOL(p(88, s)), p, o, s) +# define MSGPACK_PP_WHILE_88(p, o, s) MSGPACK_PP_WHILE_88_C(MSGPACK_PP_BOOL(p(89, s)), p, o, s) +# define MSGPACK_PP_WHILE_89(p, o, s) MSGPACK_PP_WHILE_89_C(MSGPACK_PP_BOOL(p(90, s)), p, o, s) +# define MSGPACK_PP_WHILE_90(p, o, s) MSGPACK_PP_WHILE_90_C(MSGPACK_PP_BOOL(p(91, s)), p, o, s) +# define MSGPACK_PP_WHILE_91(p, o, s) MSGPACK_PP_WHILE_91_C(MSGPACK_PP_BOOL(p(92, s)), p, o, s) +# define MSGPACK_PP_WHILE_92(p, o, s) MSGPACK_PP_WHILE_92_C(MSGPACK_PP_BOOL(p(93, s)), p, o, s) +# define MSGPACK_PP_WHILE_93(p, o, s) MSGPACK_PP_WHILE_93_C(MSGPACK_PP_BOOL(p(94, s)), p, o, s) +# define MSGPACK_PP_WHILE_94(p, o, s) MSGPACK_PP_WHILE_94_C(MSGPACK_PP_BOOL(p(95, s)), p, o, s) +# define MSGPACK_PP_WHILE_95(p, o, s) MSGPACK_PP_WHILE_95_C(MSGPACK_PP_BOOL(p(96, s)), p, o, s) +# define MSGPACK_PP_WHILE_96(p, o, s) MSGPACK_PP_WHILE_96_C(MSGPACK_PP_BOOL(p(97, s)), p, o, s) +# define MSGPACK_PP_WHILE_97(p, o, s) MSGPACK_PP_WHILE_97_C(MSGPACK_PP_BOOL(p(98, s)), p, o, s) +# define MSGPACK_PP_WHILE_98(p, o, s) MSGPACK_PP_WHILE_98_C(MSGPACK_PP_BOOL(p(99, s)), p, o, s) +# define MSGPACK_PP_WHILE_99(p, o, s) MSGPACK_PP_WHILE_99_C(MSGPACK_PP_BOOL(p(100, s)), p, o, s) +# define MSGPACK_PP_WHILE_100(p, o, s) MSGPACK_PP_WHILE_100_C(MSGPACK_PP_BOOL(p(101, s)), p, o, s) +# define MSGPACK_PP_WHILE_101(p, o, s) MSGPACK_PP_WHILE_101_C(MSGPACK_PP_BOOL(p(102, s)), p, o, s) +# define MSGPACK_PP_WHILE_102(p, o, s) MSGPACK_PP_WHILE_102_C(MSGPACK_PP_BOOL(p(103, s)), p, o, s) +# define MSGPACK_PP_WHILE_103(p, o, s) MSGPACK_PP_WHILE_103_C(MSGPACK_PP_BOOL(p(104, s)), p, o, s) +# define MSGPACK_PP_WHILE_104(p, o, s) MSGPACK_PP_WHILE_104_C(MSGPACK_PP_BOOL(p(105, s)), p, o, s) +# define MSGPACK_PP_WHILE_105(p, o, s) MSGPACK_PP_WHILE_105_C(MSGPACK_PP_BOOL(p(106, s)), p, o, s) +# define MSGPACK_PP_WHILE_106(p, o, s) MSGPACK_PP_WHILE_106_C(MSGPACK_PP_BOOL(p(107, s)), p, o, s) +# define MSGPACK_PP_WHILE_107(p, o, s) MSGPACK_PP_WHILE_107_C(MSGPACK_PP_BOOL(p(108, s)), p, o, s) +# define MSGPACK_PP_WHILE_108(p, o, s) MSGPACK_PP_WHILE_108_C(MSGPACK_PP_BOOL(p(109, s)), p, o, s) +# define MSGPACK_PP_WHILE_109(p, o, s) MSGPACK_PP_WHILE_109_C(MSGPACK_PP_BOOL(p(110, s)), p, o, s) +# define MSGPACK_PP_WHILE_110(p, o, s) MSGPACK_PP_WHILE_110_C(MSGPACK_PP_BOOL(p(111, s)), p, o, s) +# define MSGPACK_PP_WHILE_111(p, o, s) MSGPACK_PP_WHILE_111_C(MSGPACK_PP_BOOL(p(112, s)), p, o, s) +# define MSGPACK_PP_WHILE_112(p, o, s) MSGPACK_PP_WHILE_112_C(MSGPACK_PP_BOOL(p(113, s)), p, o, s) +# define MSGPACK_PP_WHILE_113(p, o, s) MSGPACK_PP_WHILE_113_C(MSGPACK_PP_BOOL(p(114, s)), p, o, s) +# define MSGPACK_PP_WHILE_114(p, o, s) MSGPACK_PP_WHILE_114_C(MSGPACK_PP_BOOL(p(115, s)), p, o, s) +# define MSGPACK_PP_WHILE_115(p, o, s) MSGPACK_PP_WHILE_115_C(MSGPACK_PP_BOOL(p(116, s)), p, o, s) +# define MSGPACK_PP_WHILE_116(p, o, s) MSGPACK_PP_WHILE_116_C(MSGPACK_PP_BOOL(p(117, s)), p, o, s) +# define MSGPACK_PP_WHILE_117(p, o, s) MSGPACK_PP_WHILE_117_C(MSGPACK_PP_BOOL(p(118, s)), p, o, s) +# define MSGPACK_PP_WHILE_118(p, o, s) MSGPACK_PP_WHILE_118_C(MSGPACK_PP_BOOL(p(119, s)), p, o, s) +# define MSGPACK_PP_WHILE_119(p, o, s) MSGPACK_PP_WHILE_119_C(MSGPACK_PP_BOOL(p(120, s)), p, o, s) +# define MSGPACK_PP_WHILE_120(p, o, s) MSGPACK_PP_WHILE_120_C(MSGPACK_PP_BOOL(p(121, s)), p, o, s) +# define MSGPACK_PP_WHILE_121(p, o, s) MSGPACK_PP_WHILE_121_C(MSGPACK_PP_BOOL(p(122, s)), p, o, s) +# define MSGPACK_PP_WHILE_122(p, o, s) MSGPACK_PP_WHILE_122_C(MSGPACK_PP_BOOL(p(123, s)), p, o, s) +# define MSGPACK_PP_WHILE_123(p, o, s) MSGPACK_PP_WHILE_123_C(MSGPACK_PP_BOOL(p(124, s)), p, o, s) +# define MSGPACK_PP_WHILE_124(p, o, s) MSGPACK_PP_WHILE_124_C(MSGPACK_PP_BOOL(p(125, s)), p, o, s) +# define MSGPACK_PP_WHILE_125(p, o, s) MSGPACK_PP_WHILE_125_C(MSGPACK_PP_BOOL(p(126, s)), p, o, s) +# define MSGPACK_PP_WHILE_126(p, o, s) MSGPACK_PP_WHILE_126_C(MSGPACK_PP_BOOL(p(127, s)), p, o, s) +# define MSGPACK_PP_WHILE_127(p, o, s) MSGPACK_PP_WHILE_127_C(MSGPACK_PP_BOOL(p(128, s)), p, o, s) +# define MSGPACK_PP_WHILE_128(p, o, s) MSGPACK_PP_WHILE_128_C(MSGPACK_PP_BOOL(p(129, s)), p, o, s) +# define MSGPACK_PP_WHILE_129(p, o, s) MSGPACK_PP_WHILE_129_C(MSGPACK_PP_BOOL(p(130, s)), p, o, s) +# define MSGPACK_PP_WHILE_130(p, o, s) MSGPACK_PP_WHILE_130_C(MSGPACK_PP_BOOL(p(131, s)), p, o, s) +# define MSGPACK_PP_WHILE_131(p, o, s) MSGPACK_PP_WHILE_131_C(MSGPACK_PP_BOOL(p(132, s)), p, o, s) +# define MSGPACK_PP_WHILE_132(p, o, s) MSGPACK_PP_WHILE_132_C(MSGPACK_PP_BOOL(p(133, s)), p, o, s) +# define MSGPACK_PP_WHILE_133(p, o, s) MSGPACK_PP_WHILE_133_C(MSGPACK_PP_BOOL(p(134, s)), p, o, s) +# define MSGPACK_PP_WHILE_134(p, o, s) MSGPACK_PP_WHILE_134_C(MSGPACK_PP_BOOL(p(135, s)), p, o, s) +# define MSGPACK_PP_WHILE_135(p, o, s) MSGPACK_PP_WHILE_135_C(MSGPACK_PP_BOOL(p(136, s)), p, o, s) +# define MSGPACK_PP_WHILE_136(p, o, s) MSGPACK_PP_WHILE_136_C(MSGPACK_PP_BOOL(p(137, s)), p, o, s) +# define MSGPACK_PP_WHILE_137(p, o, s) MSGPACK_PP_WHILE_137_C(MSGPACK_PP_BOOL(p(138, s)), p, o, s) +# define MSGPACK_PP_WHILE_138(p, o, s) MSGPACK_PP_WHILE_138_C(MSGPACK_PP_BOOL(p(139, s)), p, o, s) +# define MSGPACK_PP_WHILE_139(p, o, s) MSGPACK_PP_WHILE_139_C(MSGPACK_PP_BOOL(p(140, s)), p, o, s) +# define MSGPACK_PP_WHILE_140(p, o, s) MSGPACK_PP_WHILE_140_C(MSGPACK_PP_BOOL(p(141, s)), p, o, s) +# define MSGPACK_PP_WHILE_141(p, o, s) MSGPACK_PP_WHILE_141_C(MSGPACK_PP_BOOL(p(142, s)), p, o, s) +# define MSGPACK_PP_WHILE_142(p, o, s) MSGPACK_PP_WHILE_142_C(MSGPACK_PP_BOOL(p(143, s)), p, o, s) +# define MSGPACK_PP_WHILE_143(p, o, s) MSGPACK_PP_WHILE_143_C(MSGPACK_PP_BOOL(p(144, s)), p, o, s) +# define MSGPACK_PP_WHILE_144(p, o, s) MSGPACK_PP_WHILE_144_C(MSGPACK_PP_BOOL(p(145, s)), p, o, s) +# define MSGPACK_PP_WHILE_145(p, o, s) MSGPACK_PP_WHILE_145_C(MSGPACK_PP_BOOL(p(146, s)), p, o, s) +# define MSGPACK_PP_WHILE_146(p, o, s) MSGPACK_PP_WHILE_146_C(MSGPACK_PP_BOOL(p(147, s)), p, o, s) +# define MSGPACK_PP_WHILE_147(p, o, s) MSGPACK_PP_WHILE_147_C(MSGPACK_PP_BOOL(p(148, s)), p, o, s) +# define MSGPACK_PP_WHILE_148(p, o, s) MSGPACK_PP_WHILE_148_C(MSGPACK_PP_BOOL(p(149, s)), p, o, s) +# define MSGPACK_PP_WHILE_149(p, o, s) MSGPACK_PP_WHILE_149_C(MSGPACK_PP_BOOL(p(150, s)), p, o, s) +# define MSGPACK_PP_WHILE_150(p, o, s) MSGPACK_PP_WHILE_150_C(MSGPACK_PP_BOOL(p(151, s)), p, o, s) +# define MSGPACK_PP_WHILE_151(p, o, s) MSGPACK_PP_WHILE_151_C(MSGPACK_PP_BOOL(p(152, s)), p, o, s) +# define MSGPACK_PP_WHILE_152(p, o, s) MSGPACK_PP_WHILE_152_C(MSGPACK_PP_BOOL(p(153, s)), p, o, s) +# define MSGPACK_PP_WHILE_153(p, o, s) MSGPACK_PP_WHILE_153_C(MSGPACK_PP_BOOL(p(154, s)), p, o, s) +# define MSGPACK_PP_WHILE_154(p, o, s) MSGPACK_PP_WHILE_154_C(MSGPACK_PP_BOOL(p(155, s)), p, o, s) +# define MSGPACK_PP_WHILE_155(p, o, s) MSGPACK_PP_WHILE_155_C(MSGPACK_PP_BOOL(p(156, s)), p, o, s) +# define MSGPACK_PP_WHILE_156(p, o, s) MSGPACK_PP_WHILE_156_C(MSGPACK_PP_BOOL(p(157, s)), p, o, s) +# define MSGPACK_PP_WHILE_157(p, o, s) MSGPACK_PP_WHILE_157_C(MSGPACK_PP_BOOL(p(158, s)), p, o, s) +# define MSGPACK_PP_WHILE_158(p, o, s) MSGPACK_PP_WHILE_158_C(MSGPACK_PP_BOOL(p(159, s)), p, o, s) +# define MSGPACK_PP_WHILE_159(p, o, s) MSGPACK_PP_WHILE_159_C(MSGPACK_PP_BOOL(p(160, s)), p, o, s) +# define MSGPACK_PP_WHILE_160(p, o, s) MSGPACK_PP_WHILE_160_C(MSGPACK_PP_BOOL(p(161, s)), p, o, s) +# define MSGPACK_PP_WHILE_161(p, o, s) MSGPACK_PP_WHILE_161_C(MSGPACK_PP_BOOL(p(162, s)), p, o, s) +# define MSGPACK_PP_WHILE_162(p, o, s) MSGPACK_PP_WHILE_162_C(MSGPACK_PP_BOOL(p(163, s)), p, o, s) +# define MSGPACK_PP_WHILE_163(p, o, s) MSGPACK_PP_WHILE_163_C(MSGPACK_PP_BOOL(p(164, s)), p, o, s) +# define MSGPACK_PP_WHILE_164(p, o, s) MSGPACK_PP_WHILE_164_C(MSGPACK_PP_BOOL(p(165, s)), p, o, s) +# define MSGPACK_PP_WHILE_165(p, o, s) MSGPACK_PP_WHILE_165_C(MSGPACK_PP_BOOL(p(166, s)), p, o, s) +# define MSGPACK_PP_WHILE_166(p, o, s) MSGPACK_PP_WHILE_166_C(MSGPACK_PP_BOOL(p(167, s)), p, o, s) +# define MSGPACK_PP_WHILE_167(p, o, s) MSGPACK_PP_WHILE_167_C(MSGPACK_PP_BOOL(p(168, s)), p, o, s) +# define MSGPACK_PP_WHILE_168(p, o, s) MSGPACK_PP_WHILE_168_C(MSGPACK_PP_BOOL(p(169, s)), p, o, s) +# define MSGPACK_PP_WHILE_169(p, o, s) MSGPACK_PP_WHILE_169_C(MSGPACK_PP_BOOL(p(170, s)), p, o, s) +# define MSGPACK_PP_WHILE_170(p, o, s) MSGPACK_PP_WHILE_170_C(MSGPACK_PP_BOOL(p(171, s)), p, o, s) +# define MSGPACK_PP_WHILE_171(p, o, s) MSGPACK_PP_WHILE_171_C(MSGPACK_PP_BOOL(p(172, s)), p, o, s) +# define MSGPACK_PP_WHILE_172(p, o, s) MSGPACK_PP_WHILE_172_C(MSGPACK_PP_BOOL(p(173, s)), p, o, s) +# define MSGPACK_PP_WHILE_173(p, o, s) MSGPACK_PP_WHILE_173_C(MSGPACK_PP_BOOL(p(174, s)), p, o, s) +# define MSGPACK_PP_WHILE_174(p, o, s) MSGPACK_PP_WHILE_174_C(MSGPACK_PP_BOOL(p(175, s)), p, o, s) +# define MSGPACK_PP_WHILE_175(p, o, s) MSGPACK_PP_WHILE_175_C(MSGPACK_PP_BOOL(p(176, s)), p, o, s) +# define MSGPACK_PP_WHILE_176(p, o, s) MSGPACK_PP_WHILE_176_C(MSGPACK_PP_BOOL(p(177, s)), p, o, s) +# define MSGPACK_PP_WHILE_177(p, o, s) MSGPACK_PP_WHILE_177_C(MSGPACK_PP_BOOL(p(178, s)), p, o, s) +# define MSGPACK_PP_WHILE_178(p, o, s) MSGPACK_PP_WHILE_178_C(MSGPACK_PP_BOOL(p(179, s)), p, o, s) +# define MSGPACK_PP_WHILE_179(p, o, s) MSGPACK_PP_WHILE_179_C(MSGPACK_PP_BOOL(p(180, s)), p, o, s) +# define MSGPACK_PP_WHILE_180(p, o, s) MSGPACK_PP_WHILE_180_C(MSGPACK_PP_BOOL(p(181, s)), p, o, s) +# define MSGPACK_PP_WHILE_181(p, o, s) MSGPACK_PP_WHILE_181_C(MSGPACK_PP_BOOL(p(182, s)), p, o, s) +# define MSGPACK_PP_WHILE_182(p, o, s) MSGPACK_PP_WHILE_182_C(MSGPACK_PP_BOOL(p(183, s)), p, o, s) +# define MSGPACK_PP_WHILE_183(p, o, s) MSGPACK_PP_WHILE_183_C(MSGPACK_PP_BOOL(p(184, s)), p, o, s) +# define MSGPACK_PP_WHILE_184(p, o, s) MSGPACK_PP_WHILE_184_C(MSGPACK_PP_BOOL(p(185, s)), p, o, s) +# define MSGPACK_PP_WHILE_185(p, o, s) MSGPACK_PP_WHILE_185_C(MSGPACK_PP_BOOL(p(186, s)), p, o, s) +# define MSGPACK_PP_WHILE_186(p, o, s) MSGPACK_PP_WHILE_186_C(MSGPACK_PP_BOOL(p(187, s)), p, o, s) +# define MSGPACK_PP_WHILE_187(p, o, s) MSGPACK_PP_WHILE_187_C(MSGPACK_PP_BOOL(p(188, s)), p, o, s) +# define MSGPACK_PP_WHILE_188(p, o, s) MSGPACK_PP_WHILE_188_C(MSGPACK_PP_BOOL(p(189, s)), p, o, s) +# define MSGPACK_PP_WHILE_189(p, o, s) MSGPACK_PP_WHILE_189_C(MSGPACK_PP_BOOL(p(190, s)), p, o, s) +# define MSGPACK_PP_WHILE_190(p, o, s) MSGPACK_PP_WHILE_190_C(MSGPACK_PP_BOOL(p(191, s)), p, o, s) +# define MSGPACK_PP_WHILE_191(p, o, s) MSGPACK_PP_WHILE_191_C(MSGPACK_PP_BOOL(p(192, s)), p, o, s) +# define MSGPACK_PP_WHILE_192(p, o, s) MSGPACK_PP_WHILE_192_C(MSGPACK_PP_BOOL(p(193, s)), p, o, s) +# define MSGPACK_PP_WHILE_193(p, o, s) MSGPACK_PP_WHILE_193_C(MSGPACK_PP_BOOL(p(194, s)), p, o, s) +# define MSGPACK_PP_WHILE_194(p, o, s) MSGPACK_PP_WHILE_194_C(MSGPACK_PP_BOOL(p(195, s)), p, o, s) +# define MSGPACK_PP_WHILE_195(p, o, s) MSGPACK_PP_WHILE_195_C(MSGPACK_PP_BOOL(p(196, s)), p, o, s) +# define MSGPACK_PP_WHILE_196(p, o, s) MSGPACK_PP_WHILE_196_C(MSGPACK_PP_BOOL(p(197, s)), p, o, s) +# define MSGPACK_PP_WHILE_197(p, o, s) MSGPACK_PP_WHILE_197_C(MSGPACK_PP_BOOL(p(198, s)), p, o, s) +# define MSGPACK_PP_WHILE_198(p, o, s) MSGPACK_PP_WHILE_198_C(MSGPACK_PP_BOOL(p(199, s)), p, o, s) +# define MSGPACK_PP_WHILE_199(p, o, s) MSGPACK_PP_WHILE_199_C(MSGPACK_PP_BOOL(p(200, s)), p, o, s) +# define MSGPACK_PP_WHILE_200(p, o, s) MSGPACK_PP_WHILE_200_C(MSGPACK_PP_BOOL(p(201, s)), p, o, s) +# define MSGPACK_PP_WHILE_201(p, o, s) MSGPACK_PP_WHILE_201_C(MSGPACK_PP_BOOL(p(202, s)), p, o, s) +# define MSGPACK_PP_WHILE_202(p, o, s) MSGPACK_PP_WHILE_202_C(MSGPACK_PP_BOOL(p(203, s)), p, o, s) +# define MSGPACK_PP_WHILE_203(p, o, s) MSGPACK_PP_WHILE_203_C(MSGPACK_PP_BOOL(p(204, s)), p, o, s) +# define MSGPACK_PP_WHILE_204(p, o, s) MSGPACK_PP_WHILE_204_C(MSGPACK_PP_BOOL(p(205, s)), p, o, s) +# define MSGPACK_PP_WHILE_205(p, o, s) MSGPACK_PP_WHILE_205_C(MSGPACK_PP_BOOL(p(206, s)), p, o, s) +# define MSGPACK_PP_WHILE_206(p, o, s) MSGPACK_PP_WHILE_206_C(MSGPACK_PP_BOOL(p(207, s)), p, o, s) +# define MSGPACK_PP_WHILE_207(p, o, s) MSGPACK_PP_WHILE_207_C(MSGPACK_PP_BOOL(p(208, s)), p, o, s) +# define MSGPACK_PP_WHILE_208(p, o, s) MSGPACK_PP_WHILE_208_C(MSGPACK_PP_BOOL(p(209, s)), p, o, s) +# define MSGPACK_PP_WHILE_209(p, o, s) MSGPACK_PP_WHILE_209_C(MSGPACK_PP_BOOL(p(210, s)), p, o, s) +# define MSGPACK_PP_WHILE_210(p, o, s) MSGPACK_PP_WHILE_210_C(MSGPACK_PP_BOOL(p(211, s)), p, o, s) +# define MSGPACK_PP_WHILE_211(p, o, s) MSGPACK_PP_WHILE_211_C(MSGPACK_PP_BOOL(p(212, s)), p, o, s) +# define MSGPACK_PP_WHILE_212(p, o, s) MSGPACK_PP_WHILE_212_C(MSGPACK_PP_BOOL(p(213, s)), p, o, s) +# define MSGPACK_PP_WHILE_213(p, o, s) MSGPACK_PP_WHILE_213_C(MSGPACK_PP_BOOL(p(214, s)), p, o, s) +# define MSGPACK_PP_WHILE_214(p, o, s) MSGPACK_PP_WHILE_214_C(MSGPACK_PP_BOOL(p(215, s)), p, o, s) +# define MSGPACK_PP_WHILE_215(p, o, s) MSGPACK_PP_WHILE_215_C(MSGPACK_PP_BOOL(p(216, s)), p, o, s) +# define MSGPACK_PP_WHILE_216(p, o, s) MSGPACK_PP_WHILE_216_C(MSGPACK_PP_BOOL(p(217, s)), p, o, s) +# define MSGPACK_PP_WHILE_217(p, o, s) MSGPACK_PP_WHILE_217_C(MSGPACK_PP_BOOL(p(218, s)), p, o, s) +# define MSGPACK_PP_WHILE_218(p, o, s) MSGPACK_PP_WHILE_218_C(MSGPACK_PP_BOOL(p(219, s)), p, o, s) +# define MSGPACK_PP_WHILE_219(p, o, s) MSGPACK_PP_WHILE_219_C(MSGPACK_PP_BOOL(p(220, s)), p, o, s) +# define MSGPACK_PP_WHILE_220(p, o, s) MSGPACK_PP_WHILE_220_C(MSGPACK_PP_BOOL(p(221, s)), p, o, s) +# define MSGPACK_PP_WHILE_221(p, o, s) MSGPACK_PP_WHILE_221_C(MSGPACK_PP_BOOL(p(222, s)), p, o, s) +# define MSGPACK_PP_WHILE_222(p, o, s) MSGPACK_PP_WHILE_222_C(MSGPACK_PP_BOOL(p(223, s)), p, o, s) +# define MSGPACK_PP_WHILE_223(p, o, s) MSGPACK_PP_WHILE_223_C(MSGPACK_PP_BOOL(p(224, s)), p, o, s) +# define MSGPACK_PP_WHILE_224(p, o, s) MSGPACK_PP_WHILE_224_C(MSGPACK_PP_BOOL(p(225, s)), p, o, s) +# define MSGPACK_PP_WHILE_225(p, o, s) MSGPACK_PP_WHILE_225_C(MSGPACK_PP_BOOL(p(226, s)), p, o, s) +# define MSGPACK_PP_WHILE_226(p, o, s) MSGPACK_PP_WHILE_226_C(MSGPACK_PP_BOOL(p(227, s)), p, o, s) +# define MSGPACK_PP_WHILE_227(p, o, s) MSGPACK_PP_WHILE_227_C(MSGPACK_PP_BOOL(p(228, s)), p, o, s) +# define MSGPACK_PP_WHILE_228(p, o, s) MSGPACK_PP_WHILE_228_C(MSGPACK_PP_BOOL(p(229, s)), p, o, s) +# define MSGPACK_PP_WHILE_229(p, o, s) MSGPACK_PP_WHILE_229_C(MSGPACK_PP_BOOL(p(230, s)), p, o, s) +# define MSGPACK_PP_WHILE_230(p, o, s) MSGPACK_PP_WHILE_230_C(MSGPACK_PP_BOOL(p(231, s)), p, o, s) +# define MSGPACK_PP_WHILE_231(p, o, s) MSGPACK_PP_WHILE_231_C(MSGPACK_PP_BOOL(p(232, s)), p, o, s) +# define MSGPACK_PP_WHILE_232(p, o, s) MSGPACK_PP_WHILE_232_C(MSGPACK_PP_BOOL(p(233, s)), p, o, s) +# define MSGPACK_PP_WHILE_233(p, o, s) MSGPACK_PP_WHILE_233_C(MSGPACK_PP_BOOL(p(234, s)), p, o, s) +# define MSGPACK_PP_WHILE_234(p, o, s) MSGPACK_PP_WHILE_234_C(MSGPACK_PP_BOOL(p(235, s)), p, o, s) +# define MSGPACK_PP_WHILE_235(p, o, s) MSGPACK_PP_WHILE_235_C(MSGPACK_PP_BOOL(p(236, s)), p, o, s) +# define MSGPACK_PP_WHILE_236(p, o, s) MSGPACK_PP_WHILE_236_C(MSGPACK_PP_BOOL(p(237, s)), p, o, s) +# define MSGPACK_PP_WHILE_237(p, o, s) MSGPACK_PP_WHILE_237_C(MSGPACK_PP_BOOL(p(238, s)), p, o, s) +# define MSGPACK_PP_WHILE_238(p, o, s) MSGPACK_PP_WHILE_238_C(MSGPACK_PP_BOOL(p(239, s)), p, o, s) +# define MSGPACK_PP_WHILE_239(p, o, s) MSGPACK_PP_WHILE_239_C(MSGPACK_PP_BOOL(p(240, s)), p, o, s) +# define MSGPACK_PP_WHILE_240(p, o, s) MSGPACK_PP_WHILE_240_C(MSGPACK_PP_BOOL(p(241, s)), p, o, s) +# define MSGPACK_PP_WHILE_241(p, o, s) MSGPACK_PP_WHILE_241_C(MSGPACK_PP_BOOL(p(242, s)), p, o, s) +# define MSGPACK_PP_WHILE_242(p, o, s) MSGPACK_PP_WHILE_242_C(MSGPACK_PP_BOOL(p(243, s)), p, o, s) +# define MSGPACK_PP_WHILE_243(p, o, s) MSGPACK_PP_WHILE_243_C(MSGPACK_PP_BOOL(p(244, s)), p, o, s) +# define MSGPACK_PP_WHILE_244(p, o, s) MSGPACK_PP_WHILE_244_C(MSGPACK_PP_BOOL(p(245, s)), p, o, s) +# define MSGPACK_PP_WHILE_245(p, o, s) MSGPACK_PP_WHILE_245_C(MSGPACK_PP_BOOL(p(246, s)), p, o, s) +# define MSGPACK_PP_WHILE_246(p, o, s) MSGPACK_PP_WHILE_246_C(MSGPACK_PP_BOOL(p(247, s)), p, o, s) +# define MSGPACK_PP_WHILE_247(p, o, s) MSGPACK_PP_WHILE_247_C(MSGPACK_PP_BOOL(p(248, s)), p, o, s) +# define MSGPACK_PP_WHILE_248(p, o, s) MSGPACK_PP_WHILE_248_C(MSGPACK_PP_BOOL(p(249, s)), p, o, s) +# define MSGPACK_PP_WHILE_249(p, o, s) MSGPACK_PP_WHILE_249_C(MSGPACK_PP_BOOL(p(250, s)), p, o, s) +# define MSGPACK_PP_WHILE_250(p, o, s) MSGPACK_PP_WHILE_250_C(MSGPACK_PP_BOOL(p(251, s)), p, o, s) +# define MSGPACK_PP_WHILE_251(p, o, s) MSGPACK_PP_WHILE_251_C(MSGPACK_PP_BOOL(p(252, s)), p, o, s) +# define MSGPACK_PP_WHILE_252(p, o, s) MSGPACK_PP_WHILE_252_C(MSGPACK_PP_BOOL(p(253, s)), p, o, s) +# define MSGPACK_PP_WHILE_253(p, o, s) MSGPACK_PP_WHILE_253_C(MSGPACK_PP_BOOL(p(254, s)), p, o, s) +# define MSGPACK_PP_WHILE_254(p, o, s) MSGPACK_PP_WHILE_254_C(MSGPACK_PP_BOOL(p(255, s)), p, o, s) +# define MSGPACK_PP_WHILE_255(p, o, s) MSGPACK_PP_WHILE_255_C(MSGPACK_PP_BOOL(p(256, s)), p, o, s) +# define MSGPACK_PP_WHILE_256(p, o, s) MSGPACK_PP_WHILE_256_C(MSGPACK_PP_BOOL(p(257, s)), p, o, s) +# +# define MSGPACK_PP_WHILE_1_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_2, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(2, s)) +# define MSGPACK_PP_WHILE_2_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_3, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(3, s)) +# define MSGPACK_PP_WHILE_3_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_4, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(4, s)) +# define MSGPACK_PP_WHILE_4_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_5, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(5, s)) +# define MSGPACK_PP_WHILE_5_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_6, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(6, s)) +# define MSGPACK_PP_WHILE_6_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_7, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(7, s)) +# define MSGPACK_PP_WHILE_7_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_8, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(8, s)) +# define MSGPACK_PP_WHILE_8_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_9, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(9, s)) +# define MSGPACK_PP_WHILE_9_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_10, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(10, s)) +# define MSGPACK_PP_WHILE_10_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_11, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(11, s)) +# define MSGPACK_PP_WHILE_11_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_12, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(12, s)) +# define MSGPACK_PP_WHILE_12_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_13, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(13, s)) +# define MSGPACK_PP_WHILE_13_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_14, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(14, s)) +# define MSGPACK_PP_WHILE_14_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_15, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(15, s)) +# define MSGPACK_PP_WHILE_15_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_16, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(16, s)) +# define MSGPACK_PP_WHILE_16_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_17, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(17, s)) +# define MSGPACK_PP_WHILE_17_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_18, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(18, s)) +# define MSGPACK_PP_WHILE_18_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_19, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(19, s)) +# define MSGPACK_PP_WHILE_19_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_20, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(20, s)) +# define MSGPACK_PP_WHILE_20_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_21, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(21, s)) +# define MSGPACK_PP_WHILE_21_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_22, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(22, s)) +# define MSGPACK_PP_WHILE_22_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_23, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(23, s)) +# define MSGPACK_PP_WHILE_23_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_24, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(24, s)) +# define MSGPACK_PP_WHILE_24_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_25, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(25, s)) +# define MSGPACK_PP_WHILE_25_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_26, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(26, s)) +# define MSGPACK_PP_WHILE_26_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_27, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(27, s)) +# define MSGPACK_PP_WHILE_27_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_28, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(28, s)) +# define MSGPACK_PP_WHILE_28_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_29, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(29, s)) +# define MSGPACK_PP_WHILE_29_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_30, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(30, s)) +# define MSGPACK_PP_WHILE_30_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_31, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(31, s)) +# define MSGPACK_PP_WHILE_31_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_32, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(32, s)) +# define MSGPACK_PP_WHILE_32_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_33, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(33, s)) +# define MSGPACK_PP_WHILE_33_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_34, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(34, s)) +# define MSGPACK_PP_WHILE_34_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_35, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(35, s)) +# define MSGPACK_PP_WHILE_35_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_36, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(36, s)) +# define MSGPACK_PP_WHILE_36_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_37, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(37, s)) +# define MSGPACK_PP_WHILE_37_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_38, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(38, s)) +# define MSGPACK_PP_WHILE_38_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_39, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(39, s)) +# define MSGPACK_PP_WHILE_39_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_40, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(40, s)) +# define MSGPACK_PP_WHILE_40_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_41, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(41, s)) +# define MSGPACK_PP_WHILE_41_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_42, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(42, s)) +# define MSGPACK_PP_WHILE_42_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_43, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(43, s)) +# define MSGPACK_PP_WHILE_43_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_44, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(44, s)) +# define MSGPACK_PP_WHILE_44_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_45, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(45, s)) +# define MSGPACK_PP_WHILE_45_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_46, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(46, s)) +# define MSGPACK_PP_WHILE_46_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_47, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(47, s)) +# define MSGPACK_PP_WHILE_47_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_48, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(48, s)) +# define MSGPACK_PP_WHILE_48_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_49, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(49, s)) +# define MSGPACK_PP_WHILE_49_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_50, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(50, s)) +# define MSGPACK_PP_WHILE_50_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_51, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(51, s)) +# define MSGPACK_PP_WHILE_51_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_52, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(52, s)) +# define MSGPACK_PP_WHILE_52_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_53, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(53, s)) +# define MSGPACK_PP_WHILE_53_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_54, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(54, s)) +# define MSGPACK_PP_WHILE_54_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_55, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(55, s)) +# define MSGPACK_PP_WHILE_55_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_56, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(56, s)) +# define MSGPACK_PP_WHILE_56_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_57, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(57, s)) +# define MSGPACK_PP_WHILE_57_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_58, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(58, s)) +# define MSGPACK_PP_WHILE_58_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_59, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(59, s)) +# define MSGPACK_PP_WHILE_59_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_60, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(60, s)) +# define MSGPACK_PP_WHILE_60_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_61, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(61, s)) +# define MSGPACK_PP_WHILE_61_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_62, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(62, s)) +# define MSGPACK_PP_WHILE_62_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_63, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(63, s)) +# define MSGPACK_PP_WHILE_63_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_64, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(64, s)) +# define MSGPACK_PP_WHILE_64_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_65, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(65, s)) +# define MSGPACK_PP_WHILE_65_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_66, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(66, s)) +# define MSGPACK_PP_WHILE_66_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_67, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(67, s)) +# define MSGPACK_PP_WHILE_67_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_68, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(68, s)) +# define MSGPACK_PP_WHILE_68_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_69, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(69, s)) +# define MSGPACK_PP_WHILE_69_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_70, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(70, s)) +# define MSGPACK_PP_WHILE_70_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_71, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(71, s)) +# define MSGPACK_PP_WHILE_71_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_72, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(72, s)) +# define MSGPACK_PP_WHILE_72_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_73, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(73, s)) +# define MSGPACK_PP_WHILE_73_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_74, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(74, s)) +# define MSGPACK_PP_WHILE_74_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_75, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(75, s)) +# define MSGPACK_PP_WHILE_75_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_76, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(76, s)) +# define MSGPACK_PP_WHILE_76_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_77, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(77, s)) +# define MSGPACK_PP_WHILE_77_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_78, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(78, s)) +# define MSGPACK_PP_WHILE_78_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_79, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(79, s)) +# define MSGPACK_PP_WHILE_79_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_80, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(80, s)) +# define MSGPACK_PP_WHILE_80_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_81, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(81, s)) +# define MSGPACK_PP_WHILE_81_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_82, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(82, s)) +# define MSGPACK_PP_WHILE_82_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_83, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(83, s)) +# define MSGPACK_PP_WHILE_83_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_84, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(84, s)) +# define MSGPACK_PP_WHILE_84_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_85, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(85, s)) +# define MSGPACK_PP_WHILE_85_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_86, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(86, s)) +# define MSGPACK_PP_WHILE_86_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_87, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(87, s)) +# define MSGPACK_PP_WHILE_87_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_88, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(88, s)) +# define MSGPACK_PP_WHILE_88_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_89, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(89, s)) +# define MSGPACK_PP_WHILE_89_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_90, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(90, s)) +# define MSGPACK_PP_WHILE_90_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_91, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(91, s)) +# define MSGPACK_PP_WHILE_91_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_92, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(92, s)) +# define MSGPACK_PP_WHILE_92_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_93, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(93, s)) +# define MSGPACK_PP_WHILE_93_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_94, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(94, s)) +# define MSGPACK_PP_WHILE_94_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_95, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(95, s)) +# define MSGPACK_PP_WHILE_95_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_96, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(96, s)) +# define MSGPACK_PP_WHILE_96_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_97, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(97, s)) +# define MSGPACK_PP_WHILE_97_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_98, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(98, s)) +# define MSGPACK_PP_WHILE_98_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_99, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(99, s)) +# define MSGPACK_PP_WHILE_99_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_100, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(100, s)) +# define MSGPACK_PP_WHILE_100_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_101, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(101, s)) +# define MSGPACK_PP_WHILE_101_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_102, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(102, s)) +# define MSGPACK_PP_WHILE_102_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_103, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(103, s)) +# define MSGPACK_PP_WHILE_103_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_104, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(104, s)) +# define MSGPACK_PP_WHILE_104_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_105, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(105, s)) +# define MSGPACK_PP_WHILE_105_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_106, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(106, s)) +# define MSGPACK_PP_WHILE_106_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_107, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(107, s)) +# define MSGPACK_PP_WHILE_107_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_108, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(108, s)) +# define MSGPACK_PP_WHILE_108_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_109, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(109, s)) +# define MSGPACK_PP_WHILE_109_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_110, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(110, s)) +# define MSGPACK_PP_WHILE_110_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_111, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(111, s)) +# define MSGPACK_PP_WHILE_111_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_112, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(112, s)) +# define MSGPACK_PP_WHILE_112_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_113, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(113, s)) +# define MSGPACK_PP_WHILE_113_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_114, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(114, s)) +# define MSGPACK_PP_WHILE_114_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_115, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(115, s)) +# define MSGPACK_PP_WHILE_115_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_116, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(116, s)) +# define MSGPACK_PP_WHILE_116_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_117, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(117, s)) +# define MSGPACK_PP_WHILE_117_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_118, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(118, s)) +# define MSGPACK_PP_WHILE_118_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_119, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(119, s)) +# define MSGPACK_PP_WHILE_119_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_120, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(120, s)) +# define MSGPACK_PP_WHILE_120_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_121, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(121, s)) +# define MSGPACK_PP_WHILE_121_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_122, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(122, s)) +# define MSGPACK_PP_WHILE_122_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_123, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(123, s)) +# define MSGPACK_PP_WHILE_123_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_124, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(124, s)) +# define MSGPACK_PP_WHILE_124_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_125, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(125, s)) +# define MSGPACK_PP_WHILE_125_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_126, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(126, s)) +# define MSGPACK_PP_WHILE_126_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_127, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(127, s)) +# define MSGPACK_PP_WHILE_127_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_128, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(128, s)) +# define MSGPACK_PP_WHILE_128_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_129, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(129, s)) +# define MSGPACK_PP_WHILE_129_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_130, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(130, s)) +# define MSGPACK_PP_WHILE_130_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_131, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(131, s)) +# define MSGPACK_PP_WHILE_131_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_132, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(132, s)) +# define MSGPACK_PP_WHILE_132_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_133, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(133, s)) +# define MSGPACK_PP_WHILE_133_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_134, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(134, s)) +# define MSGPACK_PP_WHILE_134_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_135, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(135, s)) +# define MSGPACK_PP_WHILE_135_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_136, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(136, s)) +# define MSGPACK_PP_WHILE_136_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_137, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(137, s)) +# define MSGPACK_PP_WHILE_137_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_138, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(138, s)) +# define MSGPACK_PP_WHILE_138_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_139, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(139, s)) +# define MSGPACK_PP_WHILE_139_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_140, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(140, s)) +# define MSGPACK_PP_WHILE_140_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_141, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(141, s)) +# define MSGPACK_PP_WHILE_141_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_142, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(142, s)) +# define MSGPACK_PP_WHILE_142_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_143, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(143, s)) +# define MSGPACK_PP_WHILE_143_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_144, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(144, s)) +# define MSGPACK_PP_WHILE_144_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_145, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(145, s)) +# define MSGPACK_PP_WHILE_145_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_146, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(146, s)) +# define MSGPACK_PP_WHILE_146_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_147, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(147, s)) +# define MSGPACK_PP_WHILE_147_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_148, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(148, s)) +# define MSGPACK_PP_WHILE_148_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_149, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(149, s)) +# define MSGPACK_PP_WHILE_149_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_150, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(150, s)) +# define MSGPACK_PP_WHILE_150_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_151, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(151, s)) +# define MSGPACK_PP_WHILE_151_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_152, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(152, s)) +# define MSGPACK_PP_WHILE_152_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_153, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(153, s)) +# define MSGPACK_PP_WHILE_153_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_154, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(154, s)) +# define MSGPACK_PP_WHILE_154_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_155, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(155, s)) +# define MSGPACK_PP_WHILE_155_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_156, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(156, s)) +# define MSGPACK_PP_WHILE_156_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_157, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(157, s)) +# define MSGPACK_PP_WHILE_157_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_158, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(158, s)) +# define MSGPACK_PP_WHILE_158_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_159, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(159, s)) +# define MSGPACK_PP_WHILE_159_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_160, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(160, s)) +# define MSGPACK_PP_WHILE_160_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_161, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(161, s)) +# define MSGPACK_PP_WHILE_161_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_162, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(162, s)) +# define MSGPACK_PP_WHILE_162_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_163, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(163, s)) +# define MSGPACK_PP_WHILE_163_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_164, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(164, s)) +# define MSGPACK_PP_WHILE_164_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_165, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(165, s)) +# define MSGPACK_PP_WHILE_165_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_166, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(166, s)) +# define MSGPACK_PP_WHILE_166_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_167, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(167, s)) +# define MSGPACK_PP_WHILE_167_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_168, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(168, s)) +# define MSGPACK_PP_WHILE_168_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_169, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(169, s)) +# define MSGPACK_PP_WHILE_169_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_170, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(170, s)) +# define MSGPACK_PP_WHILE_170_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_171, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(171, s)) +# define MSGPACK_PP_WHILE_171_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_172, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(172, s)) +# define MSGPACK_PP_WHILE_172_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_173, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(173, s)) +# define MSGPACK_PP_WHILE_173_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_174, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(174, s)) +# define MSGPACK_PP_WHILE_174_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_175, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(175, s)) +# define MSGPACK_PP_WHILE_175_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_176, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(176, s)) +# define MSGPACK_PP_WHILE_176_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_177, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(177, s)) +# define MSGPACK_PP_WHILE_177_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_178, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(178, s)) +# define MSGPACK_PP_WHILE_178_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_179, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(179, s)) +# define MSGPACK_PP_WHILE_179_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_180, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(180, s)) +# define MSGPACK_PP_WHILE_180_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_181, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(181, s)) +# define MSGPACK_PP_WHILE_181_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_182, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(182, s)) +# define MSGPACK_PP_WHILE_182_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_183, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(183, s)) +# define MSGPACK_PP_WHILE_183_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_184, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(184, s)) +# define MSGPACK_PP_WHILE_184_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_185, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(185, s)) +# define MSGPACK_PP_WHILE_185_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_186, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(186, s)) +# define MSGPACK_PP_WHILE_186_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_187, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(187, s)) +# define MSGPACK_PP_WHILE_187_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_188, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(188, s)) +# define MSGPACK_PP_WHILE_188_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_189, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(189, s)) +# define MSGPACK_PP_WHILE_189_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_190, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(190, s)) +# define MSGPACK_PP_WHILE_190_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_191, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(191, s)) +# define MSGPACK_PP_WHILE_191_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_192, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(192, s)) +# define MSGPACK_PP_WHILE_192_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_193, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(193, s)) +# define MSGPACK_PP_WHILE_193_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_194, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(194, s)) +# define MSGPACK_PP_WHILE_194_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_195, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(195, s)) +# define MSGPACK_PP_WHILE_195_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_196, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(196, s)) +# define MSGPACK_PP_WHILE_196_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_197, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(197, s)) +# define MSGPACK_PP_WHILE_197_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_198, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(198, s)) +# define MSGPACK_PP_WHILE_198_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_199, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(199, s)) +# define MSGPACK_PP_WHILE_199_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_200, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(200, s)) +# define MSGPACK_PP_WHILE_200_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_201, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(201, s)) +# define MSGPACK_PP_WHILE_201_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_202, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(202, s)) +# define MSGPACK_PP_WHILE_202_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_203, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(203, s)) +# define MSGPACK_PP_WHILE_203_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_204, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(204, s)) +# define MSGPACK_PP_WHILE_204_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_205, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(205, s)) +# define MSGPACK_PP_WHILE_205_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_206, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(206, s)) +# define MSGPACK_PP_WHILE_206_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_207, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(207, s)) +# define MSGPACK_PP_WHILE_207_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_208, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(208, s)) +# define MSGPACK_PP_WHILE_208_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_209, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(209, s)) +# define MSGPACK_PP_WHILE_209_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_210, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(210, s)) +# define MSGPACK_PP_WHILE_210_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_211, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(211, s)) +# define MSGPACK_PP_WHILE_211_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_212, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(212, s)) +# define MSGPACK_PP_WHILE_212_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_213, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(213, s)) +# define MSGPACK_PP_WHILE_213_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_214, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(214, s)) +# define MSGPACK_PP_WHILE_214_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_215, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(215, s)) +# define MSGPACK_PP_WHILE_215_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_216, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(216, s)) +# define MSGPACK_PP_WHILE_216_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_217, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(217, s)) +# define MSGPACK_PP_WHILE_217_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_218, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(218, s)) +# define MSGPACK_PP_WHILE_218_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_219, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(219, s)) +# define MSGPACK_PP_WHILE_219_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_220, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(220, s)) +# define MSGPACK_PP_WHILE_220_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_221, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(221, s)) +# define MSGPACK_PP_WHILE_221_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_222, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(222, s)) +# define MSGPACK_PP_WHILE_222_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_223, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(223, s)) +# define MSGPACK_PP_WHILE_223_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_224, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(224, s)) +# define MSGPACK_PP_WHILE_224_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_225, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(225, s)) +# define MSGPACK_PP_WHILE_225_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_226, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(226, s)) +# define MSGPACK_PP_WHILE_226_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_227, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(227, s)) +# define MSGPACK_PP_WHILE_227_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_228, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(228, s)) +# define MSGPACK_PP_WHILE_228_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_229, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(229, s)) +# define MSGPACK_PP_WHILE_229_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_230, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(230, s)) +# define MSGPACK_PP_WHILE_230_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_231, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(231, s)) +# define MSGPACK_PP_WHILE_231_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_232, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(232, s)) +# define MSGPACK_PP_WHILE_232_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_233, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(233, s)) +# define MSGPACK_PP_WHILE_233_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_234, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(234, s)) +# define MSGPACK_PP_WHILE_234_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_235, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(235, s)) +# define MSGPACK_PP_WHILE_235_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_236, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(236, s)) +# define MSGPACK_PP_WHILE_236_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_237, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(237, s)) +# define MSGPACK_PP_WHILE_237_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_238, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(238, s)) +# define MSGPACK_PP_WHILE_238_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_239, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(239, s)) +# define MSGPACK_PP_WHILE_239_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_240, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(240, s)) +# define MSGPACK_PP_WHILE_240_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_241, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(241, s)) +# define MSGPACK_PP_WHILE_241_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_242, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(242, s)) +# define MSGPACK_PP_WHILE_242_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_243, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(243, s)) +# define MSGPACK_PP_WHILE_243_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_244, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(244, s)) +# define MSGPACK_PP_WHILE_244_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_245, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(245, s)) +# define MSGPACK_PP_WHILE_245_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_246, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(246, s)) +# define MSGPACK_PP_WHILE_246_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_247, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(247, s)) +# define MSGPACK_PP_WHILE_247_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_248, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(248, s)) +# define MSGPACK_PP_WHILE_248_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_249, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(249, s)) +# define MSGPACK_PP_WHILE_249_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_250, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(250, s)) +# define MSGPACK_PP_WHILE_250_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_251, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(251, s)) +# define MSGPACK_PP_WHILE_251_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_252, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(252, s)) +# define MSGPACK_PP_WHILE_252_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_253, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(253, s)) +# define MSGPACK_PP_WHILE_253_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_254, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(254, s)) +# define MSGPACK_PP_WHILE_254_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_255, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(255, s)) +# define MSGPACK_PP_WHILE_255_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_256, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(256, s)) +# define MSGPACK_PP_WHILE_256_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_257, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(257, s)) +# +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/control/expr_if.hpp b/third_party/msgpack/include/msgpack/preprocessor/control/expr_if.hpp new file mode 100644 index 000000000000..af42b4b73636 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/control/expr_if.hpp @@ -0,0 +1,30 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_CONTROL_EXPR_IF_HPP +# define MSGPACK_PREPROCESSOR_CONTROL_EXPR_IF_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_EXPR_IF */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_EXPR_IF(cond, expr) MSGPACK_PP_EXPR_IIF(MSGPACK_PP_BOOL(cond), expr) +# else +# define MSGPACK_PP_EXPR_IF(cond, expr) MSGPACK_PP_EXPR_IF_I(cond, expr) +# define MSGPACK_PP_EXPR_IF_I(cond, expr) MSGPACK_PP_EXPR_IIF(MSGPACK_PP_BOOL(cond), expr) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/control/expr_iif.hpp b/third_party/msgpack/include/msgpack/preprocessor/control/expr_iif.hpp new file mode 100644 index 000000000000..af6d7895fb78 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/control/expr_iif.hpp @@ -0,0 +1,31 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_CONTROL_EXPR_IIF_HPP +# define MSGPACK_PREPROCESSOR_CONTROL_EXPR_IIF_HPP +# +# include +# +# /* MSGPACK_PP_EXPR_IIF */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_EXPR_IIF(bit, expr) MSGPACK_PP_EXPR_IIF_I(bit, expr) +# else +# define MSGPACK_PP_EXPR_IIF(bit, expr) MSGPACK_PP_EXPR_IIF_OO((bit, expr)) +# define MSGPACK_PP_EXPR_IIF_OO(par) MSGPACK_PP_EXPR_IIF_I ## par +# endif +# +# define MSGPACK_PP_EXPR_IIF_I(bit, expr) MSGPACK_PP_EXPR_IIF_ ## bit(expr) +# +# define MSGPACK_PP_EXPR_IIF_0(expr) +# define MSGPACK_PP_EXPR_IIF_1(expr) expr +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/control/if.hpp b/third_party/msgpack/include/msgpack/preprocessor/control/if.hpp new file mode 100644 index 000000000000..37a79c2501aa --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/control/if.hpp @@ -0,0 +1,30 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_CONTROL_IF_HPP +# define MSGPACK_PREPROCESSOR_CONTROL_IF_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_IF */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_IF(cond, t, f) MSGPACK_PP_IIF(MSGPACK_PP_BOOL(cond), t, f) +# else +# define MSGPACK_PP_IF(cond, t, f) MSGPACK_PP_IF_I(cond, t, f) +# define MSGPACK_PP_IF_I(cond, t, f) MSGPACK_PP_IIF(MSGPACK_PP_BOOL(cond), t, f) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/control/iif.hpp b/third_party/msgpack/include/msgpack/preprocessor/control/iif.hpp new file mode 100644 index 000000000000..45fc61aede91 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/control/iif.hpp @@ -0,0 +1,34 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_CONTROL_IIF_HPP +# define MSGPACK_PREPROCESSOR_CONTROL_IIF_HPP +# +# include +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_IIF(bit, t, f) MSGPACK_PP_IIF_I(bit, t, f) +# else +# define MSGPACK_PP_IIF(bit, t, f) MSGPACK_PP_IIF_OO((bit, t, f)) +# define MSGPACK_PP_IIF_OO(par) MSGPACK_PP_IIF_I ## par +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_IIF_I(bit, t, f) MSGPACK_PP_IIF_ ## bit(t, f) +# else +# define MSGPACK_PP_IIF_I(bit, t, f) MSGPACK_PP_IIF_II(MSGPACK_PP_IIF_ ## bit(t, f)) +# define MSGPACK_PP_IIF_II(id) id +# endif +# +# define MSGPACK_PP_IIF_0(t, f) f +# define MSGPACK_PP_IIF_1(t, f) t +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/control/while.hpp b/third_party/msgpack/include/msgpack/preprocessor/control/while.hpp new file mode 100644 index 000000000000..6b3e074cfc3e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/control/while.hpp @@ -0,0 +1,312 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_CONTROL_WHILE_HPP +# define MSGPACK_PREPROCESSOR_CONTROL_WHILE_HPP +# +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_WHILE */ +# +# if 0 +# define MSGPACK_PP_WHILE(pred, op, state) +# endif +# +# define MSGPACK_PP_WHILE MSGPACK_PP_CAT(MSGPACK_PP_WHILE_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_WHILE_P, 256)) +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_WHILE_P(n) MSGPACK_PP_BITAND(MSGPACK_PP_CAT(MSGPACK_PP_WHILE_CHECK_, MSGPACK_PP_WHILE_ ## n(MSGPACK_PP_WHILE_F, MSGPACK_PP_NIL, MSGPACK_PP_NIL)), MSGPACK_PP_BITAND(MSGPACK_PP_CAT(MSGPACK_PP_LIST_FOLD_LEFT_CHECK_, MSGPACK_PP_LIST_FOLD_LEFT_ ## n(MSGPACK_PP_NIL, MSGPACK_PP_NIL, MSGPACK_PP_NIL)), MSGPACK_PP_CAT(MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_, MSGPACK_PP_LIST_FOLD_RIGHT_ ## n(MSGPACK_PP_NIL, MSGPACK_PP_NIL, MSGPACK_PP_NIL)))) +# else +# define MSGPACK_PP_WHILE_P(n) MSGPACK_PP_BITAND(MSGPACK_PP_CAT(MSGPACK_PP_WHILE_CHECK_, MSGPACK_PP_WHILE_ ## n(MSGPACK_PP_WHILE_F, MSGPACK_PP_NIL, MSGPACK_PP_NIL)), MSGPACK_PP_CAT(MSGPACK_PP_LIST_FOLD_LEFT_CHECK_, MSGPACK_PP_LIST_FOLD_LEFT_ ## n(MSGPACK_PP_NIL, MSGPACK_PP_NIL, MSGPACK_PP_NIL))) +# endif +# +# define MSGPACK_PP_WHILE_F(d, _) 0 +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# include +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# include +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC() +# include +# else +# include +# endif +# +# define MSGPACK_PP_WHILE_257(p, o, s) MSGPACK_PP_ERROR(0x0001) +# +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_NIL 1 +# +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_1(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_2(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_3(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_4(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_5(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_6(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_7(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_8(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_9(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_10(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_11(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_12(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_13(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_14(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_15(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_16(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_17(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_18(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_19(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_20(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_21(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_22(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_23(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_24(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_25(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_26(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_27(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_28(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_29(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_30(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_31(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_32(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_33(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_34(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_35(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_36(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_37(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_38(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_39(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_40(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_41(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_42(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_43(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_44(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_45(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_46(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_47(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_48(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_49(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_50(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_51(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_52(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_53(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_54(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_55(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_56(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_57(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_58(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_59(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_60(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_61(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_62(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_63(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_64(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_65(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_66(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_67(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_68(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_69(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_70(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_71(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_72(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_73(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_74(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_75(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_76(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_77(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_78(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_79(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_80(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_81(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_82(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_83(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_84(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_85(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_86(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_87(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_88(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_89(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_90(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_91(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_92(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_93(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_94(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_95(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_96(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_97(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_98(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_99(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_100(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_101(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_102(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_103(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_104(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_105(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_106(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_107(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_108(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_109(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_110(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_111(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_112(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_113(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_114(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_115(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_116(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_117(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_118(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_119(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_120(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_121(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_122(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_123(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_124(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_125(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_126(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_127(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_128(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_129(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_130(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_131(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_132(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_133(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_134(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_135(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_136(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_137(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_138(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_139(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_140(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_141(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_142(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_143(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_144(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_145(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_146(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_147(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_148(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_149(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_150(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_151(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_152(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_153(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_154(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_155(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_156(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_157(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_158(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_159(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_160(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_161(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_162(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_163(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_164(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_165(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_166(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_167(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_168(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_169(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_170(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_171(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_172(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_173(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_174(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_175(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_176(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_177(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_178(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_179(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_180(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_181(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_182(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_183(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_184(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_185(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_186(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_187(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_188(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_189(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_190(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_191(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_192(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_193(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_194(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_195(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_196(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_197(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_198(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_199(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_200(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_201(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_202(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_203(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_204(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_205(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_206(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_207(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_208(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_209(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_210(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_211(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_212(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_213(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_214(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_215(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_216(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_217(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_218(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_219(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_220(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_221(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_222(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_223(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_224(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_225(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_226(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_227(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_228(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_229(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_230(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_231(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_232(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_233(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_234(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_235(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_236(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_237(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_238(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_239(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_240(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_241(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_242(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_243(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_244(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_245(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_246(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_247(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_248(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_249(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_250(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_251(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_252(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_253(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_254(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_255(p, o, s) 0 +# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_256(p, o, s) 0 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/debug.hpp b/third_party/msgpack/include/msgpack/preprocessor/debug.hpp new file mode 100644 index 000000000000..dd512f8db8cd --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/debug.hpp @@ -0,0 +1,18 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_DEBUG_HPP +# define MSGPACK_PREPROCESSOR_DEBUG_HPP +# +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/debug/assert.hpp b/third_party/msgpack/include/msgpack/preprocessor/debug/assert.hpp new file mode 100644 index 000000000000..d784113df762 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/debug/assert.hpp @@ -0,0 +1,44 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_DEBUG_ASSERT_HPP +# define MSGPACK_PREPROCESSOR_DEBUG_ASSERT_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ASSERT */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ASSERT MSGPACK_PP_ASSERT_D +# else +# define MSGPACK_PP_ASSERT(cond) MSGPACK_PP_ASSERT_D(cond) +# endif +# +# define MSGPACK_PP_ASSERT_D(cond) MSGPACK_PP_IIF(MSGPACK_PP_NOT(cond), MSGPACK_PP_ASSERT_ERROR, MSGPACK_PP_TUPLE_EAT_1)(...) +# define MSGPACK_PP_ASSERT_ERROR(x, y, z) +# +# /* MSGPACK_PP_ASSERT_MSG */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ASSERT_MSG MSGPACK_PP_ASSERT_MSG_D +# else +# define MSGPACK_PP_ASSERT_MSG(cond, msg) MSGPACK_PP_ASSERT_MSG_D(cond, msg) +# endif +# +# define MSGPACK_PP_ASSERT_MSG_D(cond, msg) MSGPACK_PP_EXPR_IIF(MSGPACK_PP_NOT(cond), msg) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/debug/error.hpp b/third_party/msgpack/include/msgpack/preprocessor/debug/error.hpp new file mode 100644 index 000000000000..48a76962fd6e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/debug/error.hpp @@ -0,0 +1,33 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_DEBUG_ERROR_HPP +# define MSGPACK_PREPROCESSOR_DEBUG_ERROR_HPP +# +# include +# include +# +# /* MSGPACK_PP_ERROR */ +# +# if MSGPACK_PP_CONFIG_ERRORS +# define MSGPACK_PP_ERROR(code) MSGPACK_PP_CAT(MSGPACK_PP_ERROR_, code) +# endif +# +# define MSGPACK_PP_ERROR_0x0000 MSGPACK_PP_ERROR(0x0000, MSGPACK_PP_INDEX_OUT_OF_BOUNDS) +# define MSGPACK_PP_ERROR_0x0001 MSGPACK_PP_ERROR(0x0001, MSGPACK_PP_WHILE_OVERFLOW) +# define MSGPACK_PP_ERROR_0x0002 MSGPACK_PP_ERROR(0x0002, MSGPACK_PP_FOR_OVERFLOW) +# define MSGPACK_PP_ERROR_0x0003 MSGPACK_PP_ERROR(0x0003, MSGPACK_PP_REPEAT_OVERFLOW) +# define MSGPACK_PP_ERROR_0x0004 MSGPACK_PP_ERROR(0x0004, MSGPACK_PP_LIST_FOLD_OVERFLOW) +# define MSGPACK_PP_ERROR_0x0005 MSGPACK_PP_ERROR(0x0005, MSGPACK_PP_SEQ_FOLD_OVERFLOW) +# define MSGPACK_PP_ERROR_0x0006 MSGPACK_PP_ERROR(0x0006, MSGPACK_PP_ARITHMETIC_OVERFLOW) +# define MSGPACK_PP_ERROR_0x0007 MSGPACK_PP_ERROR(0x0007, MSGPACK_PP_DIVISION_BY_ZERO) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/debug/line.hpp b/third_party/msgpack/include/msgpack/preprocessor/debug/line.hpp new file mode 100644 index 000000000000..e712a0f080e8 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/debug/line.hpp @@ -0,0 +1,35 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_DEBUG_LINE_HPP +# define MSGPACK_PREPROCESSOR_DEBUG_LINE_HPP +# +# include +# include +# include +# include +# +# /* MSGPACK_PP_LINE */ +# +# if MSGPACK_PP_CONFIG_EXTENDED_LINE_INFO +# define MSGPACK_PP_LINE(line, file) line MSGPACK_PP_CAT(MSGPACK_PP_LINE_, MSGPACK_PP_IS_ITERATING)(file) +# define MSGPACK_PP_LINE_MSGPACK_PP_IS_ITERATING(file) #file +# define MSGPACK_PP_LINE_1(file) MSGPACK_PP_STRINGIZE(file MSGPACK_PP_CAT(MSGPACK_PP_LINE_I_, MSGPACK_PP_ITERATION_DEPTH())()) +# define MSGPACK_PP_LINE_I_1() [MSGPACK_PP_FRAME_ITERATION(1)] +# define MSGPACK_PP_LINE_I_2() MSGPACK_PP_LINE_I_1()[MSGPACK_PP_FRAME_ITERATION(2)] +# define MSGPACK_PP_LINE_I_3() MSGPACK_PP_LINE_I_2()[MSGPACK_PP_FRAME_ITERATION(3)] +# define MSGPACK_PP_LINE_I_4() MSGPACK_PP_LINE_I_3()[MSGPACK_PP_FRAME_ITERATION(4)] +# define MSGPACK_PP_LINE_I_5() MSGPACK_PP_LINE_I_4()[MSGPACK_PP_FRAME_ITERATION(5)] +# else +# define MSGPACK_PP_LINE(line, file) line __FILE__ +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/dec.hpp b/third_party/msgpack/include/msgpack/preprocessor/dec.hpp new file mode 100644 index 000000000000..d4c722625123 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/dec.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_DEC_HPP +# define MSGPACK_PREPROCESSOR_DEC_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/detail/auto_rec.hpp b/third_party/msgpack/include/msgpack/preprocessor/detail/auto_rec.hpp new file mode 100644 index 000000000000..413d2c64d55e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/detail/auto_rec.hpp @@ -0,0 +1,293 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC() +# include +# else +# +# ifndef MSGPACK_PREPROCESSOR_DETAIL_AUTO_REC_HPP +# define MSGPACK_PREPROCESSOR_DETAIL_AUTO_REC_HPP +# +# include +# +# /* MSGPACK_PP_AUTO_REC */ +# +# define MSGPACK_PP_AUTO_REC(pred, n) MSGPACK_PP_NODE_ENTRY_ ## n(pred) +# +# define MSGPACK_PP_NODE_ENTRY_256(p) MSGPACK_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p) +# define MSGPACK_PP_NODE_ENTRY_128(p) MSGPACK_PP_NODE_64(p)(p)(p)(p)(p)(p)(p) +# define MSGPACK_PP_NODE_ENTRY_64(p) MSGPACK_PP_NODE_32(p)(p)(p)(p)(p)(p) +# define MSGPACK_PP_NODE_ENTRY_32(p) MSGPACK_PP_NODE_16(p)(p)(p)(p)(p) +# define MSGPACK_PP_NODE_ENTRY_16(p) MSGPACK_PP_NODE_8(p)(p)(p)(p) +# define MSGPACK_PP_NODE_ENTRY_8(p) MSGPACK_PP_NODE_4(p)(p)(p) +# define MSGPACK_PP_NODE_ENTRY_4(p) MSGPACK_PP_NODE_2(p)(p) +# define MSGPACK_PP_NODE_ENTRY_2(p) MSGPACK_PP_NODE_1(p) +# +# define MSGPACK_PP_NODE_128(p) MSGPACK_PP_IIF(p(128), MSGPACK_PP_NODE_64, MSGPACK_PP_NODE_192) +# define MSGPACK_PP_NODE_64(p) MSGPACK_PP_IIF(p(64), MSGPACK_PP_NODE_32, MSGPACK_PP_NODE_96) +# define MSGPACK_PP_NODE_32(p) MSGPACK_PP_IIF(p(32), MSGPACK_PP_NODE_16, MSGPACK_PP_NODE_48) +# define MSGPACK_PP_NODE_16(p) MSGPACK_PP_IIF(p(16), MSGPACK_PP_NODE_8, MSGPACK_PP_NODE_24) +# define MSGPACK_PP_NODE_8(p) MSGPACK_PP_IIF(p(8), MSGPACK_PP_NODE_4, MSGPACK_PP_NODE_12) +# define MSGPACK_PP_NODE_4(p) MSGPACK_PP_IIF(p(4), MSGPACK_PP_NODE_2, MSGPACK_PP_NODE_6) +# define MSGPACK_PP_NODE_2(p) MSGPACK_PP_IIF(p(2), MSGPACK_PP_NODE_1, MSGPACK_PP_NODE_3) +# define MSGPACK_PP_NODE_1(p) MSGPACK_PP_IIF(p(1), 1, 2) +# define MSGPACK_PP_NODE_3(p) MSGPACK_PP_IIF(p(3), 3, 4) +# define MSGPACK_PP_NODE_6(p) MSGPACK_PP_IIF(p(6), MSGPACK_PP_NODE_5, MSGPACK_PP_NODE_7) +# define MSGPACK_PP_NODE_5(p) MSGPACK_PP_IIF(p(5), 5, 6) +# define MSGPACK_PP_NODE_7(p) MSGPACK_PP_IIF(p(7), 7, 8) +# define MSGPACK_PP_NODE_12(p) MSGPACK_PP_IIF(p(12), MSGPACK_PP_NODE_10, MSGPACK_PP_NODE_14) +# define MSGPACK_PP_NODE_10(p) MSGPACK_PP_IIF(p(10), MSGPACK_PP_NODE_9, MSGPACK_PP_NODE_11) +# define MSGPACK_PP_NODE_9(p) MSGPACK_PP_IIF(p(9), 9, 10) +# define MSGPACK_PP_NODE_11(p) MSGPACK_PP_IIF(p(11), 11, 12) +# define MSGPACK_PP_NODE_14(p) MSGPACK_PP_IIF(p(14), MSGPACK_PP_NODE_13, MSGPACK_PP_NODE_15) +# define MSGPACK_PP_NODE_13(p) MSGPACK_PP_IIF(p(13), 13, 14) +# define MSGPACK_PP_NODE_15(p) MSGPACK_PP_IIF(p(15), 15, 16) +# define MSGPACK_PP_NODE_24(p) MSGPACK_PP_IIF(p(24), MSGPACK_PP_NODE_20, MSGPACK_PP_NODE_28) +# define MSGPACK_PP_NODE_20(p) MSGPACK_PP_IIF(p(20), MSGPACK_PP_NODE_18, MSGPACK_PP_NODE_22) +# define MSGPACK_PP_NODE_18(p) MSGPACK_PP_IIF(p(18), MSGPACK_PP_NODE_17, MSGPACK_PP_NODE_19) +# define MSGPACK_PP_NODE_17(p) MSGPACK_PP_IIF(p(17), 17, 18) +# define MSGPACK_PP_NODE_19(p) MSGPACK_PP_IIF(p(19), 19, 20) +# define MSGPACK_PP_NODE_22(p) MSGPACK_PP_IIF(p(22), MSGPACK_PP_NODE_21, MSGPACK_PP_NODE_23) +# define MSGPACK_PP_NODE_21(p) MSGPACK_PP_IIF(p(21), 21, 22) +# define MSGPACK_PP_NODE_23(p) MSGPACK_PP_IIF(p(23), 23, 24) +# define MSGPACK_PP_NODE_28(p) MSGPACK_PP_IIF(p(28), MSGPACK_PP_NODE_26, MSGPACK_PP_NODE_30) +# define MSGPACK_PP_NODE_26(p) MSGPACK_PP_IIF(p(26), MSGPACK_PP_NODE_25, MSGPACK_PP_NODE_27) +# define MSGPACK_PP_NODE_25(p) MSGPACK_PP_IIF(p(25), 25, 26) +# define MSGPACK_PP_NODE_27(p) MSGPACK_PP_IIF(p(27), 27, 28) +# define MSGPACK_PP_NODE_30(p) MSGPACK_PP_IIF(p(30), MSGPACK_PP_NODE_29, MSGPACK_PP_NODE_31) +# define MSGPACK_PP_NODE_29(p) MSGPACK_PP_IIF(p(29), 29, 30) +# define MSGPACK_PP_NODE_31(p) MSGPACK_PP_IIF(p(31), 31, 32) +# define MSGPACK_PP_NODE_48(p) MSGPACK_PP_IIF(p(48), MSGPACK_PP_NODE_40, MSGPACK_PP_NODE_56) +# define MSGPACK_PP_NODE_40(p) MSGPACK_PP_IIF(p(40), MSGPACK_PP_NODE_36, MSGPACK_PP_NODE_44) +# define MSGPACK_PP_NODE_36(p) MSGPACK_PP_IIF(p(36), MSGPACK_PP_NODE_34, MSGPACK_PP_NODE_38) +# define MSGPACK_PP_NODE_34(p) MSGPACK_PP_IIF(p(34), MSGPACK_PP_NODE_33, MSGPACK_PP_NODE_35) +# define MSGPACK_PP_NODE_33(p) MSGPACK_PP_IIF(p(33), 33, 34) +# define MSGPACK_PP_NODE_35(p) MSGPACK_PP_IIF(p(35), 35, 36) +# define MSGPACK_PP_NODE_38(p) MSGPACK_PP_IIF(p(38), MSGPACK_PP_NODE_37, MSGPACK_PP_NODE_39) +# define MSGPACK_PP_NODE_37(p) MSGPACK_PP_IIF(p(37), 37, 38) +# define MSGPACK_PP_NODE_39(p) MSGPACK_PP_IIF(p(39), 39, 40) +# define MSGPACK_PP_NODE_44(p) MSGPACK_PP_IIF(p(44), MSGPACK_PP_NODE_42, MSGPACK_PP_NODE_46) +# define MSGPACK_PP_NODE_42(p) MSGPACK_PP_IIF(p(42), MSGPACK_PP_NODE_41, MSGPACK_PP_NODE_43) +# define MSGPACK_PP_NODE_41(p) MSGPACK_PP_IIF(p(41), 41, 42) +# define MSGPACK_PP_NODE_43(p) MSGPACK_PP_IIF(p(43), 43, 44) +# define MSGPACK_PP_NODE_46(p) MSGPACK_PP_IIF(p(46), MSGPACK_PP_NODE_45, MSGPACK_PP_NODE_47) +# define MSGPACK_PP_NODE_45(p) MSGPACK_PP_IIF(p(45), 45, 46) +# define MSGPACK_PP_NODE_47(p) MSGPACK_PP_IIF(p(47), 47, 48) +# define MSGPACK_PP_NODE_56(p) MSGPACK_PP_IIF(p(56), MSGPACK_PP_NODE_52, MSGPACK_PP_NODE_60) +# define MSGPACK_PP_NODE_52(p) MSGPACK_PP_IIF(p(52), MSGPACK_PP_NODE_50, MSGPACK_PP_NODE_54) +# define MSGPACK_PP_NODE_50(p) MSGPACK_PP_IIF(p(50), MSGPACK_PP_NODE_49, MSGPACK_PP_NODE_51) +# define MSGPACK_PP_NODE_49(p) MSGPACK_PP_IIF(p(49), 49, 50) +# define MSGPACK_PP_NODE_51(p) MSGPACK_PP_IIF(p(51), 51, 52) +# define MSGPACK_PP_NODE_54(p) MSGPACK_PP_IIF(p(54), MSGPACK_PP_NODE_53, MSGPACK_PP_NODE_55) +# define MSGPACK_PP_NODE_53(p) MSGPACK_PP_IIF(p(53), 53, 54) +# define MSGPACK_PP_NODE_55(p) MSGPACK_PP_IIF(p(55), 55, 56) +# define MSGPACK_PP_NODE_60(p) MSGPACK_PP_IIF(p(60), MSGPACK_PP_NODE_58, MSGPACK_PP_NODE_62) +# define MSGPACK_PP_NODE_58(p) MSGPACK_PP_IIF(p(58), MSGPACK_PP_NODE_57, MSGPACK_PP_NODE_59) +# define MSGPACK_PP_NODE_57(p) MSGPACK_PP_IIF(p(57), 57, 58) +# define MSGPACK_PP_NODE_59(p) MSGPACK_PP_IIF(p(59), 59, 60) +# define MSGPACK_PP_NODE_62(p) MSGPACK_PP_IIF(p(62), MSGPACK_PP_NODE_61, MSGPACK_PP_NODE_63) +# define MSGPACK_PP_NODE_61(p) MSGPACK_PP_IIF(p(61), 61, 62) +# define MSGPACK_PP_NODE_63(p) MSGPACK_PP_IIF(p(63), 63, 64) +# define MSGPACK_PP_NODE_96(p) MSGPACK_PP_IIF(p(96), MSGPACK_PP_NODE_80, MSGPACK_PP_NODE_112) +# define MSGPACK_PP_NODE_80(p) MSGPACK_PP_IIF(p(80), MSGPACK_PP_NODE_72, MSGPACK_PP_NODE_88) +# define MSGPACK_PP_NODE_72(p) MSGPACK_PP_IIF(p(72), MSGPACK_PP_NODE_68, MSGPACK_PP_NODE_76) +# define MSGPACK_PP_NODE_68(p) MSGPACK_PP_IIF(p(68), MSGPACK_PP_NODE_66, MSGPACK_PP_NODE_70) +# define MSGPACK_PP_NODE_66(p) MSGPACK_PP_IIF(p(66), MSGPACK_PP_NODE_65, MSGPACK_PP_NODE_67) +# define MSGPACK_PP_NODE_65(p) MSGPACK_PP_IIF(p(65), 65, 66) +# define MSGPACK_PP_NODE_67(p) MSGPACK_PP_IIF(p(67), 67, 68) +# define MSGPACK_PP_NODE_70(p) MSGPACK_PP_IIF(p(70), MSGPACK_PP_NODE_69, MSGPACK_PP_NODE_71) +# define MSGPACK_PP_NODE_69(p) MSGPACK_PP_IIF(p(69), 69, 70) +# define MSGPACK_PP_NODE_71(p) MSGPACK_PP_IIF(p(71), 71, 72) +# define MSGPACK_PP_NODE_76(p) MSGPACK_PP_IIF(p(76), MSGPACK_PP_NODE_74, MSGPACK_PP_NODE_78) +# define MSGPACK_PP_NODE_74(p) MSGPACK_PP_IIF(p(74), MSGPACK_PP_NODE_73, MSGPACK_PP_NODE_75) +# define MSGPACK_PP_NODE_73(p) MSGPACK_PP_IIF(p(73), 73, 74) +# define MSGPACK_PP_NODE_75(p) MSGPACK_PP_IIF(p(75), 75, 76) +# define MSGPACK_PP_NODE_78(p) MSGPACK_PP_IIF(p(78), MSGPACK_PP_NODE_77, MSGPACK_PP_NODE_79) +# define MSGPACK_PP_NODE_77(p) MSGPACK_PP_IIF(p(77), 77, 78) +# define MSGPACK_PP_NODE_79(p) MSGPACK_PP_IIF(p(79), 79, 80) +# define MSGPACK_PP_NODE_88(p) MSGPACK_PP_IIF(p(88), MSGPACK_PP_NODE_84, MSGPACK_PP_NODE_92) +# define MSGPACK_PP_NODE_84(p) MSGPACK_PP_IIF(p(84), MSGPACK_PP_NODE_82, MSGPACK_PP_NODE_86) +# define MSGPACK_PP_NODE_82(p) MSGPACK_PP_IIF(p(82), MSGPACK_PP_NODE_81, MSGPACK_PP_NODE_83) +# define MSGPACK_PP_NODE_81(p) MSGPACK_PP_IIF(p(81), 81, 82) +# define MSGPACK_PP_NODE_83(p) MSGPACK_PP_IIF(p(83), 83, 84) +# define MSGPACK_PP_NODE_86(p) MSGPACK_PP_IIF(p(86), MSGPACK_PP_NODE_85, MSGPACK_PP_NODE_87) +# define MSGPACK_PP_NODE_85(p) MSGPACK_PP_IIF(p(85), 85, 86) +# define MSGPACK_PP_NODE_87(p) MSGPACK_PP_IIF(p(87), 87, 88) +# define MSGPACK_PP_NODE_92(p) MSGPACK_PP_IIF(p(92), MSGPACK_PP_NODE_90, MSGPACK_PP_NODE_94) +# define MSGPACK_PP_NODE_90(p) MSGPACK_PP_IIF(p(90), MSGPACK_PP_NODE_89, MSGPACK_PP_NODE_91) +# define MSGPACK_PP_NODE_89(p) MSGPACK_PP_IIF(p(89), 89, 90) +# define MSGPACK_PP_NODE_91(p) MSGPACK_PP_IIF(p(91), 91, 92) +# define MSGPACK_PP_NODE_94(p) MSGPACK_PP_IIF(p(94), MSGPACK_PP_NODE_93, MSGPACK_PP_NODE_95) +# define MSGPACK_PP_NODE_93(p) MSGPACK_PP_IIF(p(93), 93, 94) +# define MSGPACK_PP_NODE_95(p) MSGPACK_PP_IIF(p(95), 95, 96) +# define MSGPACK_PP_NODE_112(p) MSGPACK_PP_IIF(p(112), MSGPACK_PP_NODE_104, MSGPACK_PP_NODE_120) +# define MSGPACK_PP_NODE_104(p) MSGPACK_PP_IIF(p(104), MSGPACK_PP_NODE_100, MSGPACK_PP_NODE_108) +# define MSGPACK_PP_NODE_100(p) MSGPACK_PP_IIF(p(100), MSGPACK_PP_NODE_98, MSGPACK_PP_NODE_102) +# define MSGPACK_PP_NODE_98(p) MSGPACK_PP_IIF(p(98), MSGPACK_PP_NODE_97, MSGPACK_PP_NODE_99) +# define MSGPACK_PP_NODE_97(p) MSGPACK_PP_IIF(p(97), 97, 98) +# define MSGPACK_PP_NODE_99(p) MSGPACK_PP_IIF(p(99), 99, 100) +# define MSGPACK_PP_NODE_102(p) MSGPACK_PP_IIF(p(102), MSGPACK_PP_NODE_101, MSGPACK_PP_NODE_103) +# define MSGPACK_PP_NODE_101(p) MSGPACK_PP_IIF(p(101), 101, 102) +# define MSGPACK_PP_NODE_103(p) MSGPACK_PP_IIF(p(103), 103, 104) +# define MSGPACK_PP_NODE_108(p) MSGPACK_PP_IIF(p(108), MSGPACK_PP_NODE_106, MSGPACK_PP_NODE_110) +# define MSGPACK_PP_NODE_106(p) MSGPACK_PP_IIF(p(106), MSGPACK_PP_NODE_105, MSGPACK_PP_NODE_107) +# define MSGPACK_PP_NODE_105(p) MSGPACK_PP_IIF(p(105), 105, 106) +# define MSGPACK_PP_NODE_107(p) MSGPACK_PP_IIF(p(107), 107, 108) +# define MSGPACK_PP_NODE_110(p) MSGPACK_PP_IIF(p(110), MSGPACK_PP_NODE_109, MSGPACK_PP_NODE_111) +# define MSGPACK_PP_NODE_109(p) MSGPACK_PP_IIF(p(109), 109, 110) +# define MSGPACK_PP_NODE_111(p) MSGPACK_PP_IIF(p(111), 111, 112) +# define MSGPACK_PP_NODE_120(p) MSGPACK_PP_IIF(p(120), MSGPACK_PP_NODE_116, MSGPACK_PP_NODE_124) +# define MSGPACK_PP_NODE_116(p) MSGPACK_PP_IIF(p(116), MSGPACK_PP_NODE_114, MSGPACK_PP_NODE_118) +# define MSGPACK_PP_NODE_114(p) MSGPACK_PP_IIF(p(114), MSGPACK_PP_NODE_113, MSGPACK_PP_NODE_115) +# define MSGPACK_PP_NODE_113(p) MSGPACK_PP_IIF(p(113), 113, 114) +# define MSGPACK_PP_NODE_115(p) MSGPACK_PP_IIF(p(115), 115, 116) +# define MSGPACK_PP_NODE_118(p) MSGPACK_PP_IIF(p(118), MSGPACK_PP_NODE_117, MSGPACK_PP_NODE_119) +# define MSGPACK_PP_NODE_117(p) MSGPACK_PP_IIF(p(117), 117, 118) +# define MSGPACK_PP_NODE_119(p) MSGPACK_PP_IIF(p(119), 119, 120) +# define MSGPACK_PP_NODE_124(p) MSGPACK_PP_IIF(p(124), MSGPACK_PP_NODE_122, MSGPACK_PP_NODE_126) +# define MSGPACK_PP_NODE_122(p) MSGPACK_PP_IIF(p(122), MSGPACK_PP_NODE_121, MSGPACK_PP_NODE_123) +# define MSGPACK_PP_NODE_121(p) MSGPACK_PP_IIF(p(121), 121, 122) +# define MSGPACK_PP_NODE_123(p) MSGPACK_PP_IIF(p(123), 123, 124) +# define MSGPACK_PP_NODE_126(p) MSGPACK_PP_IIF(p(126), MSGPACK_PP_NODE_125, MSGPACK_PP_NODE_127) +# define MSGPACK_PP_NODE_125(p) MSGPACK_PP_IIF(p(125), 125, 126) +# define MSGPACK_PP_NODE_127(p) MSGPACK_PP_IIF(p(127), 127, 128) +# define MSGPACK_PP_NODE_192(p) MSGPACK_PP_IIF(p(192), MSGPACK_PP_NODE_160, MSGPACK_PP_NODE_224) +# define MSGPACK_PP_NODE_160(p) MSGPACK_PP_IIF(p(160), MSGPACK_PP_NODE_144, MSGPACK_PP_NODE_176) +# define MSGPACK_PP_NODE_144(p) MSGPACK_PP_IIF(p(144), MSGPACK_PP_NODE_136, MSGPACK_PP_NODE_152) +# define MSGPACK_PP_NODE_136(p) MSGPACK_PP_IIF(p(136), MSGPACK_PP_NODE_132, MSGPACK_PP_NODE_140) +# define MSGPACK_PP_NODE_132(p) MSGPACK_PP_IIF(p(132), MSGPACK_PP_NODE_130, MSGPACK_PP_NODE_134) +# define MSGPACK_PP_NODE_130(p) MSGPACK_PP_IIF(p(130), MSGPACK_PP_NODE_129, MSGPACK_PP_NODE_131) +# define MSGPACK_PP_NODE_129(p) MSGPACK_PP_IIF(p(129), 129, 130) +# define MSGPACK_PP_NODE_131(p) MSGPACK_PP_IIF(p(131), 131, 132) +# define MSGPACK_PP_NODE_134(p) MSGPACK_PP_IIF(p(134), MSGPACK_PP_NODE_133, MSGPACK_PP_NODE_135) +# define MSGPACK_PP_NODE_133(p) MSGPACK_PP_IIF(p(133), 133, 134) +# define MSGPACK_PP_NODE_135(p) MSGPACK_PP_IIF(p(135), 135, 136) +# define MSGPACK_PP_NODE_140(p) MSGPACK_PP_IIF(p(140), MSGPACK_PP_NODE_138, MSGPACK_PP_NODE_142) +# define MSGPACK_PP_NODE_138(p) MSGPACK_PP_IIF(p(138), MSGPACK_PP_NODE_137, MSGPACK_PP_NODE_139) +# define MSGPACK_PP_NODE_137(p) MSGPACK_PP_IIF(p(137), 137, 138) +# define MSGPACK_PP_NODE_139(p) MSGPACK_PP_IIF(p(139), 139, 140) +# define MSGPACK_PP_NODE_142(p) MSGPACK_PP_IIF(p(142), MSGPACK_PP_NODE_141, MSGPACK_PP_NODE_143) +# define MSGPACK_PP_NODE_141(p) MSGPACK_PP_IIF(p(141), 141, 142) +# define MSGPACK_PP_NODE_143(p) MSGPACK_PP_IIF(p(143), 143, 144) +# define MSGPACK_PP_NODE_152(p) MSGPACK_PP_IIF(p(152), MSGPACK_PP_NODE_148, MSGPACK_PP_NODE_156) +# define MSGPACK_PP_NODE_148(p) MSGPACK_PP_IIF(p(148), MSGPACK_PP_NODE_146, MSGPACK_PP_NODE_150) +# define MSGPACK_PP_NODE_146(p) MSGPACK_PP_IIF(p(146), MSGPACK_PP_NODE_145, MSGPACK_PP_NODE_147) +# define MSGPACK_PP_NODE_145(p) MSGPACK_PP_IIF(p(145), 145, 146) +# define MSGPACK_PP_NODE_147(p) MSGPACK_PP_IIF(p(147), 147, 148) +# define MSGPACK_PP_NODE_150(p) MSGPACK_PP_IIF(p(150), MSGPACK_PP_NODE_149, MSGPACK_PP_NODE_151) +# define MSGPACK_PP_NODE_149(p) MSGPACK_PP_IIF(p(149), 149, 150) +# define MSGPACK_PP_NODE_151(p) MSGPACK_PP_IIF(p(151), 151, 152) +# define MSGPACK_PP_NODE_156(p) MSGPACK_PP_IIF(p(156), MSGPACK_PP_NODE_154, MSGPACK_PP_NODE_158) +# define MSGPACK_PP_NODE_154(p) MSGPACK_PP_IIF(p(154), MSGPACK_PP_NODE_153, MSGPACK_PP_NODE_155) +# define MSGPACK_PP_NODE_153(p) MSGPACK_PP_IIF(p(153), 153, 154) +# define MSGPACK_PP_NODE_155(p) MSGPACK_PP_IIF(p(155), 155, 156) +# define MSGPACK_PP_NODE_158(p) MSGPACK_PP_IIF(p(158), MSGPACK_PP_NODE_157, MSGPACK_PP_NODE_159) +# define MSGPACK_PP_NODE_157(p) MSGPACK_PP_IIF(p(157), 157, 158) +# define MSGPACK_PP_NODE_159(p) MSGPACK_PP_IIF(p(159), 159, 160) +# define MSGPACK_PP_NODE_176(p) MSGPACK_PP_IIF(p(176), MSGPACK_PP_NODE_168, MSGPACK_PP_NODE_184) +# define MSGPACK_PP_NODE_168(p) MSGPACK_PP_IIF(p(168), MSGPACK_PP_NODE_164, MSGPACK_PP_NODE_172) +# define MSGPACK_PP_NODE_164(p) MSGPACK_PP_IIF(p(164), MSGPACK_PP_NODE_162, MSGPACK_PP_NODE_166) +# define MSGPACK_PP_NODE_162(p) MSGPACK_PP_IIF(p(162), MSGPACK_PP_NODE_161, MSGPACK_PP_NODE_163) +# define MSGPACK_PP_NODE_161(p) MSGPACK_PP_IIF(p(161), 161, 162) +# define MSGPACK_PP_NODE_163(p) MSGPACK_PP_IIF(p(163), 163, 164) +# define MSGPACK_PP_NODE_166(p) MSGPACK_PP_IIF(p(166), MSGPACK_PP_NODE_165, MSGPACK_PP_NODE_167) +# define MSGPACK_PP_NODE_165(p) MSGPACK_PP_IIF(p(165), 165, 166) +# define MSGPACK_PP_NODE_167(p) MSGPACK_PP_IIF(p(167), 167, 168) +# define MSGPACK_PP_NODE_172(p) MSGPACK_PP_IIF(p(172), MSGPACK_PP_NODE_170, MSGPACK_PP_NODE_174) +# define MSGPACK_PP_NODE_170(p) MSGPACK_PP_IIF(p(170), MSGPACK_PP_NODE_169, MSGPACK_PP_NODE_171) +# define MSGPACK_PP_NODE_169(p) MSGPACK_PP_IIF(p(169), 169, 170) +# define MSGPACK_PP_NODE_171(p) MSGPACK_PP_IIF(p(171), 171, 172) +# define MSGPACK_PP_NODE_174(p) MSGPACK_PP_IIF(p(174), MSGPACK_PP_NODE_173, MSGPACK_PP_NODE_175) +# define MSGPACK_PP_NODE_173(p) MSGPACK_PP_IIF(p(173), 173, 174) +# define MSGPACK_PP_NODE_175(p) MSGPACK_PP_IIF(p(175), 175, 176) +# define MSGPACK_PP_NODE_184(p) MSGPACK_PP_IIF(p(184), MSGPACK_PP_NODE_180, MSGPACK_PP_NODE_188) +# define MSGPACK_PP_NODE_180(p) MSGPACK_PP_IIF(p(180), MSGPACK_PP_NODE_178, MSGPACK_PP_NODE_182) +# define MSGPACK_PP_NODE_178(p) MSGPACK_PP_IIF(p(178), MSGPACK_PP_NODE_177, MSGPACK_PP_NODE_179) +# define MSGPACK_PP_NODE_177(p) MSGPACK_PP_IIF(p(177), 177, 178) +# define MSGPACK_PP_NODE_179(p) MSGPACK_PP_IIF(p(179), 179, 180) +# define MSGPACK_PP_NODE_182(p) MSGPACK_PP_IIF(p(182), MSGPACK_PP_NODE_181, MSGPACK_PP_NODE_183) +# define MSGPACK_PP_NODE_181(p) MSGPACK_PP_IIF(p(181), 181, 182) +# define MSGPACK_PP_NODE_183(p) MSGPACK_PP_IIF(p(183), 183, 184) +# define MSGPACK_PP_NODE_188(p) MSGPACK_PP_IIF(p(188), MSGPACK_PP_NODE_186, MSGPACK_PP_NODE_190) +# define MSGPACK_PP_NODE_186(p) MSGPACK_PP_IIF(p(186), MSGPACK_PP_NODE_185, MSGPACK_PP_NODE_187) +# define MSGPACK_PP_NODE_185(p) MSGPACK_PP_IIF(p(185), 185, 186) +# define MSGPACK_PP_NODE_187(p) MSGPACK_PP_IIF(p(187), 187, 188) +# define MSGPACK_PP_NODE_190(p) MSGPACK_PP_IIF(p(190), MSGPACK_PP_NODE_189, MSGPACK_PP_NODE_191) +# define MSGPACK_PP_NODE_189(p) MSGPACK_PP_IIF(p(189), 189, 190) +# define MSGPACK_PP_NODE_191(p) MSGPACK_PP_IIF(p(191), 191, 192) +# define MSGPACK_PP_NODE_224(p) MSGPACK_PP_IIF(p(224), MSGPACK_PP_NODE_208, MSGPACK_PP_NODE_240) +# define MSGPACK_PP_NODE_208(p) MSGPACK_PP_IIF(p(208), MSGPACK_PP_NODE_200, MSGPACK_PP_NODE_216) +# define MSGPACK_PP_NODE_200(p) MSGPACK_PP_IIF(p(200), MSGPACK_PP_NODE_196, MSGPACK_PP_NODE_204) +# define MSGPACK_PP_NODE_196(p) MSGPACK_PP_IIF(p(196), MSGPACK_PP_NODE_194, MSGPACK_PP_NODE_198) +# define MSGPACK_PP_NODE_194(p) MSGPACK_PP_IIF(p(194), MSGPACK_PP_NODE_193, MSGPACK_PP_NODE_195) +# define MSGPACK_PP_NODE_193(p) MSGPACK_PP_IIF(p(193), 193, 194) +# define MSGPACK_PP_NODE_195(p) MSGPACK_PP_IIF(p(195), 195, 196) +# define MSGPACK_PP_NODE_198(p) MSGPACK_PP_IIF(p(198), MSGPACK_PP_NODE_197, MSGPACK_PP_NODE_199) +# define MSGPACK_PP_NODE_197(p) MSGPACK_PP_IIF(p(197), 197, 198) +# define MSGPACK_PP_NODE_199(p) MSGPACK_PP_IIF(p(199), 199, 200) +# define MSGPACK_PP_NODE_204(p) MSGPACK_PP_IIF(p(204), MSGPACK_PP_NODE_202, MSGPACK_PP_NODE_206) +# define MSGPACK_PP_NODE_202(p) MSGPACK_PP_IIF(p(202), MSGPACK_PP_NODE_201, MSGPACK_PP_NODE_203) +# define MSGPACK_PP_NODE_201(p) MSGPACK_PP_IIF(p(201), 201, 202) +# define MSGPACK_PP_NODE_203(p) MSGPACK_PP_IIF(p(203), 203, 204) +# define MSGPACK_PP_NODE_206(p) MSGPACK_PP_IIF(p(206), MSGPACK_PP_NODE_205, MSGPACK_PP_NODE_207) +# define MSGPACK_PP_NODE_205(p) MSGPACK_PP_IIF(p(205), 205, 206) +# define MSGPACK_PP_NODE_207(p) MSGPACK_PP_IIF(p(207), 207, 208) +# define MSGPACK_PP_NODE_216(p) MSGPACK_PP_IIF(p(216), MSGPACK_PP_NODE_212, MSGPACK_PP_NODE_220) +# define MSGPACK_PP_NODE_212(p) MSGPACK_PP_IIF(p(212), MSGPACK_PP_NODE_210, MSGPACK_PP_NODE_214) +# define MSGPACK_PP_NODE_210(p) MSGPACK_PP_IIF(p(210), MSGPACK_PP_NODE_209, MSGPACK_PP_NODE_211) +# define MSGPACK_PP_NODE_209(p) MSGPACK_PP_IIF(p(209), 209, 210) +# define MSGPACK_PP_NODE_211(p) MSGPACK_PP_IIF(p(211), 211, 212) +# define MSGPACK_PP_NODE_214(p) MSGPACK_PP_IIF(p(214), MSGPACK_PP_NODE_213, MSGPACK_PP_NODE_215) +# define MSGPACK_PP_NODE_213(p) MSGPACK_PP_IIF(p(213), 213, 214) +# define MSGPACK_PP_NODE_215(p) MSGPACK_PP_IIF(p(215), 215, 216) +# define MSGPACK_PP_NODE_220(p) MSGPACK_PP_IIF(p(220), MSGPACK_PP_NODE_218, MSGPACK_PP_NODE_222) +# define MSGPACK_PP_NODE_218(p) MSGPACK_PP_IIF(p(218), MSGPACK_PP_NODE_217, MSGPACK_PP_NODE_219) +# define MSGPACK_PP_NODE_217(p) MSGPACK_PP_IIF(p(217), 217, 218) +# define MSGPACK_PP_NODE_219(p) MSGPACK_PP_IIF(p(219), 219, 220) +# define MSGPACK_PP_NODE_222(p) MSGPACK_PP_IIF(p(222), MSGPACK_PP_NODE_221, MSGPACK_PP_NODE_223) +# define MSGPACK_PP_NODE_221(p) MSGPACK_PP_IIF(p(221), 221, 222) +# define MSGPACK_PP_NODE_223(p) MSGPACK_PP_IIF(p(223), 223, 224) +# define MSGPACK_PP_NODE_240(p) MSGPACK_PP_IIF(p(240), MSGPACK_PP_NODE_232, MSGPACK_PP_NODE_248) +# define MSGPACK_PP_NODE_232(p) MSGPACK_PP_IIF(p(232), MSGPACK_PP_NODE_228, MSGPACK_PP_NODE_236) +# define MSGPACK_PP_NODE_228(p) MSGPACK_PP_IIF(p(228), MSGPACK_PP_NODE_226, MSGPACK_PP_NODE_230) +# define MSGPACK_PP_NODE_226(p) MSGPACK_PP_IIF(p(226), MSGPACK_PP_NODE_225, MSGPACK_PP_NODE_227) +# define MSGPACK_PP_NODE_225(p) MSGPACK_PP_IIF(p(225), 225, 226) +# define MSGPACK_PP_NODE_227(p) MSGPACK_PP_IIF(p(227), 227, 228) +# define MSGPACK_PP_NODE_230(p) MSGPACK_PP_IIF(p(230), MSGPACK_PP_NODE_229, MSGPACK_PP_NODE_231) +# define MSGPACK_PP_NODE_229(p) MSGPACK_PP_IIF(p(229), 229, 230) +# define MSGPACK_PP_NODE_231(p) MSGPACK_PP_IIF(p(231), 231, 232) +# define MSGPACK_PP_NODE_236(p) MSGPACK_PP_IIF(p(236), MSGPACK_PP_NODE_234, MSGPACK_PP_NODE_238) +# define MSGPACK_PP_NODE_234(p) MSGPACK_PP_IIF(p(234), MSGPACK_PP_NODE_233, MSGPACK_PP_NODE_235) +# define MSGPACK_PP_NODE_233(p) MSGPACK_PP_IIF(p(233), 233, 234) +# define MSGPACK_PP_NODE_235(p) MSGPACK_PP_IIF(p(235), 235, 236) +# define MSGPACK_PP_NODE_238(p) MSGPACK_PP_IIF(p(238), MSGPACK_PP_NODE_237, MSGPACK_PP_NODE_239) +# define MSGPACK_PP_NODE_237(p) MSGPACK_PP_IIF(p(237), 237, 238) +# define MSGPACK_PP_NODE_239(p) MSGPACK_PP_IIF(p(239), 239, 240) +# define MSGPACK_PP_NODE_248(p) MSGPACK_PP_IIF(p(248), MSGPACK_PP_NODE_244, MSGPACK_PP_NODE_252) +# define MSGPACK_PP_NODE_244(p) MSGPACK_PP_IIF(p(244), MSGPACK_PP_NODE_242, MSGPACK_PP_NODE_246) +# define MSGPACK_PP_NODE_242(p) MSGPACK_PP_IIF(p(242), MSGPACK_PP_NODE_241, MSGPACK_PP_NODE_243) +# define MSGPACK_PP_NODE_241(p) MSGPACK_PP_IIF(p(241), 241, 242) +# define MSGPACK_PP_NODE_243(p) MSGPACK_PP_IIF(p(243), 243, 244) +# define MSGPACK_PP_NODE_246(p) MSGPACK_PP_IIF(p(246), MSGPACK_PP_NODE_245, MSGPACK_PP_NODE_247) +# define MSGPACK_PP_NODE_245(p) MSGPACK_PP_IIF(p(245), 245, 246) +# define MSGPACK_PP_NODE_247(p) MSGPACK_PP_IIF(p(247), 247, 248) +# define MSGPACK_PP_NODE_252(p) MSGPACK_PP_IIF(p(252), MSGPACK_PP_NODE_250, MSGPACK_PP_NODE_254) +# define MSGPACK_PP_NODE_250(p) MSGPACK_PP_IIF(p(250), MSGPACK_PP_NODE_249, MSGPACK_PP_NODE_251) +# define MSGPACK_PP_NODE_249(p) MSGPACK_PP_IIF(p(249), 249, 250) +# define MSGPACK_PP_NODE_251(p) MSGPACK_PP_IIF(p(251), 251, 252) +# define MSGPACK_PP_NODE_254(p) MSGPACK_PP_IIF(p(254), MSGPACK_PP_NODE_253, MSGPACK_PP_NODE_255) +# define MSGPACK_PP_NODE_253(p) MSGPACK_PP_IIF(p(253), 253, 254) +# define MSGPACK_PP_NODE_255(p) MSGPACK_PP_IIF(p(255), 255, 256) +# +# endif +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/detail/check.hpp b/third_party/msgpack/include/msgpack/preprocessor/detail/check.hpp new file mode 100644 index 000000000000..b1bb3aecda49 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/detail/check.hpp @@ -0,0 +1,48 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_DETAIL_CHECK_HPP +# define MSGPACK_PREPROCESSOR_DETAIL_CHECK_HPP +# +# include +# include +# +# /* MSGPACK_PP_CHECK */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_CHECK(x, type) MSGPACK_PP_CHECK_D(x, type) +# else +# define MSGPACK_PP_CHECK(x, type) MSGPACK_PP_CHECK_OO((x, type)) +# define MSGPACK_PP_CHECK_OO(par) MSGPACK_PP_CHECK_D ## par +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() && ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC() +# define MSGPACK_PP_CHECK_D(x, type) MSGPACK_PP_CHECK_1(MSGPACK_PP_CAT(MSGPACK_PP_CHECK_RESULT_, type x)) +# define MSGPACK_PP_CHECK_1(chk) MSGPACK_PP_CHECK_2(chk) +# define MSGPACK_PP_CHECK_2(res, _) res +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_CHECK_D(x, type) MSGPACK_PP_CHECK_1(type x) +# define MSGPACK_PP_CHECK_1(chk) MSGPACK_PP_CHECK_2(chk) +# define MSGPACK_PP_CHECK_2(chk) MSGPACK_PP_CHECK_3((MSGPACK_PP_CHECK_RESULT_ ## chk)) +# define MSGPACK_PP_CHECK_3(im) MSGPACK_PP_CHECK_5(MSGPACK_PP_CHECK_4 im) +# define MSGPACK_PP_CHECK_4(res, _) res +# define MSGPACK_PP_CHECK_5(res) res +# else /* DMC */ +# define MSGPACK_PP_CHECK_D(x, type) MSGPACK_PP_CHECK_OO((type x)) +# define MSGPACK_PP_CHECK_OO(par) MSGPACK_PP_CHECK_0 ## par +# define MSGPACK_PP_CHECK_0(chk) MSGPACK_PP_CHECK_1(MSGPACK_PP_CAT(MSGPACK_PP_CHECK_RESULT_, chk)) +# define MSGPACK_PP_CHECK_1(chk) MSGPACK_PP_CHECK_2(chk) +# define MSGPACK_PP_CHECK_2(res, _) res +# endif +# +# define MSGPACK_PP_CHECK_RESULT_1 1, MSGPACK_PP_NIL +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/detail/dmc/auto_rec.hpp b/third_party/msgpack/include/msgpack/preprocessor/detail/dmc/auto_rec.hpp new file mode 100644 index 000000000000..7600b3113d23 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/detail/dmc/auto_rec.hpp @@ -0,0 +1,286 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_DETAIL_AUTO_REC_HPP +# define MSGPACK_PREPROCESSOR_DETAIL_AUTO_REC_HPP +# +# include +# +# /* MSGPACK_PP_AUTO_REC */ +# +# define MSGPACK_PP_AUTO_REC(pred, n) MSGPACK_PP_NODE_ENTRY_ ## n(pred) +# +# define MSGPACK_PP_NODE_ENTRY_256(p) MSGPACK_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p) +# define MSGPACK_PP_NODE_ENTRY_128(p) MSGPACK_PP_NODE_64(p)(p)(p)(p)(p)(p)(p) +# define MSGPACK_PP_NODE_ENTRY_64(p) MSGPACK_PP_NODE_32(p)(p)(p)(p)(p)(p) +# define MSGPACK_PP_NODE_ENTRY_32(p) MSGPACK_PP_NODE_16(p)(p)(p)(p)(p) +# define MSGPACK_PP_NODE_ENTRY_16(p) MSGPACK_PP_NODE_8(p)(p)(p)(p) +# define MSGPACK_PP_NODE_ENTRY_8(p) MSGPACK_PP_NODE_4(p)(p)(p) +# define MSGPACK_PP_NODE_ENTRY_4(p) MSGPACK_PP_NODE_2(p)(p) +# define MSGPACK_PP_NODE_ENTRY_2(p) MSGPACK_PP_NODE_1(p) +# +# define MSGPACK_PP_NODE_128(p) MSGPACK_PP_IIF(p##(128), MSGPACK_PP_NODE_64, MSGPACK_PP_NODE_192) +# define MSGPACK_PP_NODE_64(p) MSGPACK_PP_IIF(p##(64), MSGPACK_PP_NODE_32, MSGPACK_PP_NODE_96) +# define MSGPACK_PP_NODE_32(p) MSGPACK_PP_IIF(p##(32), MSGPACK_PP_NODE_16, MSGPACK_PP_NODE_48) +# define MSGPACK_PP_NODE_16(p) MSGPACK_PP_IIF(p##(16), MSGPACK_PP_NODE_8, MSGPACK_PP_NODE_24) +# define MSGPACK_PP_NODE_8(p) MSGPACK_PP_IIF(p##(8), MSGPACK_PP_NODE_4, MSGPACK_PP_NODE_12) +# define MSGPACK_PP_NODE_4(p) MSGPACK_PP_IIF(p##(4), MSGPACK_PP_NODE_2, MSGPACK_PP_NODE_6) +# define MSGPACK_PP_NODE_2(p) MSGPACK_PP_IIF(p##(2), MSGPACK_PP_NODE_1, MSGPACK_PP_NODE_3) +# define MSGPACK_PP_NODE_1(p) MSGPACK_PP_IIF(p##(1), 1, 2) +# define MSGPACK_PP_NODE_3(p) MSGPACK_PP_IIF(p##(3), 3, 4) +# define MSGPACK_PP_NODE_6(p) MSGPACK_PP_IIF(p##(6), MSGPACK_PP_NODE_5, MSGPACK_PP_NODE_7) +# define MSGPACK_PP_NODE_5(p) MSGPACK_PP_IIF(p##(5), 5, 6) +# define MSGPACK_PP_NODE_7(p) MSGPACK_PP_IIF(p##(7), 7, 8) +# define MSGPACK_PP_NODE_12(p) MSGPACK_PP_IIF(p##(12), MSGPACK_PP_NODE_10, MSGPACK_PP_NODE_14) +# define MSGPACK_PP_NODE_10(p) MSGPACK_PP_IIF(p##(10), MSGPACK_PP_NODE_9, MSGPACK_PP_NODE_11) +# define MSGPACK_PP_NODE_9(p) MSGPACK_PP_IIF(p##(9), 9, 10) +# define MSGPACK_PP_NODE_11(p) MSGPACK_PP_IIF(p##(11), 11, 12) +# define MSGPACK_PP_NODE_14(p) MSGPACK_PP_IIF(p##(14), MSGPACK_PP_NODE_13, MSGPACK_PP_NODE_15) +# define MSGPACK_PP_NODE_13(p) MSGPACK_PP_IIF(p##(13), 13, 14) +# define MSGPACK_PP_NODE_15(p) MSGPACK_PP_IIF(p##(15), 15, 16) +# define MSGPACK_PP_NODE_24(p) MSGPACK_PP_IIF(p##(24), MSGPACK_PP_NODE_20, MSGPACK_PP_NODE_28) +# define MSGPACK_PP_NODE_20(p) MSGPACK_PP_IIF(p##(20), MSGPACK_PP_NODE_18, MSGPACK_PP_NODE_22) +# define MSGPACK_PP_NODE_18(p) MSGPACK_PP_IIF(p##(18), MSGPACK_PP_NODE_17, MSGPACK_PP_NODE_19) +# define MSGPACK_PP_NODE_17(p) MSGPACK_PP_IIF(p##(17), 17, 18) +# define MSGPACK_PP_NODE_19(p) MSGPACK_PP_IIF(p##(19), 19, 20) +# define MSGPACK_PP_NODE_22(p) MSGPACK_PP_IIF(p##(22), MSGPACK_PP_NODE_21, MSGPACK_PP_NODE_23) +# define MSGPACK_PP_NODE_21(p) MSGPACK_PP_IIF(p##(21), 21, 22) +# define MSGPACK_PP_NODE_23(p) MSGPACK_PP_IIF(p##(23), 23, 24) +# define MSGPACK_PP_NODE_28(p) MSGPACK_PP_IIF(p##(28), MSGPACK_PP_NODE_26, MSGPACK_PP_NODE_30) +# define MSGPACK_PP_NODE_26(p) MSGPACK_PP_IIF(p##(26), MSGPACK_PP_NODE_25, MSGPACK_PP_NODE_27) +# define MSGPACK_PP_NODE_25(p) MSGPACK_PP_IIF(p##(25), 25, 26) +# define MSGPACK_PP_NODE_27(p) MSGPACK_PP_IIF(p##(27), 27, 28) +# define MSGPACK_PP_NODE_30(p) MSGPACK_PP_IIF(p##(30), MSGPACK_PP_NODE_29, MSGPACK_PP_NODE_31) +# define MSGPACK_PP_NODE_29(p) MSGPACK_PP_IIF(p##(29), 29, 30) +# define MSGPACK_PP_NODE_31(p) MSGPACK_PP_IIF(p##(31), 31, 32) +# define MSGPACK_PP_NODE_48(p) MSGPACK_PP_IIF(p##(48), MSGPACK_PP_NODE_40, MSGPACK_PP_NODE_56) +# define MSGPACK_PP_NODE_40(p) MSGPACK_PP_IIF(p##(40), MSGPACK_PP_NODE_36, MSGPACK_PP_NODE_44) +# define MSGPACK_PP_NODE_36(p) MSGPACK_PP_IIF(p##(36), MSGPACK_PP_NODE_34, MSGPACK_PP_NODE_38) +# define MSGPACK_PP_NODE_34(p) MSGPACK_PP_IIF(p##(34), MSGPACK_PP_NODE_33, MSGPACK_PP_NODE_35) +# define MSGPACK_PP_NODE_33(p) MSGPACK_PP_IIF(p##(33), 33, 34) +# define MSGPACK_PP_NODE_35(p) MSGPACK_PP_IIF(p##(35), 35, 36) +# define MSGPACK_PP_NODE_38(p) MSGPACK_PP_IIF(p##(38), MSGPACK_PP_NODE_37, MSGPACK_PP_NODE_39) +# define MSGPACK_PP_NODE_37(p) MSGPACK_PP_IIF(p##(37), 37, 38) +# define MSGPACK_PP_NODE_39(p) MSGPACK_PP_IIF(p##(39), 39, 40) +# define MSGPACK_PP_NODE_44(p) MSGPACK_PP_IIF(p##(44), MSGPACK_PP_NODE_42, MSGPACK_PP_NODE_46) +# define MSGPACK_PP_NODE_42(p) MSGPACK_PP_IIF(p##(42), MSGPACK_PP_NODE_41, MSGPACK_PP_NODE_43) +# define MSGPACK_PP_NODE_41(p) MSGPACK_PP_IIF(p##(41), 41, 42) +# define MSGPACK_PP_NODE_43(p) MSGPACK_PP_IIF(p##(43), 43, 44) +# define MSGPACK_PP_NODE_46(p) MSGPACK_PP_IIF(p##(46), MSGPACK_PP_NODE_45, MSGPACK_PP_NODE_47) +# define MSGPACK_PP_NODE_45(p) MSGPACK_PP_IIF(p##(45), 45, 46) +# define MSGPACK_PP_NODE_47(p) MSGPACK_PP_IIF(p##(47), 47, 48) +# define MSGPACK_PP_NODE_56(p) MSGPACK_PP_IIF(p##(56), MSGPACK_PP_NODE_52, MSGPACK_PP_NODE_60) +# define MSGPACK_PP_NODE_52(p) MSGPACK_PP_IIF(p##(52), MSGPACK_PP_NODE_50, MSGPACK_PP_NODE_54) +# define MSGPACK_PP_NODE_50(p) MSGPACK_PP_IIF(p##(50), MSGPACK_PP_NODE_49, MSGPACK_PP_NODE_51) +# define MSGPACK_PP_NODE_49(p) MSGPACK_PP_IIF(p##(49), 49, 50) +# define MSGPACK_PP_NODE_51(p) MSGPACK_PP_IIF(p##(51), 51, 52) +# define MSGPACK_PP_NODE_54(p) MSGPACK_PP_IIF(p##(54), MSGPACK_PP_NODE_53, MSGPACK_PP_NODE_55) +# define MSGPACK_PP_NODE_53(p) MSGPACK_PP_IIF(p##(53), 53, 54) +# define MSGPACK_PP_NODE_55(p) MSGPACK_PP_IIF(p##(55), 55, 56) +# define MSGPACK_PP_NODE_60(p) MSGPACK_PP_IIF(p##(60), MSGPACK_PP_NODE_58, MSGPACK_PP_NODE_62) +# define MSGPACK_PP_NODE_58(p) MSGPACK_PP_IIF(p##(58), MSGPACK_PP_NODE_57, MSGPACK_PP_NODE_59) +# define MSGPACK_PP_NODE_57(p) MSGPACK_PP_IIF(p##(57), 57, 58) +# define MSGPACK_PP_NODE_59(p) MSGPACK_PP_IIF(p##(59), 59, 60) +# define MSGPACK_PP_NODE_62(p) MSGPACK_PP_IIF(p##(62), MSGPACK_PP_NODE_61, MSGPACK_PP_NODE_63) +# define MSGPACK_PP_NODE_61(p) MSGPACK_PP_IIF(p##(61), 61, 62) +# define MSGPACK_PP_NODE_63(p) MSGPACK_PP_IIF(p##(63), 63, 64) +# define MSGPACK_PP_NODE_96(p) MSGPACK_PP_IIF(p##(96), MSGPACK_PP_NODE_80, MSGPACK_PP_NODE_112) +# define MSGPACK_PP_NODE_80(p) MSGPACK_PP_IIF(p##(80), MSGPACK_PP_NODE_72, MSGPACK_PP_NODE_88) +# define MSGPACK_PP_NODE_72(p) MSGPACK_PP_IIF(p##(72), MSGPACK_PP_NODE_68, MSGPACK_PP_NODE_76) +# define MSGPACK_PP_NODE_68(p) MSGPACK_PP_IIF(p##(68), MSGPACK_PP_NODE_66, MSGPACK_PP_NODE_70) +# define MSGPACK_PP_NODE_66(p) MSGPACK_PP_IIF(p##(66), MSGPACK_PP_NODE_65, MSGPACK_PP_NODE_67) +# define MSGPACK_PP_NODE_65(p) MSGPACK_PP_IIF(p##(65), 65, 66) +# define MSGPACK_PP_NODE_67(p) MSGPACK_PP_IIF(p##(67), 67, 68) +# define MSGPACK_PP_NODE_70(p) MSGPACK_PP_IIF(p##(70), MSGPACK_PP_NODE_69, MSGPACK_PP_NODE_71) +# define MSGPACK_PP_NODE_69(p) MSGPACK_PP_IIF(p##(69), 69, 70) +# define MSGPACK_PP_NODE_71(p) MSGPACK_PP_IIF(p##(71), 71, 72) +# define MSGPACK_PP_NODE_76(p) MSGPACK_PP_IIF(p##(76), MSGPACK_PP_NODE_74, MSGPACK_PP_NODE_78) +# define MSGPACK_PP_NODE_74(p) MSGPACK_PP_IIF(p##(74), MSGPACK_PP_NODE_73, MSGPACK_PP_NODE_75) +# define MSGPACK_PP_NODE_73(p) MSGPACK_PP_IIF(p##(73), 73, 74) +# define MSGPACK_PP_NODE_75(p) MSGPACK_PP_IIF(p##(75), 75, 76) +# define MSGPACK_PP_NODE_78(p) MSGPACK_PP_IIF(p##(78), MSGPACK_PP_NODE_77, MSGPACK_PP_NODE_79) +# define MSGPACK_PP_NODE_77(p) MSGPACK_PP_IIF(p##(77), 77, 78) +# define MSGPACK_PP_NODE_79(p) MSGPACK_PP_IIF(p##(79), 79, 80) +# define MSGPACK_PP_NODE_88(p) MSGPACK_PP_IIF(p##(88), MSGPACK_PP_NODE_84, MSGPACK_PP_NODE_92) +# define MSGPACK_PP_NODE_84(p) MSGPACK_PP_IIF(p##(84), MSGPACK_PP_NODE_82, MSGPACK_PP_NODE_86) +# define MSGPACK_PP_NODE_82(p) MSGPACK_PP_IIF(p##(82), MSGPACK_PP_NODE_81, MSGPACK_PP_NODE_83) +# define MSGPACK_PP_NODE_81(p) MSGPACK_PP_IIF(p##(81), 81, 82) +# define MSGPACK_PP_NODE_83(p) MSGPACK_PP_IIF(p##(83), 83, 84) +# define MSGPACK_PP_NODE_86(p) MSGPACK_PP_IIF(p##(86), MSGPACK_PP_NODE_85, MSGPACK_PP_NODE_87) +# define MSGPACK_PP_NODE_85(p) MSGPACK_PP_IIF(p##(85), 85, 86) +# define MSGPACK_PP_NODE_87(p) MSGPACK_PP_IIF(p##(87), 87, 88) +# define MSGPACK_PP_NODE_92(p) MSGPACK_PP_IIF(p##(92), MSGPACK_PP_NODE_90, MSGPACK_PP_NODE_94) +# define MSGPACK_PP_NODE_90(p) MSGPACK_PP_IIF(p##(90), MSGPACK_PP_NODE_89, MSGPACK_PP_NODE_91) +# define MSGPACK_PP_NODE_89(p) MSGPACK_PP_IIF(p##(89), 89, 90) +# define MSGPACK_PP_NODE_91(p) MSGPACK_PP_IIF(p##(91), 91, 92) +# define MSGPACK_PP_NODE_94(p) MSGPACK_PP_IIF(p##(94), MSGPACK_PP_NODE_93, MSGPACK_PP_NODE_95) +# define MSGPACK_PP_NODE_93(p) MSGPACK_PP_IIF(p##(93), 93, 94) +# define MSGPACK_PP_NODE_95(p) MSGPACK_PP_IIF(p##(95), 95, 96) +# define MSGPACK_PP_NODE_112(p) MSGPACK_PP_IIF(p##(112), MSGPACK_PP_NODE_104, MSGPACK_PP_NODE_120) +# define MSGPACK_PP_NODE_104(p) MSGPACK_PP_IIF(p##(104), MSGPACK_PP_NODE_100, MSGPACK_PP_NODE_108) +# define MSGPACK_PP_NODE_100(p) MSGPACK_PP_IIF(p##(100), MSGPACK_PP_NODE_98, MSGPACK_PP_NODE_102) +# define MSGPACK_PP_NODE_98(p) MSGPACK_PP_IIF(p##(98), MSGPACK_PP_NODE_97, MSGPACK_PP_NODE_99) +# define MSGPACK_PP_NODE_97(p) MSGPACK_PP_IIF(p##(97), 97, 98) +# define MSGPACK_PP_NODE_99(p) MSGPACK_PP_IIF(p##(99), 99, 100) +# define MSGPACK_PP_NODE_102(p) MSGPACK_PP_IIF(p##(102), MSGPACK_PP_NODE_101, MSGPACK_PP_NODE_103) +# define MSGPACK_PP_NODE_101(p) MSGPACK_PP_IIF(p##(101), 101, 102) +# define MSGPACK_PP_NODE_103(p) MSGPACK_PP_IIF(p##(103), 103, 104) +# define MSGPACK_PP_NODE_108(p) MSGPACK_PP_IIF(p##(108), MSGPACK_PP_NODE_106, MSGPACK_PP_NODE_110) +# define MSGPACK_PP_NODE_106(p) MSGPACK_PP_IIF(p##(106), MSGPACK_PP_NODE_105, MSGPACK_PP_NODE_107) +# define MSGPACK_PP_NODE_105(p) MSGPACK_PP_IIF(p##(105), 105, 106) +# define MSGPACK_PP_NODE_107(p) MSGPACK_PP_IIF(p##(107), 107, 108) +# define MSGPACK_PP_NODE_110(p) MSGPACK_PP_IIF(p##(110), MSGPACK_PP_NODE_109, MSGPACK_PP_NODE_111) +# define MSGPACK_PP_NODE_109(p) MSGPACK_PP_IIF(p##(109), 109, 110) +# define MSGPACK_PP_NODE_111(p) MSGPACK_PP_IIF(p##(111), 111, 112) +# define MSGPACK_PP_NODE_120(p) MSGPACK_PP_IIF(p##(120), MSGPACK_PP_NODE_116, MSGPACK_PP_NODE_124) +# define MSGPACK_PP_NODE_116(p) MSGPACK_PP_IIF(p##(116), MSGPACK_PP_NODE_114, MSGPACK_PP_NODE_118) +# define MSGPACK_PP_NODE_114(p) MSGPACK_PP_IIF(p##(114), MSGPACK_PP_NODE_113, MSGPACK_PP_NODE_115) +# define MSGPACK_PP_NODE_113(p) MSGPACK_PP_IIF(p##(113), 113, 114) +# define MSGPACK_PP_NODE_115(p) MSGPACK_PP_IIF(p##(115), 115, 116) +# define MSGPACK_PP_NODE_118(p) MSGPACK_PP_IIF(p##(118), MSGPACK_PP_NODE_117, MSGPACK_PP_NODE_119) +# define MSGPACK_PP_NODE_117(p) MSGPACK_PP_IIF(p##(117), 117, 118) +# define MSGPACK_PP_NODE_119(p) MSGPACK_PP_IIF(p##(119), 119, 120) +# define MSGPACK_PP_NODE_124(p) MSGPACK_PP_IIF(p##(124), MSGPACK_PP_NODE_122, MSGPACK_PP_NODE_126) +# define MSGPACK_PP_NODE_122(p) MSGPACK_PP_IIF(p##(122), MSGPACK_PP_NODE_121, MSGPACK_PP_NODE_123) +# define MSGPACK_PP_NODE_121(p) MSGPACK_PP_IIF(p##(121), 121, 122) +# define MSGPACK_PP_NODE_123(p) MSGPACK_PP_IIF(p##(123), 123, 124) +# define MSGPACK_PP_NODE_126(p) MSGPACK_PP_IIF(p##(126), MSGPACK_PP_NODE_125, MSGPACK_PP_NODE_127) +# define MSGPACK_PP_NODE_125(p) MSGPACK_PP_IIF(p##(125), 125, 126) +# define MSGPACK_PP_NODE_127(p) MSGPACK_PP_IIF(p##(127), 127, 128) +# define MSGPACK_PP_NODE_192(p) MSGPACK_PP_IIF(p##(192), MSGPACK_PP_NODE_160, MSGPACK_PP_NODE_224) +# define MSGPACK_PP_NODE_160(p) MSGPACK_PP_IIF(p##(160), MSGPACK_PP_NODE_144, MSGPACK_PP_NODE_176) +# define MSGPACK_PP_NODE_144(p) MSGPACK_PP_IIF(p##(144), MSGPACK_PP_NODE_136, MSGPACK_PP_NODE_152) +# define MSGPACK_PP_NODE_136(p) MSGPACK_PP_IIF(p##(136), MSGPACK_PP_NODE_132, MSGPACK_PP_NODE_140) +# define MSGPACK_PP_NODE_132(p) MSGPACK_PP_IIF(p##(132), MSGPACK_PP_NODE_130, MSGPACK_PP_NODE_134) +# define MSGPACK_PP_NODE_130(p) MSGPACK_PP_IIF(p##(130), MSGPACK_PP_NODE_129, MSGPACK_PP_NODE_131) +# define MSGPACK_PP_NODE_129(p) MSGPACK_PP_IIF(p##(129), 129, 130) +# define MSGPACK_PP_NODE_131(p) MSGPACK_PP_IIF(p##(131), 131, 132) +# define MSGPACK_PP_NODE_134(p) MSGPACK_PP_IIF(p##(134), MSGPACK_PP_NODE_133, MSGPACK_PP_NODE_135) +# define MSGPACK_PP_NODE_133(p) MSGPACK_PP_IIF(p##(133), 133, 134) +# define MSGPACK_PP_NODE_135(p) MSGPACK_PP_IIF(p##(135), 135, 136) +# define MSGPACK_PP_NODE_140(p) MSGPACK_PP_IIF(p##(140), MSGPACK_PP_NODE_138, MSGPACK_PP_NODE_142) +# define MSGPACK_PP_NODE_138(p) MSGPACK_PP_IIF(p##(138), MSGPACK_PP_NODE_137, MSGPACK_PP_NODE_139) +# define MSGPACK_PP_NODE_137(p) MSGPACK_PP_IIF(p##(137), 137, 138) +# define MSGPACK_PP_NODE_139(p) MSGPACK_PP_IIF(p##(139), 139, 140) +# define MSGPACK_PP_NODE_142(p) MSGPACK_PP_IIF(p##(142), MSGPACK_PP_NODE_141, MSGPACK_PP_NODE_143) +# define MSGPACK_PP_NODE_141(p) MSGPACK_PP_IIF(p##(141), 141, 142) +# define MSGPACK_PP_NODE_143(p) MSGPACK_PP_IIF(p##(143), 143, 144) +# define MSGPACK_PP_NODE_152(p) MSGPACK_PP_IIF(p##(152), MSGPACK_PP_NODE_148, MSGPACK_PP_NODE_156) +# define MSGPACK_PP_NODE_148(p) MSGPACK_PP_IIF(p##(148), MSGPACK_PP_NODE_146, MSGPACK_PP_NODE_150) +# define MSGPACK_PP_NODE_146(p) MSGPACK_PP_IIF(p##(146), MSGPACK_PP_NODE_145, MSGPACK_PP_NODE_147) +# define MSGPACK_PP_NODE_145(p) MSGPACK_PP_IIF(p##(145), 145, 146) +# define MSGPACK_PP_NODE_147(p) MSGPACK_PP_IIF(p##(147), 147, 148) +# define MSGPACK_PP_NODE_150(p) MSGPACK_PP_IIF(p##(150), MSGPACK_PP_NODE_149, MSGPACK_PP_NODE_151) +# define MSGPACK_PP_NODE_149(p) MSGPACK_PP_IIF(p##(149), 149, 150) +# define MSGPACK_PP_NODE_151(p) MSGPACK_PP_IIF(p##(151), 151, 152) +# define MSGPACK_PP_NODE_156(p) MSGPACK_PP_IIF(p##(156), MSGPACK_PP_NODE_154, MSGPACK_PP_NODE_158) +# define MSGPACK_PP_NODE_154(p) MSGPACK_PP_IIF(p##(154), MSGPACK_PP_NODE_153, MSGPACK_PP_NODE_155) +# define MSGPACK_PP_NODE_153(p) MSGPACK_PP_IIF(p##(153), 153, 154) +# define MSGPACK_PP_NODE_155(p) MSGPACK_PP_IIF(p##(155), 155, 156) +# define MSGPACK_PP_NODE_158(p) MSGPACK_PP_IIF(p##(158), MSGPACK_PP_NODE_157, MSGPACK_PP_NODE_159) +# define MSGPACK_PP_NODE_157(p) MSGPACK_PP_IIF(p##(157), 157, 158) +# define MSGPACK_PP_NODE_159(p) MSGPACK_PP_IIF(p##(159), 159, 160) +# define MSGPACK_PP_NODE_176(p) MSGPACK_PP_IIF(p##(176), MSGPACK_PP_NODE_168, MSGPACK_PP_NODE_184) +# define MSGPACK_PP_NODE_168(p) MSGPACK_PP_IIF(p##(168), MSGPACK_PP_NODE_164, MSGPACK_PP_NODE_172) +# define MSGPACK_PP_NODE_164(p) MSGPACK_PP_IIF(p##(164), MSGPACK_PP_NODE_162, MSGPACK_PP_NODE_166) +# define MSGPACK_PP_NODE_162(p) MSGPACK_PP_IIF(p##(162), MSGPACK_PP_NODE_161, MSGPACK_PP_NODE_163) +# define MSGPACK_PP_NODE_161(p) MSGPACK_PP_IIF(p##(161), 161, 162) +# define MSGPACK_PP_NODE_163(p) MSGPACK_PP_IIF(p##(163), 163, 164) +# define MSGPACK_PP_NODE_166(p) MSGPACK_PP_IIF(p##(166), MSGPACK_PP_NODE_165, MSGPACK_PP_NODE_167) +# define MSGPACK_PP_NODE_165(p) MSGPACK_PP_IIF(p##(165), 165, 166) +# define MSGPACK_PP_NODE_167(p) MSGPACK_PP_IIF(p##(167), 167, 168) +# define MSGPACK_PP_NODE_172(p) MSGPACK_PP_IIF(p##(172), MSGPACK_PP_NODE_170, MSGPACK_PP_NODE_174) +# define MSGPACK_PP_NODE_170(p) MSGPACK_PP_IIF(p##(170), MSGPACK_PP_NODE_169, MSGPACK_PP_NODE_171) +# define MSGPACK_PP_NODE_169(p) MSGPACK_PP_IIF(p##(169), 169, 170) +# define MSGPACK_PP_NODE_171(p) MSGPACK_PP_IIF(p##(171), 171, 172) +# define MSGPACK_PP_NODE_174(p) MSGPACK_PP_IIF(p##(174), MSGPACK_PP_NODE_173, MSGPACK_PP_NODE_175) +# define MSGPACK_PP_NODE_173(p) MSGPACK_PP_IIF(p##(173), 173, 174) +# define MSGPACK_PP_NODE_175(p) MSGPACK_PP_IIF(p##(175), 175, 176) +# define MSGPACK_PP_NODE_184(p) MSGPACK_PP_IIF(p##(184), MSGPACK_PP_NODE_180, MSGPACK_PP_NODE_188) +# define MSGPACK_PP_NODE_180(p) MSGPACK_PP_IIF(p##(180), MSGPACK_PP_NODE_178, MSGPACK_PP_NODE_182) +# define MSGPACK_PP_NODE_178(p) MSGPACK_PP_IIF(p##(178), MSGPACK_PP_NODE_177, MSGPACK_PP_NODE_179) +# define MSGPACK_PP_NODE_177(p) MSGPACK_PP_IIF(p##(177), 177, 178) +# define MSGPACK_PP_NODE_179(p) MSGPACK_PP_IIF(p##(179), 179, 180) +# define MSGPACK_PP_NODE_182(p) MSGPACK_PP_IIF(p##(182), MSGPACK_PP_NODE_181, MSGPACK_PP_NODE_183) +# define MSGPACK_PP_NODE_181(p) MSGPACK_PP_IIF(p##(181), 181, 182) +# define MSGPACK_PP_NODE_183(p) MSGPACK_PP_IIF(p##(183), 183, 184) +# define MSGPACK_PP_NODE_188(p) MSGPACK_PP_IIF(p##(188), MSGPACK_PP_NODE_186, MSGPACK_PP_NODE_190) +# define MSGPACK_PP_NODE_186(p) MSGPACK_PP_IIF(p##(186), MSGPACK_PP_NODE_185, MSGPACK_PP_NODE_187) +# define MSGPACK_PP_NODE_185(p) MSGPACK_PP_IIF(p##(185), 185, 186) +# define MSGPACK_PP_NODE_187(p) MSGPACK_PP_IIF(p##(187), 187, 188) +# define MSGPACK_PP_NODE_190(p) MSGPACK_PP_IIF(p##(190), MSGPACK_PP_NODE_189, MSGPACK_PP_NODE_191) +# define MSGPACK_PP_NODE_189(p) MSGPACK_PP_IIF(p##(189), 189, 190) +# define MSGPACK_PP_NODE_191(p) MSGPACK_PP_IIF(p##(191), 191, 192) +# define MSGPACK_PP_NODE_224(p) MSGPACK_PP_IIF(p##(224), MSGPACK_PP_NODE_208, MSGPACK_PP_NODE_240) +# define MSGPACK_PP_NODE_208(p) MSGPACK_PP_IIF(p##(208), MSGPACK_PP_NODE_200, MSGPACK_PP_NODE_216) +# define MSGPACK_PP_NODE_200(p) MSGPACK_PP_IIF(p##(200), MSGPACK_PP_NODE_196, MSGPACK_PP_NODE_204) +# define MSGPACK_PP_NODE_196(p) MSGPACK_PP_IIF(p##(196), MSGPACK_PP_NODE_194, MSGPACK_PP_NODE_198) +# define MSGPACK_PP_NODE_194(p) MSGPACK_PP_IIF(p##(194), MSGPACK_PP_NODE_193, MSGPACK_PP_NODE_195) +# define MSGPACK_PP_NODE_193(p) MSGPACK_PP_IIF(p##(193), 193, 194) +# define MSGPACK_PP_NODE_195(p) MSGPACK_PP_IIF(p##(195), 195, 196) +# define MSGPACK_PP_NODE_198(p) MSGPACK_PP_IIF(p##(198), MSGPACK_PP_NODE_197, MSGPACK_PP_NODE_199) +# define MSGPACK_PP_NODE_197(p) MSGPACK_PP_IIF(p##(197), 197, 198) +# define MSGPACK_PP_NODE_199(p) MSGPACK_PP_IIF(p##(199), 199, 200) +# define MSGPACK_PP_NODE_204(p) MSGPACK_PP_IIF(p##(204), MSGPACK_PP_NODE_202, MSGPACK_PP_NODE_206) +# define MSGPACK_PP_NODE_202(p) MSGPACK_PP_IIF(p##(202), MSGPACK_PP_NODE_201, MSGPACK_PP_NODE_203) +# define MSGPACK_PP_NODE_201(p) MSGPACK_PP_IIF(p##(201), 201, 202) +# define MSGPACK_PP_NODE_203(p) MSGPACK_PP_IIF(p##(203), 203, 204) +# define MSGPACK_PP_NODE_206(p) MSGPACK_PP_IIF(p##(206), MSGPACK_PP_NODE_205, MSGPACK_PP_NODE_207) +# define MSGPACK_PP_NODE_205(p) MSGPACK_PP_IIF(p##(205), 205, 206) +# define MSGPACK_PP_NODE_207(p) MSGPACK_PP_IIF(p##(207), 207, 208) +# define MSGPACK_PP_NODE_216(p) MSGPACK_PP_IIF(p##(216), MSGPACK_PP_NODE_212, MSGPACK_PP_NODE_220) +# define MSGPACK_PP_NODE_212(p) MSGPACK_PP_IIF(p##(212), MSGPACK_PP_NODE_210, MSGPACK_PP_NODE_214) +# define MSGPACK_PP_NODE_210(p) MSGPACK_PP_IIF(p##(210), MSGPACK_PP_NODE_209, MSGPACK_PP_NODE_211) +# define MSGPACK_PP_NODE_209(p) MSGPACK_PP_IIF(p##(209), 209, 210) +# define MSGPACK_PP_NODE_211(p) MSGPACK_PP_IIF(p##(211), 211, 212) +# define MSGPACK_PP_NODE_214(p) MSGPACK_PP_IIF(p##(214), MSGPACK_PP_NODE_213, MSGPACK_PP_NODE_215) +# define MSGPACK_PP_NODE_213(p) MSGPACK_PP_IIF(p##(213), 213, 214) +# define MSGPACK_PP_NODE_215(p) MSGPACK_PP_IIF(p##(215), 215, 216) +# define MSGPACK_PP_NODE_220(p) MSGPACK_PP_IIF(p##(220), MSGPACK_PP_NODE_218, MSGPACK_PP_NODE_222) +# define MSGPACK_PP_NODE_218(p) MSGPACK_PP_IIF(p##(218), MSGPACK_PP_NODE_217, MSGPACK_PP_NODE_219) +# define MSGPACK_PP_NODE_217(p) MSGPACK_PP_IIF(p##(217), 217, 218) +# define MSGPACK_PP_NODE_219(p) MSGPACK_PP_IIF(p##(219), 219, 220) +# define MSGPACK_PP_NODE_222(p) MSGPACK_PP_IIF(p##(222), MSGPACK_PP_NODE_221, MSGPACK_PP_NODE_223) +# define MSGPACK_PP_NODE_221(p) MSGPACK_PP_IIF(p##(221), 221, 222) +# define MSGPACK_PP_NODE_223(p) MSGPACK_PP_IIF(p##(223), 223, 224) +# define MSGPACK_PP_NODE_240(p) MSGPACK_PP_IIF(p##(240), MSGPACK_PP_NODE_232, MSGPACK_PP_NODE_248) +# define MSGPACK_PP_NODE_232(p) MSGPACK_PP_IIF(p##(232), MSGPACK_PP_NODE_228, MSGPACK_PP_NODE_236) +# define MSGPACK_PP_NODE_228(p) MSGPACK_PP_IIF(p##(228), MSGPACK_PP_NODE_226, MSGPACK_PP_NODE_230) +# define MSGPACK_PP_NODE_226(p) MSGPACK_PP_IIF(p##(226), MSGPACK_PP_NODE_225, MSGPACK_PP_NODE_227) +# define MSGPACK_PP_NODE_225(p) MSGPACK_PP_IIF(p##(225), 225, 226) +# define MSGPACK_PP_NODE_227(p) MSGPACK_PP_IIF(p##(227), 227, 228) +# define MSGPACK_PP_NODE_230(p) MSGPACK_PP_IIF(p##(230), MSGPACK_PP_NODE_229, MSGPACK_PP_NODE_231) +# define MSGPACK_PP_NODE_229(p) MSGPACK_PP_IIF(p##(229), 229, 230) +# define MSGPACK_PP_NODE_231(p) MSGPACK_PP_IIF(p##(231), 231, 232) +# define MSGPACK_PP_NODE_236(p) MSGPACK_PP_IIF(p##(236), MSGPACK_PP_NODE_234, MSGPACK_PP_NODE_238) +# define MSGPACK_PP_NODE_234(p) MSGPACK_PP_IIF(p##(234), MSGPACK_PP_NODE_233, MSGPACK_PP_NODE_235) +# define MSGPACK_PP_NODE_233(p) MSGPACK_PP_IIF(p##(233), 233, 234) +# define MSGPACK_PP_NODE_235(p) MSGPACK_PP_IIF(p##(235), 235, 236) +# define MSGPACK_PP_NODE_238(p) MSGPACK_PP_IIF(p##(238), MSGPACK_PP_NODE_237, MSGPACK_PP_NODE_239) +# define MSGPACK_PP_NODE_237(p) MSGPACK_PP_IIF(p##(237), 237, 238) +# define MSGPACK_PP_NODE_239(p) MSGPACK_PP_IIF(p##(239), 239, 240) +# define MSGPACK_PP_NODE_248(p) MSGPACK_PP_IIF(p##(248), MSGPACK_PP_NODE_244, MSGPACK_PP_NODE_252) +# define MSGPACK_PP_NODE_244(p) MSGPACK_PP_IIF(p##(244), MSGPACK_PP_NODE_242, MSGPACK_PP_NODE_246) +# define MSGPACK_PP_NODE_242(p) MSGPACK_PP_IIF(p##(242), MSGPACK_PP_NODE_241, MSGPACK_PP_NODE_243) +# define MSGPACK_PP_NODE_241(p) MSGPACK_PP_IIF(p##(241), 241, 242) +# define MSGPACK_PP_NODE_243(p) MSGPACK_PP_IIF(p##(243), 243, 244) +# define MSGPACK_PP_NODE_246(p) MSGPACK_PP_IIF(p##(246), MSGPACK_PP_NODE_245, MSGPACK_PP_NODE_247) +# define MSGPACK_PP_NODE_245(p) MSGPACK_PP_IIF(p##(245), 245, 246) +# define MSGPACK_PP_NODE_247(p) MSGPACK_PP_IIF(p##(247), 247, 248) +# define MSGPACK_PP_NODE_252(p) MSGPACK_PP_IIF(p##(252), MSGPACK_PP_NODE_250, MSGPACK_PP_NODE_254) +# define MSGPACK_PP_NODE_250(p) MSGPACK_PP_IIF(p##(250), MSGPACK_PP_NODE_249, MSGPACK_PP_NODE_251) +# define MSGPACK_PP_NODE_249(p) MSGPACK_PP_IIF(p##(249), 249, 250) +# define MSGPACK_PP_NODE_251(p) MSGPACK_PP_IIF(p##(251), 251, 252) +# define MSGPACK_PP_NODE_254(p) MSGPACK_PP_IIF(p##(254), MSGPACK_PP_NODE_253, MSGPACK_PP_NODE_255) +# define MSGPACK_PP_NODE_253(p) MSGPACK_PP_IIF(p##(253), 253, 254) +# define MSGPACK_PP_NODE_255(p) MSGPACK_PP_IIF(p##(255), 255, 256) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/detail/is_binary.hpp b/third_party/msgpack/include/msgpack/preprocessor/detail/is_binary.hpp new file mode 100644 index 000000000000..7fb3d173cb50 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/detail/is_binary.hpp @@ -0,0 +1,30 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_DETAIL_IS_BINARY_HPP +# define MSGPACK_PREPROCESSOR_DETAIL_IS_BINARY_HPP +# +# include +# include +# +# /* MSGPACK_PP_IS_BINARY */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_IS_BINARY(x) MSGPACK_PP_CHECK(x, MSGPACK_PP_IS_BINARY_CHECK) +# else +# define MSGPACK_PP_IS_BINARY(x) MSGPACK_PP_IS_BINARY_I(x) +# define MSGPACK_PP_IS_BINARY_I(x) MSGPACK_PP_CHECK(x, MSGPACK_PP_IS_BINARY_CHECK) +# endif +# +# define MSGPACK_PP_IS_BINARY_CHECK(a, b) 1 +# define MSGPACK_PP_CHECK_RESULT_MSGPACK_PP_IS_BINARY_CHECK 0, MSGPACK_PP_NIL +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/detail/is_nullary.hpp b/third_party/msgpack/include/msgpack/preprocessor/detail/is_nullary.hpp new file mode 100644 index 000000000000..43a22074f311 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/detail/is_nullary.hpp @@ -0,0 +1,30 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_DETAIL_IS_NULLARY_HPP +# define MSGPACK_PREPROCESSOR_DETAIL_IS_NULLARY_HPP +# +# include +# include +# +# /* MSGPACK_PP_IS_NULLARY */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_IS_NULLARY(x) MSGPACK_PP_CHECK(x, MSGPACK_PP_IS_NULLARY_CHECK) +# else +# define MSGPACK_PP_IS_NULLARY(x) MSGPACK_PP_IS_NULLARY_I(x) +# define MSGPACK_PP_IS_NULLARY_I(x) MSGPACK_PP_CHECK(x, MSGPACK_PP_IS_NULLARY_CHECK) +# endif +# +# define MSGPACK_PP_IS_NULLARY_CHECK() 1 +# define MSGPACK_PP_CHECK_RESULT_MSGPACK_PP_IS_NULLARY_CHECK 0, MSGPACK_PP_NIL +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/detail/is_unary.hpp b/third_party/msgpack/include/msgpack/preprocessor/detail/is_unary.hpp new file mode 100644 index 000000000000..d4698aa3ae01 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/detail/is_unary.hpp @@ -0,0 +1,30 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_DETAIL_IS_UNARY_HPP +# define MSGPACK_PREPROCESSOR_DETAIL_IS_UNARY_HPP +# +# include +# include +# +# /* MSGPACK_PP_IS_UNARY */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_IS_UNARY(x) MSGPACK_PP_CHECK(x, MSGPACK_PP_IS_UNARY_CHECK) +# else +# define MSGPACK_PP_IS_UNARY(x) MSGPACK_PP_IS_UNARY_I(x) +# define MSGPACK_PP_IS_UNARY_I(x) MSGPACK_PP_CHECK(x, MSGPACK_PP_IS_UNARY_CHECK) +# endif +# +# define MSGPACK_PP_IS_UNARY_CHECK(a) 1 +# define MSGPACK_PP_CHECK_RESULT_MSGPACK_PP_IS_UNARY_CHECK 0, MSGPACK_PP_NIL +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/detail/null.hpp b/third_party/msgpack/include/msgpack/preprocessor/detail/null.hpp new file mode 100644 index 000000000000..a4ffe2aba8a7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/detail/null.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_DETAIL_NULL_HPP +# define MSGPACK_PREPROCESSOR_DETAIL_NULL_HPP +# +# /* empty file */ +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/detail/split.hpp b/third_party/msgpack/include/msgpack/preprocessor/detail/split.hpp new file mode 100644 index 000000000000..6aced7802b7f --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/detail/split.hpp @@ -0,0 +1,35 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# ifndef MSGPACK_PREPROCESSOR_DETAIL_SPLIT_HPP +# define MSGPACK_PREPROCESSOR_DETAIL_SPLIT_HPP +# +# include +# +# /* MSGPACK_PP_SPLIT */ +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_SPLIT(n, im) MSGPACK_PP_SPLIT_I((n, im)) +# define MSGPACK_PP_SPLIT_I(par) MSGPACK_PP_SPLIT_II ## par +# define MSGPACK_PP_SPLIT_II(n, a, b) MSGPACK_PP_SPLIT_ ## n(a, b) +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_SPLIT(n, im) MSGPACK_PP_SPLIT_I(n((im))) +# define MSGPACK_PP_SPLIT_I(n) MSGPACK_PP_SPLIT_ID(MSGPACK_PP_SPLIT_II_ ## n) +# define MSGPACK_PP_SPLIT_II_0(s) MSGPACK_PP_SPLIT_ID(MSGPACK_PP_SPLIT_0 s) +# define MSGPACK_PP_SPLIT_II_1(s) MSGPACK_PP_SPLIT_ID(MSGPACK_PP_SPLIT_1 s) +# define MSGPACK_PP_SPLIT_ID(id) id +# else +# define MSGPACK_PP_SPLIT(n, im) MSGPACK_PP_SPLIT_I(n)(im) +# define MSGPACK_PP_SPLIT_I(n) MSGPACK_PP_SPLIT_ ## n +# endif +# +# define MSGPACK_PP_SPLIT_0(a, b) a +# define MSGPACK_PP_SPLIT_1(a, b) b +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/empty.hpp b/third_party/msgpack/include/msgpack/preprocessor/empty.hpp new file mode 100644 index 000000000000..f04c75eaf4d9 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/empty.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_EMPTY_HPP +# define MSGPACK_PREPROCESSOR_EMPTY_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/enum.hpp b/third_party/msgpack/include/msgpack/preprocessor/enum.hpp new file mode 100644 index 000000000000..da2a7bd2b997 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/enum.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ENUM_HPP +# define MSGPACK_PREPROCESSOR_ENUM_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/enum_params.hpp b/third_party/msgpack/include/msgpack/preprocessor/enum_params.hpp new file mode 100644 index 000000000000..58e9b41be99f --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/enum_params.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ENUM_PARAMS_HPP +# define MSGPACK_PREPROCESSOR_ENUM_PARAMS_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/enum_params_with_a_default.hpp b/third_party/msgpack/include/msgpack/preprocessor/enum_params_with_a_default.hpp new file mode 100644 index 000000000000..92cf92f28e0c --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/enum_params_with_a_default.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP +# define MSGPACK_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/enum_params_with_defaults.hpp b/third_party/msgpack/include/msgpack/preprocessor/enum_params_with_defaults.hpp new file mode 100644 index 000000000000..af445d4b2303 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/enum_params_with_defaults.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS_HPP +# define MSGPACK_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/enum_shifted.hpp b/third_party/msgpack/include/msgpack/preprocessor/enum_shifted.hpp new file mode 100644 index 000000000000..8429c5119f40 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/enum_shifted.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ENUM_SHIFTED_HPP +# define MSGPACK_PREPROCESSOR_ENUM_SHIFTED_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/enum_shifted_params.hpp b/third_party/msgpack/include/msgpack/preprocessor/enum_shifted_params.hpp new file mode 100644 index 000000000000..3822430312ed --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/enum_shifted_params.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP +# define MSGPACK_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/expand.hpp b/third_party/msgpack/include/msgpack/preprocessor/expand.hpp new file mode 100644 index 000000000000..17ff97a23637 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/expand.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_EXPAND_HPP +# define MSGPACK_PREPROCESSOR_EXPAND_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/expr_if.hpp b/third_party/msgpack/include/msgpack/preprocessor/expr_if.hpp new file mode 100644 index 000000000000..2216543dd6b2 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/expr_if.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_EXPR_IF_HPP +# define MSGPACK_PREPROCESSOR_EXPR_IF_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/facilities.hpp b/third_party/msgpack/include/msgpack/preprocessor/facilities.hpp new file mode 100644 index 000000000000..01bc4dcf8fb6 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/facilities.hpp @@ -0,0 +1,23 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002-2011. * +# * (C) Copyright Edward Diener 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_FACILITIES_HPP +# define MSGPACK_PREPROCESSOR_FACILITIES_HPP +# +# include +# include +# include +# include +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/facilities/apply.hpp b/third_party/msgpack/include/msgpack/preprocessor/facilities/apply.hpp new file mode 100644 index 000000000000..c4f8db17b252 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/facilities/apply.hpp @@ -0,0 +1,34 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_FACILITIES_APPLY_HPP +# define MSGPACK_PREPROCESSOR_FACILITIES_APPLY_HPP +# +# include +# include +# include +# include +# +# /* MSGPACK_PP_APPLY */ +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_APPLY(x) MSGPACK_PP_APPLY_I(x) +# define MSGPACK_PP_APPLY_I(x) MSGPACK_PP_EXPR_IIF(MSGPACK_PP_IS_UNARY(x), MSGPACK_PP_TUPLE_REM_1 x) +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_BCC() +# define MSGPACK_PP_APPLY(x) MSGPACK_PP_APPLY_I(x) +# define MSGPACK_PP_APPLY_I(x) MSGPACK_PP_APPLY_ ## x +# define MSGPACK_PP_APPLY_(x) x +# define MSGPACK_PP_APPLY_MSGPACK_PP_NIL +# else +# define MSGPACK_PP_APPLY(x) MSGPACK_PP_EXPR_IIF(MSGPACK_PP_IS_UNARY(x), MSGPACK_PP_TUPLE_REM_1 x) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/facilities/detail/is_empty.hpp b/third_party/msgpack/include/msgpack/preprocessor/facilities/detail/is_empty.hpp new file mode 100644 index 000000000000..b7102381d8d7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/facilities/detail/is_empty.hpp @@ -0,0 +1,55 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2014. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +#ifndef MSGPACK_PREPROCESSOR_DETAIL_IS_EMPTY_HPP +#define MSGPACK_PREPROCESSOR_DETAIL_IS_EMPTY_HPP + +#include + +#if MSGPACK_PP_VARIADICS_MSVC + +# pragma warning(once:4002) + +#define MSGPACK_PP_DETAIL_IS_EMPTY_IIF_0(t, b) b +#define MSGPACK_PP_DETAIL_IS_EMPTY_IIF_1(t, b) t + +#else + +#define MSGPACK_PP_DETAIL_IS_EMPTY_IIF_0(t, ...) __VA_ARGS__ +#define MSGPACK_PP_DETAIL_IS_EMPTY_IIF_1(t, ...) t + +#endif + +#if MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400 + +#define MSGPACK_PP_DETAIL_IS_EMPTY_PROCESS(param) \ + MSGPACK_PP_IS_BEGIN_PARENS \ + ( \ + MSGPACK_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C param () \ + ) \ +/**/ + +#else + +#define MSGPACK_PP_DETAIL_IS_EMPTY_PROCESS(...) \ + MSGPACK_PP_IS_BEGIN_PARENS \ + ( \ + MSGPACK_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C __VA_ARGS__ () \ + ) \ +/**/ + +#endif + +#define MSGPACK_PP_DETAIL_IS_EMPTY_PRIMITIVE_CAT(a, b) a ## b +#define MSGPACK_PP_DETAIL_IS_EMPTY_IIF(bit) MSGPACK_PP_DETAIL_IS_EMPTY_PRIMITIVE_CAT(MSGPACK_PP_DETAIL_IS_EMPTY_IIF_,bit) +#define MSGPACK_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C(...) () + +#endif /* MSGPACK_PREPROCESSOR_DETAIL_IS_EMPTY_HPP */ diff --git a/third_party/msgpack/include/msgpack/preprocessor/facilities/empty.hpp b/third_party/msgpack/include/msgpack/preprocessor/facilities/empty.hpp new file mode 100644 index 000000000000..c4a4ee851a78 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/facilities/empty.hpp @@ -0,0 +1,23 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_FACILITIES_EMPTY_HPP +# define MSGPACK_PREPROCESSOR_FACILITIES_EMPTY_HPP +# +# include +# +# /* MSGPACK_PP_EMPTY */ +# +# define MSGPACK_PP_EMPTY() +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/facilities/expand.hpp b/third_party/msgpack/include/msgpack/preprocessor/facilities/expand.hpp new file mode 100644 index 000000000000..d12486260101 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/facilities/expand.hpp @@ -0,0 +1,28 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_FACILITIES_EXPAND_HPP +# define MSGPACK_PREPROCESSOR_FACILITIES_EXPAND_HPP +# +# include +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() && ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC() +# define MSGPACK_PP_EXPAND(x) MSGPACK_PP_EXPAND_I(x) +# else +# define MSGPACK_PP_EXPAND(x) MSGPACK_PP_EXPAND_OO((x)) +# define MSGPACK_PP_EXPAND_OO(par) MSGPACK_PP_EXPAND_I ## par +# endif +# +# define MSGPACK_PP_EXPAND_I(x) x +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/facilities/identity.hpp b/third_party/msgpack/include/msgpack/preprocessor/facilities/identity.hpp new file mode 100644 index 000000000000..9fbe1d305acd --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/facilities/identity.hpp @@ -0,0 +1,27 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# /* Revised by Edward Diener (2015) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_FACILITIES_IDENTITY_HPP +# define MSGPACK_PREPROCESSOR_FACILITIES_IDENTITY_HPP +# +# include +# include +# +# /* MSGPACK_PP_IDENTITY */ +# +# define MSGPACK_PP_IDENTITY(item) item MSGPACK_PP_EMPTY +# +# define MSGPACK_PP_IDENTITY_N(item,n) item MSGPACK_PP_TUPLE_EAT_N(n) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/facilities/intercept.hpp b/third_party/msgpack/include/msgpack/preprocessor/facilities/intercept.hpp new file mode 100644 index 000000000000..048d861762c3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/facilities/intercept.hpp @@ -0,0 +1,277 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_FACILITIES_INTERCEPT_HPP +# define MSGPACK_PREPROCESSOR_FACILITIES_INTERCEPT_HPP +# +# /* MSGPACK_PP_INTERCEPT */ +# +# define MSGPACK_PP_INTERCEPT MSGPACK_PP_INTERCEPT_ +# +# define MSGPACK_PP_INTERCEPT_0 +# define MSGPACK_PP_INTERCEPT_1 +# define MSGPACK_PP_INTERCEPT_2 +# define MSGPACK_PP_INTERCEPT_3 +# define MSGPACK_PP_INTERCEPT_4 +# define MSGPACK_PP_INTERCEPT_5 +# define MSGPACK_PP_INTERCEPT_6 +# define MSGPACK_PP_INTERCEPT_7 +# define MSGPACK_PP_INTERCEPT_8 +# define MSGPACK_PP_INTERCEPT_9 +# define MSGPACK_PP_INTERCEPT_10 +# define MSGPACK_PP_INTERCEPT_11 +# define MSGPACK_PP_INTERCEPT_12 +# define MSGPACK_PP_INTERCEPT_13 +# define MSGPACK_PP_INTERCEPT_14 +# define MSGPACK_PP_INTERCEPT_15 +# define MSGPACK_PP_INTERCEPT_16 +# define MSGPACK_PP_INTERCEPT_17 +# define MSGPACK_PP_INTERCEPT_18 +# define MSGPACK_PP_INTERCEPT_19 +# define MSGPACK_PP_INTERCEPT_20 +# define MSGPACK_PP_INTERCEPT_21 +# define MSGPACK_PP_INTERCEPT_22 +# define MSGPACK_PP_INTERCEPT_23 +# define MSGPACK_PP_INTERCEPT_24 +# define MSGPACK_PP_INTERCEPT_25 +# define MSGPACK_PP_INTERCEPT_26 +# define MSGPACK_PP_INTERCEPT_27 +# define MSGPACK_PP_INTERCEPT_28 +# define MSGPACK_PP_INTERCEPT_29 +# define MSGPACK_PP_INTERCEPT_30 +# define MSGPACK_PP_INTERCEPT_31 +# define MSGPACK_PP_INTERCEPT_32 +# define MSGPACK_PP_INTERCEPT_33 +# define MSGPACK_PP_INTERCEPT_34 +# define MSGPACK_PP_INTERCEPT_35 +# define MSGPACK_PP_INTERCEPT_36 +# define MSGPACK_PP_INTERCEPT_37 +# define MSGPACK_PP_INTERCEPT_38 +# define MSGPACK_PP_INTERCEPT_39 +# define MSGPACK_PP_INTERCEPT_40 +# define MSGPACK_PP_INTERCEPT_41 +# define MSGPACK_PP_INTERCEPT_42 +# define MSGPACK_PP_INTERCEPT_43 +# define MSGPACK_PP_INTERCEPT_44 +# define MSGPACK_PP_INTERCEPT_45 +# define MSGPACK_PP_INTERCEPT_46 +# define MSGPACK_PP_INTERCEPT_47 +# define MSGPACK_PP_INTERCEPT_48 +# define MSGPACK_PP_INTERCEPT_49 +# define MSGPACK_PP_INTERCEPT_50 +# define MSGPACK_PP_INTERCEPT_51 +# define MSGPACK_PP_INTERCEPT_52 +# define MSGPACK_PP_INTERCEPT_53 +# define MSGPACK_PP_INTERCEPT_54 +# define MSGPACK_PP_INTERCEPT_55 +# define MSGPACK_PP_INTERCEPT_56 +# define MSGPACK_PP_INTERCEPT_57 +# define MSGPACK_PP_INTERCEPT_58 +# define MSGPACK_PP_INTERCEPT_59 +# define MSGPACK_PP_INTERCEPT_60 +# define MSGPACK_PP_INTERCEPT_61 +# define MSGPACK_PP_INTERCEPT_62 +# define MSGPACK_PP_INTERCEPT_63 +# define MSGPACK_PP_INTERCEPT_64 +# define MSGPACK_PP_INTERCEPT_65 +# define MSGPACK_PP_INTERCEPT_66 +# define MSGPACK_PP_INTERCEPT_67 +# define MSGPACK_PP_INTERCEPT_68 +# define MSGPACK_PP_INTERCEPT_69 +# define MSGPACK_PP_INTERCEPT_70 +# define MSGPACK_PP_INTERCEPT_71 +# define MSGPACK_PP_INTERCEPT_72 +# define MSGPACK_PP_INTERCEPT_73 +# define MSGPACK_PP_INTERCEPT_74 +# define MSGPACK_PP_INTERCEPT_75 +# define MSGPACK_PP_INTERCEPT_76 +# define MSGPACK_PP_INTERCEPT_77 +# define MSGPACK_PP_INTERCEPT_78 +# define MSGPACK_PP_INTERCEPT_79 +# define MSGPACK_PP_INTERCEPT_80 +# define MSGPACK_PP_INTERCEPT_81 +# define MSGPACK_PP_INTERCEPT_82 +# define MSGPACK_PP_INTERCEPT_83 +# define MSGPACK_PP_INTERCEPT_84 +# define MSGPACK_PP_INTERCEPT_85 +# define MSGPACK_PP_INTERCEPT_86 +# define MSGPACK_PP_INTERCEPT_87 +# define MSGPACK_PP_INTERCEPT_88 +# define MSGPACK_PP_INTERCEPT_89 +# define MSGPACK_PP_INTERCEPT_90 +# define MSGPACK_PP_INTERCEPT_91 +# define MSGPACK_PP_INTERCEPT_92 +# define MSGPACK_PP_INTERCEPT_93 +# define MSGPACK_PP_INTERCEPT_94 +# define MSGPACK_PP_INTERCEPT_95 +# define MSGPACK_PP_INTERCEPT_96 +# define MSGPACK_PP_INTERCEPT_97 +# define MSGPACK_PP_INTERCEPT_98 +# define MSGPACK_PP_INTERCEPT_99 +# define MSGPACK_PP_INTERCEPT_100 +# define MSGPACK_PP_INTERCEPT_101 +# define MSGPACK_PP_INTERCEPT_102 +# define MSGPACK_PP_INTERCEPT_103 +# define MSGPACK_PP_INTERCEPT_104 +# define MSGPACK_PP_INTERCEPT_105 +# define MSGPACK_PP_INTERCEPT_106 +# define MSGPACK_PP_INTERCEPT_107 +# define MSGPACK_PP_INTERCEPT_108 +# define MSGPACK_PP_INTERCEPT_109 +# define MSGPACK_PP_INTERCEPT_110 +# define MSGPACK_PP_INTERCEPT_111 +# define MSGPACK_PP_INTERCEPT_112 +# define MSGPACK_PP_INTERCEPT_113 +# define MSGPACK_PP_INTERCEPT_114 +# define MSGPACK_PP_INTERCEPT_115 +# define MSGPACK_PP_INTERCEPT_116 +# define MSGPACK_PP_INTERCEPT_117 +# define MSGPACK_PP_INTERCEPT_118 +# define MSGPACK_PP_INTERCEPT_119 +# define MSGPACK_PP_INTERCEPT_120 +# define MSGPACK_PP_INTERCEPT_121 +# define MSGPACK_PP_INTERCEPT_122 +# define MSGPACK_PP_INTERCEPT_123 +# define MSGPACK_PP_INTERCEPT_124 +# define MSGPACK_PP_INTERCEPT_125 +# define MSGPACK_PP_INTERCEPT_126 +# define MSGPACK_PP_INTERCEPT_127 +# define MSGPACK_PP_INTERCEPT_128 +# define MSGPACK_PP_INTERCEPT_129 +# define MSGPACK_PP_INTERCEPT_130 +# define MSGPACK_PP_INTERCEPT_131 +# define MSGPACK_PP_INTERCEPT_132 +# define MSGPACK_PP_INTERCEPT_133 +# define MSGPACK_PP_INTERCEPT_134 +# define MSGPACK_PP_INTERCEPT_135 +# define MSGPACK_PP_INTERCEPT_136 +# define MSGPACK_PP_INTERCEPT_137 +# define MSGPACK_PP_INTERCEPT_138 +# define MSGPACK_PP_INTERCEPT_139 +# define MSGPACK_PP_INTERCEPT_140 +# define MSGPACK_PP_INTERCEPT_141 +# define MSGPACK_PP_INTERCEPT_142 +# define MSGPACK_PP_INTERCEPT_143 +# define MSGPACK_PP_INTERCEPT_144 +# define MSGPACK_PP_INTERCEPT_145 +# define MSGPACK_PP_INTERCEPT_146 +# define MSGPACK_PP_INTERCEPT_147 +# define MSGPACK_PP_INTERCEPT_148 +# define MSGPACK_PP_INTERCEPT_149 +# define MSGPACK_PP_INTERCEPT_150 +# define MSGPACK_PP_INTERCEPT_151 +# define MSGPACK_PP_INTERCEPT_152 +# define MSGPACK_PP_INTERCEPT_153 +# define MSGPACK_PP_INTERCEPT_154 +# define MSGPACK_PP_INTERCEPT_155 +# define MSGPACK_PP_INTERCEPT_156 +# define MSGPACK_PP_INTERCEPT_157 +# define MSGPACK_PP_INTERCEPT_158 +# define MSGPACK_PP_INTERCEPT_159 +# define MSGPACK_PP_INTERCEPT_160 +# define MSGPACK_PP_INTERCEPT_161 +# define MSGPACK_PP_INTERCEPT_162 +# define MSGPACK_PP_INTERCEPT_163 +# define MSGPACK_PP_INTERCEPT_164 +# define MSGPACK_PP_INTERCEPT_165 +# define MSGPACK_PP_INTERCEPT_166 +# define MSGPACK_PP_INTERCEPT_167 +# define MSGPACK_PP_INTERCEPT_168 +# define MSGPACK_PP_INTERCEPT_169 +# define MSGPACK_PP_INTERCEPT_170 +# define MSGPACK_PP_INTERCEPT_171 +# define MSGPACK_PP_INTERCEPT_172 +# define MSGPACK_PP_INTERCEPT_173 +# define MSGPACK_PP_INTERCEPT_174 +# define MSGPACK_PP_INTERCEPT_175 +# define MSGPACK_PP_INTERCEPT_176 +# define MSGPACK_PP_INTERCEPT_177 +# define MSGPACK_PP_INTERCEPT_178 +# define MSGPACK_PP_INTERCEPT_179 +# define MSGPACK_PP_INTERCEPT_180 +# define MSGPACK_PP_INTERCEPT_181 +# define MSGPACK_PP_INTERCEPT_182 +# define MSGPACK_PP_INTERCEPT_183 +# define MSGPACK_PP_INTERCEPT_184 +# define MSGPACK_PP_INTERCEPT_185 +# define MSGPACK_PP_INTERCEPT_186 +# define MSGPACK_PP_INTERCEPT_187 +# define MSGPACK_PP_INTERCEPT_188 +# define MSGPACK_PP_INTERCEPT_189 +# define MSGPACK_PP_INTERCEPT_190 +# define MSGPACK_PP_INTERCEPT_191 +# define MSGPACK_PP_INTERCEPT_192 +# define MSGPACK_PP_INTERCEPT_193 +# define MSGPACK_PP_INTERCEPT_194 +# define MSGPACK_PP_INTERCEPT_195 +# define MSGPACK_PP_INTERCEPT_196 +# define MSGPACK_PP_INTERCEPT_197 +# define MSGPACK_PP_INTERCEPT_198 +# define MSGPACK_PP_INTERCEPT_199 +# define MSGPACK_PP_INTERCEPT_200 +# define MSGPACK_PP_INTERCEPT_201 +# define MSGPACK_PP_INTERCEPT_202 +# define MSGPACK_PP_INTERCEPT_203 +# define MSGPACK_PP_INTERCEPT_204 +# define MSGPACK_PP_INTERCEPT_205 +# define MSGPACK_PP_INTERCEPT_206 +# define MSGPACK_PP_INTERCEPT_207 +# define MSGPACK_PP_INTERCEPT_208 +# define MSGPACK_PP_INTERCEPT_209 +# define MSGPACK_PP_INTERCEPT_210 +# define MSGPACK_PP_INTERCEPT_211 +# define MSGPACK_PP_INTERCEPT_212 +# define MSGPACK_PP_INTERCEPT_213 +# define MSGPACK_PP_INTERCEPT_214 +# define MSGPACK_PP_INTERCEPT_215 +# define MSGPACK_PP_INTERCEPT_216 +# define MSGPACK_PP_INTERCEPT_217 +# define MSGPACK_PP_INTERCEPT_218 +# define MSGPACK_PP_INTERCEPT_219 +# define MSGPACK_PP_INTERCEPT_220 +# define MSGPACK_PP_INTERCEPT_221 +# define MSGPACK_PP_INTERCEPT_222 +# define MSGPACK_PP_INTERCEPT_223 +# define MSGPACK_PP_INTERCEPT_224 +# define MSGPACK_PP_INTERCEPT_225 +# define MSGPACK_PP_INTERCEPT_226 +# define MSGPACK_PP_INTERCEPT_227 +# define MSGPACK_PP_INTERCEPT_228 +# define MSGPACK_PP_INTERCEPT_229 +# define MSGPACK_PP_INTERCEPT_230 +# define MSGPACK_PP_INTERCEPT_231 +# define MSGPACK_PP_INTERCEPT_232 +# define MSGPACK_PP_INTERCEPT_233 +# define MSGPACK_PP_INTERCEPT_234 +# define MSGPACK_PP_INTERCEPT_235 +# define MSGPACK_PP_INTERCEPT_236 +# define MSGPACK_PP_INTERCEPT_237 +# define MSGPACK_PP_INTERCEPT_238 +# define MSGPACK_PP_INTERCEPT_239 +# define MSGPACK_PP_INTERCEPT_240 +# define MSGPACK_PP_INTERCEPT_241 +# define MSGPACK_PP_INTERCEPT_242 +# define MSGPACK_PP_INTERCEPT_243 +# define MSGPACK_PP_INTERCEPT_244 +# define MSGPACK_PP_INTERCEPT_245 +# define MSGPACK_PP_INTERCEPT_246 +# define MSGPACK_PP_INTERCEPT_247 +# define MSGPACK_PP_INTERCEPT_248 +# define MSGPACK_PP_INTERCEPT_249 +# define MSGPACK_PP_INTERCEPT_250 +# define MSGPACK_PP_INTERCEPT_251 +# define MSGPACK_PP_INTERCEPT_252 +# define MSGPACK_PP_INTERCEPT_253 +# define MSGPACK_PP_INTERCEPT_254 +# define MSGPACK_PP_INTERCEPT_255 +# define MSGPACK_PP_INTERCEPT_256 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/facilities/is_1.hpp b/third_party/msgpack/include/msgpack/preprocessor/facilities/is_1.hpp new file mode 100644 index 000000000000..0a85076e310d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/facilities/is_1.hpp @@ -0,0 +1,23 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2003. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_FACILITIES_IS_1_HPP +# define MSGPACK_PREPROCESSOR_FACILITIES_IS_1_HPP +# +# include +# include +# +# /* MSGPACK_PP_IS_1 */ +# +# define MSGPACK_PP_IS_1(x) MSGPACK_PP_IS_EMPTY(MSGPACK_PP_CAT(MSGPACK_PP_IS_1_HELPER_, x)) +# define MSGPACK_PP_IS_1_HELPER_1 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/facilities/is_empty.hpp b/third_party/msgpack/include/msgpack/preprocessor/facilities/is_empty.hpp new file mode 100644 index 000000000000..32d3bfbd1289 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/facilities/is_empty.hpp @@ -0,0 +1,56 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2003. +# * (C) Copyright Edward Diener 2014. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP +# define MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP +# +# include +# +# if MSGPACK_PP_VARIADICS +# +# include +# +# else +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() && ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# include +# include +# else +# include +# include +# endif +# +# /* MSGPACK_PP_IS_EMPTY */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() && ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_IS_EMPTY(x) MSGPACK_PP_IS_EMPTY_I(x MSGPACK_PP_IS_EMPTY_HELPER) +# define MSGPACK_PP_IS_EMPTY_I(contents) MSGPACK_PP_TUPLE_ELEM(2, 1, (MSGPACK_PP_IS_EMPTY_DEF_ ## contents())) +# define MSGPACK_PP_IS_EMPTY_DEF_MSGPACK_PP_IS_EMPTY_HELPER 1, MSGPACK_PP_IDENTITY(1) +# define MSGPACK_PP_IS_EMPTY_HELPER() , 0 +# else +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_IS_EMPTY(x) MSGPACK_PP_IS_EMPTY_I(MSGPACK_PP_IS_EMPTY_HELPER x ()) +# define MSGPACK_PP_IS_EMPTY_I(test) MSGPACK_PP_IS_EMPTY_II(MSGPACK_PP_SPLIT(0, MSGPACK_PP_CAT(MSGPACK_PP_IS_EMPTY_DEF_, test))) +# define MSGPACK_PP_IS_EMPTY_II(id) id +# else +# define MSGPACK_PP_IS_EMPTY(x) MSGPACK_PP_IS_EMPTY_I((MSGPACK_PP_IS_EMPTY_HELPER x ())) +# define MSGPACK_PP_IS_EMPTY_I(par) MSGPACK_PP_IS_EMPTY_II ## par +# define MSGPACK_PP_IS_EMPTY_II(test) MSGPACK_PP_SPLIT(0, MSGPACK_PP_CAT(MSGPACK_PP_IS_EMPTY_DEF_, test)) +# endif +# define MSGPACK_PP_IS_EMPTY_HELPER() 1 +# define MSGPACK_PP_IS_EMPTY_DEF_1 1, MSGPACK_PP_NIL +# define MSGPACK_PP_IS_EMPTY_DEF_MSGPACK_PP_IS_EMPTY_HELPER 0, MSGPACK_PP_NIL +# endif +# +# endif /* MSGPACK_PP_VARIADICS */ +# +# endif /* MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP */ diff --git a/third_party/msgpack/include/msgpack/preprocessor/facilities/is_empty_or_1.hpp b/third_party/msgpack/include/msgpack/preprocessor/facilities/is_empty_or_1.hpp new file mode 100644 index 000000000000..7fc5bb09e567 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/facilities/is_empty_or_1.hpp @@ -0,0 +1,31 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2003. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_OR_1_HPP +# define MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_OR_1_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_IS_EMPTY_OR_1 */ +# +# define MSGPACK_PP_IS_EMPTY_OR_1(x) \ + MSGPACK_PP_IIF( \ + MSGPACK_PP_IS_EMPTY(x MSGPACK_PP_EMPTY()), \ + MSGPACK_PP_IDENTITY(1), \ + MSGPACK_PP_IS_1 \ + )(x) \ + /**/ +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/facilities/is_empty_variadic.hpp b/third_party/msgpack/include/msgpack/preprocessor/facilities/is_empty_variadic.hpp new file mode 100644 index 000000000000..8a39d44d3cde --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/facilities/is_empty_variadic.hpp @@ -0,0 +1,57 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2014. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_VARIADIC_HPP +# define MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_VARIADIC_HPP +# +# include +# +# if MSGPACK_PP_VARIADICS +# +# include +# include +# +#if MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400 +# +#define MSGPACK_PP_IS_EMPTY(param) \ + MSGPACK_PP_DETAIL_IS_EMPTY_IIF \ + ( \ + MSGPACK_PP_IS_BEGIN_PARENS \ + ( \ + param \ + ) \ + ) \ + ( \ + MSGPACK_PP_IS_EMPTY_ZERO, \ + MSGPACK_PP_DETAIL_IS_EMPTY_PROCESS \ + ) \ + (param) \ +/**/ +#define MSGPACK_PP_IS_EMPTY_ZERO(param) 0 +# else +#define MSGPACK_PP_IS_EMPTY(...) \ + MSGPACK_PP_DETAIL_IS_EMPTY_IIF \ + ( \ + MSGPACK_PP_IS_BEGIN_PARENS \ + ( \ + __VA_ARGS__ \ + ) \ + ) \ + ( \ + MSGPACK_PP_IS_EMPTY_ZERO, \ + MSGPACK_PP_DETAIL_IS_EMPTY_PROCESS \ + ) \ + (__VA_ARGS__) \ +/**/ +#define MSGPACK_PP_IS_EMPTY_ZERO(...) 0 +# endif /* MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400 */ +# endif /* MSGPACK_PP_VARIADICS */ +# endif /* MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_VARIADIC_HPP */ diff --git a/third_party/msgpack/include/msgpack/preprocessor/facilities/overload.hpp b/third_party/msgpack/include/msgpack/preprocessor/facilities/overload.hpp new file mode 100644 index 000000000000..58d40dcf6991 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/facilities/overload.hpp @@ -0,0 +1,25 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2011. * +# * (C) Copyright Edward Diener 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_FACILITIES_OVERLOAD_HPP +# define MSGPACK_PREPROCESSOR_FACILITIES_OVERLOAD_HPP +# +# include +# include +# +# /* MSGPACK_PP_OVERLOAD */ +# +# if MSGPACK_PP_VARIADICS +# define MSGPACK_PP_OVERLOAD(prefix, ...) MSGPACK_PP_CAT(prefix, MSGPACK_PP_VARIADIC_SIZE(__VA_ARGS__)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/for.hpp b/third_party/msgpack/include/msgpack/preprocessor/for.hpp new file mode 100644 index 000000000000..8111a387330e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/for.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_FOR_HPP +# define MSGPACK_PREPROCESSOR_FOR_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/identity.hpp b/third_party/msgpack/include/msgpack/preprocessor/identity.hpp new file mode 100644 index 000000000000..e22bd1318da5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/identity.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_IDENTITY_HPP +# define MSGPACK_PREPROCESSOR_IDENTITY_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/if.hpp b/third_party/msgpack/include/msgpack/preprocessor/if.hpp new file mode 100644 index 000000000000..94be413ad2fe --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/if.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_IF_HPP +# define MSGPACK_PREPROCESSOR_IF_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/inc.hpp b/third_party/msgpack/include/msgpack/preprocessor/inc.hpp new file mode 100644 index 000000000000..99e03e4280b7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/inc.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_INC_HPP +# define MSGPACK_PREPROCESSOR_INC_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iterate.hpp b/third_party/msgpack/include/msgpack/preprocessor/iterate.hpp new file mode 100644 index 000000000000..6b72a94735c4 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iterate.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ITERATE_HPP +# define MSGPACK_PREPROCESSOR_ITERATE_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration.hpp new file mode 100644 index 000000000000..335d653f3457 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration.hpp @@ -0,0 +1,19 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ITERATION_HPP +# define MSGPACK_PREPROCESSOR_ITERATION_HPP +# +# include +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower1.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower1.hpp new file mode 100644 index 000000000000..9bde100444c3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower1.hpp @@ -0,0 +1,99 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_ITERATION_START_1 +# +# undef MSGPACK_PP_ITERATION_START_1_DIGIT_1 +# undef MSGPACK_PP_ITERATION_START_1_DIGIT_2 +# undef MSGPACK_PP_ITERATION_START_1_DIGIT_3 +# undef MSGPACK_PP_ITERATION_START_1_DIGIT_4 +# undef MSGPACK_PP_ITERATION_START_1_DIGIT_5 +# undef MSGPACK_PP_ITERATION_START_1_DIGIT_6 +# undef MSGPACK_PP_ITERATION_START_1_DIGIT_7 +# undef MSGPACK_PP_ITERATION_START_1_DIGIT_8 +# undef MSGPACK_PP_ITERATION_START_1_DIGIT_9 +# undef MSGPACK_PP_ITERATION_START_1_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_ITERATION_START_1_DIGIT_3 +# define MSGPACK_PP_ITERATION_START_1 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_START_1_DIGIT_3, MSGPACK_PP_ITERATION_START_1_DIGIT_2, MSGPACK_PP_ITERATION_START_1_DIGIT_1) +# elif MSGPACK_PP_ITERATION_START_1_DIGIT_2 +# define MSGPACK_PP_ITERATION_START_1 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_START_1_DIGIT_2, MSGPACK_PP_ITERATION_START_1_DIGIT_1) +# else +# define MSGPACK_PP_ITERATION_START_1 MSGPACK_PP_ITERATION_START_1_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower2.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower2.hpp new file mode 100644 index 000000000000..404b298490b1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower2.hpp @@ -0,0 +1,99 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_ITERATION_START_2 +# +# undef MSGPACK_PP_ITERATION_START_2_DIGIT_1 +# undef MSGPACK_PP_ITERATION_START_2_DIGIT_2 +# undef MSGPACK_PP_ITERATION_START_2_DIGIT_3 +# undef MSGPACK_PP_ITERATION_START_2_DIGIT_4 +# undef MSGPACK_PP_ITERATION_START_2_DIGIT_5 +# undef MSGPACK_PP_ITERATION_START_2_DIGIT_6 +# undef MSGPACK_PP_ITERATION_START_2_DIGIT_7 +# undef MSGPACK_PP_ITERATION_START_2_DIGIT_8 +# undef MSGPACK_PP_ITERATION_START_2_DIGIT_9 +# undef MSGPACK_PP_ITERATION_START_2_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_ITERATION_START_2_DIGIT_3 +# define MSGPACK_PP_ITERATION_START_2 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_START_2_DIGIT_3, MSGPACK_PP_ITERATION_START_2_DIGIT_2, MSGPACK_PP_ITERATION_START_2_DIGIT_1) +# elif MSGPACK_PP_ITERATION_START_2_DIGIT_2 +# define MSGPACK_PP_ITERATION_START_2 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_START_2_DIGIT_2, MSGPACK_PP_ITERATION_START_2_DIGIT_1) +# else +# define MSGPACK_PP_ITERATION_START_2 MSGPACK_PP_ITERATION_START_2_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower3.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower3.hpp new file mode 100644 index 000000000000..81aac2edbb0a --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower3.hpp @@ -0,0 +1,99 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_ITERATION_START_3 +# +# undef MSGPACK_PP_ITERATION_START_3_DIGIT_1 +# undef MSGPACK_PP_ITERATION_START_3_DIGIT_2 +# undef MSGPACK_PP_ITERATION_START_3_DIGIT_3 +# undef MSGPACK_PP_ITERATION_START_3_DIGIT_4 +# undef MSGPACK_PP_ITERATION_START_3_DIGIT_5 +# undef MSGPACK_PP_ITERATION_START_3_DIGIT_6 +# undef MSGPACK_PP_ITERATION_START_3_DIGIT_7 +# undef MSGPACK_PP_ITERATION_START_3_DIGIT_8 +# undef MSGPACK_PP_ITERATION_START_3_DIGIT_9 +# undef MSGPACK_PP_ITERATION_START_3_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_ITERATION_START_3_DIGIT_3 +# define MSGPACK_PP_ITERATION_START_3 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_START_3_DIGIT_3, MSGPACK_PP_ITERATION_START_3_DIGIT_2, MSGPACK_PP_ITERATION_START_3_DIGIT_1) +# elif MSGPACK_PP_ITERATION_START_3_DIGIT_2 +# define MSGPACK_PP_ITERATION_START_3 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_START_3_DIGIT_2, MSGPACK_PP_ITERATION_START_3_DIGIT_1) +# else +# define MSGPACK_PP_ITERATION_START_3 MSGPACK_PP_ITERATION_START_3_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower4.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower4.hpp new file mode 100644 index 000000000000..70dceecea2c0 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower4.hpp @@ -0,0 +1,99 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_ITERATION_START_4 +# +# undef MSGPACK_PP_ITERATION_START_4_DIGIT_1 +# undef MSGPACK_PP_ITERATION_START_4_DIGIT_2 +# undef MSGPACK_PP_ITERATION_START_4_DIGIT_3 +# undef MSGPACK_PP_ITERATION_START_4_DIGIT_4 +# undef MSGPACK_PP_ITERATION_START_4_DIGIT_5 +# undef MSGPACK_PP_ITERATION_START_4_DIGIT_6 +# undef MSGPACK_PP_ITERATION_START_4_DIGIT_7 +# undef MSGPACK_PP_ITERATION_START_4_DIGIT_8 +# undef MSGPACK_PP_ITERATION_START_4_DIGIT_9 +# undef MSGPACK_PP_ITERATION_START_4_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_ITERATION_START_4_DIGIT_3 +# define MSGPACK_PP_ITERATION_START_4 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_START_4_DIGIT_3, MSGPACK_PP_ITERATION_START_4_DIGIT_2, MSGPACK_PP_ITERATION_START_4_DIGIT_1) +# elif MSGPACK_PP_ITERATION_START_4_DIGIT_2 +# define MSGPACK_PP_ITERATION_START_4 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_START_4_DIGIT_2, MSGPACK_PP_ITERATION_START_4_DIGIT_1) +# else +# define MSGPACK_PP_ITERATION_START_4 MSGPACK_PP_ITERATION_START_4_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower5.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower5.hpp new file mode 100644 index 000000000000..d615ddb8e0a1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/lower5.hpp @@ -0,0 +1,99 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_ITERATION_START_5 +# +# undef MSGPACK_PP_ITERATION_START_5_DIGIT_1 +# undef MSGPACK_PP_ITERATION_START_5_DIGIT_2 +# undef MSGPACK_PP_ITERATION_START_5_DIGIT_3 +# undef MSGPACK_PP_ITERATION_START_5_DIGIT_4 +# undef MSGPACK_PP_ITERATION_START_5_DIGIT_5 +# undef MSGPACK_PP_ITERATION_START_5_DIGIT_6 +# undef MSGPACK_PP_ITERATION_START_5_DIGIT_7 +# undef MSGPACK_PP_ITERATION_START_5_DIGIT_8 +# undef MSGPACK_PP_ITERATION_START_5_DIGIT_9 +# undef MSGPACK_PP_ITERATION_START_5_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_ITERATION_START_5_DIGIT_3 +# define MSGPACK_PP_ITERATION_START_5 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_START_5_DIGIT_3, MSGPACK_PP_ITERATION_START_5_DIGIT_2, MSGPACK_PP_ITERATION_START_5_DIGIT_1) +# elif MSGPACK_PP_ITERATION_START_5_DIGIT_2 +# define MSGPACK_PP_ITERATION_START_5 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_START_5_DIGIT_2, MSGPACK_PP_ITERATION_START_5_DIGIT_1) +# else +# define MSGPACK_PP_ITERATION_START_5 MSGPACK_PP_ITERATION_START_5_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper1.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper1.hpp new file mode 100644 index 000000000000..f1f8091e2870 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper1.hpp @@ -0,0 +1,99 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_ITERATION_FINISH_1 +# +# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 +# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 +# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 +# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_4 +# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_5 +# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_6 +# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_7 +# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_8 +# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_9 +# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 +# define MSGPACK_PP_ITERATION_FINISH_1 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3, MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1) +# elif MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 +# define MSGPACK_PP_ITERATION_FINISH_1 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1) +# else +# define MSGPACK_PP_ITERATION_FINISH_1 MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper2.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper2.hpp new file mode 100644 index 000000000000..0fe1259b52ba --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper2.hpp @@ -0,0 +1,99 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_ITERATION_FINISH_2 +# +# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 +# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 +# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 +# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_4 +# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_5 +# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_6 +# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_7 +# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_8 +# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_9 +# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 +# define MSGPACK_PP_ITERATION_FINISH_2 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3, MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1) +# elif MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 +# define MSGPACK_PP_ITERATION_FINISH_2 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1) +# else +# define MSGPACK_PP_ITERATION_FINISH_2 MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper3.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper3.hpp new file mode 100644 index 000000000000..470b9597866f --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper3.hpp @@ -0,0 +1,99 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_ITERATION_FINISH_3 +# +# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 +# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 +# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 +# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_4 +# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_5 +# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_6 +# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_7 +# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_8 +# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_9 +# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 +# define MSGPACK_PP_ITERATION_FINISH_3 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3, MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1) +# elif MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 +# define MSGPACK_PP_ITERATION_FINISH_3 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1) +# else +# define MSGPACK_PP_ITERATION_FINISH_3 MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper4.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper4.hpp new file mode 100644 index 000000000000..5a58361114bc --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper4.hpp @@ -0,0 +1,99 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_ITERATION_FINISH_4 +# +# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 +# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 +# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 +# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_4 +# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_5 +# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_6 +# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_7 +# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_8 +# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_9 +# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 +# define MSGPACK_PP_ITERATION_FINISH_4 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3, MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1) +# elif MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 +# define MSGPACK_PP_ITERATION_FINISH_4 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1) +# else +# define MSGPACK_PP_ITERATION_FINISH_4 MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper5.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper5.hpp new file mode 100644 index 000000000000..8f092d833cb3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/bounds/upper5.hpp @@ -0,0 +1,99 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_ITERATION_FINISH_5 +# +# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 +# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 +# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 +# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_4 +# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_5 +# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_6 +# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_7 +# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_8 +# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_9 +# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 +# define MSGPACK_PP_ITERATION_FINISH_5 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3, MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1) +# elif MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 +# define MSGPACK_PP_ITERATION_FINISH_5 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1) +# else +# define MSGPACK_PP_ITERATION_FINISH_5 MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/finish.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/finish.hpp new file mode 100644 index 000000000000..d4ee67b4144f --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/finish.hpp @@ -0,0 +1,99 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_LOCAL_FE +# +# undef MSGPACK_PP_LOCAL_FE_DIGIT_1 +# undef MSGPACK_PP_LOCAL_FE_DIGIT_2 +# undef MSGPACK_PP_LOCAL_FE_DIGIT_3 +# undef MSGPACK_PP_LOCAL_FE_DIGIT_4 +# undef MSGPACK_PP_LOCAL_FE_DIGIT_5 +# undef MSGPACK_PP_LOCAL_FE_DIGIT_6 +# undef MSGPACK_PP_LOCAL_FE_DIGIT_7 +# undef MSGPACK_PP_LOCAL_FE_DIGIT_8 +# undef MSGPACK_PP_LOCAL_FE_DIGIT_9 +# undef MSGPACK_PP_LOCAL_FE_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_LOCAL_FE_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_LOCAL_FE_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_LOCAL_FE_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_LOCAL_FE_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_LOCAL_FE_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_LOCAL_FE_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_LOCAL_FE_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_LOCAL_FE_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_LOCAL_FE_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_LOCAL_FE_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_LOCAL_FE_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_LOCAL_FE_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_LOCAL_FE_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_LOCAL_FE_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_LOCAL_FE_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_LOCAL_FE_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_LOCAL_FE_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_LOCAL_FE_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_LOCAL_FE_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_LOCAL_FE_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_LOCAL_FE_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_LOCAL_FE_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_LOCAL_FE_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_LOCAL_FE_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_LOCAL_FE_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_LOCAL_FE_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_LOCAL_FE_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_LOCAL_FE_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_LOCAL_FE_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_LOCAL_FE_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_LOCAL_FE_DIGIT_3 +# define MSGPACK_PP_LOCAL_FE() MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_LOCAL_FE_DIGIT_3, MSGPACK_PP_LOCAL_FE_DIGIT_2, MSGPACK_PP_LOCAL_FE_DIGIT_1) +# elif MSGPACK_PP_LOCAL_FE_DIGIT_2 +# define MSGPACK_PP_LOCAL_FE() MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_LOCAL_FE_DIGIT_2, MSGPACK_PP_LOCAL_FE_DIGIT_1) +# else +# define MSGPACK_PP_LOCAL_FE() MSGPACK_PP_LOCAL_FE_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward1.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward1.hpp new file mode 100644 index 000000000000..e6e100dbac6c --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward1.hpp @@ -0,0 +1,1342 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# if defined(MSGPACK_PP_ITERATION_LIMITS) +# if !defined(MSGPACK_PP_FILENAME_1) +# error MSGPACK_PP_ERROR: depth #1 filename is not defined +# endif +# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_ITERATION_LIMITS) +# include +# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_ITERATION_LIMITS) +# include +# define MSGPACK_PP_ITERATION_FLAGS_1() 0 +# undef MSGPACK_PP_ITERATION_LIMITS +# elif defined(MSGPACK_PP_ITERATION_PARAMS_1) +# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(0, MSGPACK_PP_ITERATION_PARAMS_1) +# include +# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(1, MSGPACK_PP_ITERATION_PARAMS_1) +# include +# define MSGPACK_PP_FILENAME_1 MSGPACK_PP_ARRAY_ELEM(2, MSGPACK_PP_ITERATION_PARAMS_1) +# if MSGPACK_PP_ARRAY_SIZE(MSGPACK_PP_ITERATION_PARAMS_1) >= 4 +# define MSGPACK_PP_ITERATION_FLAGS_1() MSGPACK_PP_ARRAY_ELEM(3, MSGPACK_PP_ITERATION_PARAMS_1) +# else +# define MSGPACK_PP_ITERATION_FLAGS_1() 0 +# endif +# else +# error MSGPACK_PP_ERROR: depth #1 iteration boundaries or filename not defined +# endif +# +# undef MSGPACK_PP_ITERATION_DEPTH +# define MSGPACK_PP_ITERATION_DEPTH() 1 +# +# define MSGPACK_PP_IS_ITERATING 1 +# +# if (MSGPACK_PP_ITERATION_START_1) > (MSGPACK_PP_ITERATION_FINISH_1) +# include +# else +# if MSGPACK_PP_ITERATION_START_1 <= 0 && MSGPACK_PP_ITERATION_FINISH_1 >= 0 +# define MSGPACK_PP_ITERATION_1 0 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 1 && MSGPACK_PP_ITERATION_FINISH_1 >= 1 +# define MSGPACK_PP_ITERATION_1 1 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 2 && MSGPACK_PP_ITERATION_FINISH_1 >= 2 +# define MSGPACK_PP_ITERATION_1 2 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 3 && MSGPACK_PP_ITERATION_FINISH_1 >= 3 +# define MSGPACK_PP_ITERATION_1 3 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 4 && MSGPACK_PP_ITERATION_FINISH_1 >= 4 +# define MSGPACK_PP_ITERATION_1 4 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 5 && MSGPACK_PP_ITERATION_FINISH_1 >= 5 +# define MSGPACK_PP_ITERATION_1 5 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 6 && MSGPACK_PP_ITERATION_FINISH_1 >= 6 +# define MSGPACK_PP_ITERATION_1 6 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 7 && MSGPACK_PP_ITERATION_FINISH_1 >= 7 +# define MSGPACK_PP_ITERATION_1 7 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 8 && MSGPACK_PP_ITERATION_FINISH_1 >= 8 +# define MSGPACK_PP_ITERATION_1 8 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 9 && MSGPACK_PP_ITERATION_FINISH_1 >= 9 +# define MSGPACK_PP_ITERATION_1 9 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 10 && MSGPACK_PP_ITERATION_FINISH_1 >= 10 +# define MSGPACK_PP_ITERATION_1 10 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 11 && MSGPACK_PP_ITERATION_FINISH_1 >= 11 +# define MSGPACK_PP_ITERATION_1 11 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 12 && MSGPACK_PP_ITERATION_FINISH_1 >= 12 +# define MSGPACK_PP_ITERATION_1 12 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 13 && MSGPACK_PP_ITERATION_FINISH_1 >= 13 +# define MSGPACK_PP_ITERATION_1 13 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 14 && MSGPACK_PP_ITERATION_FINISH_1 >= 14 +# define MSGPACK_PP_ITERATION_1 14 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 15 && MSGPACK_PP_ITERATION_FINISH_1 >= 15 +# define MSGPACK_PP_ITERATION_1 15 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 16 && MSGPACK_PP_ITERATION_FINISH_1 >= 16 +# define MSGPACK_PP_ITERATION_1 16 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 17 && MSGPACK_PP_ITERATION_FINISH_1 >= 17 +# define MSGPACK_PP_ITERATION_1 17 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 18 && MSGPACK_PP_ITERATION_FINISH_1 >= 18 +# define MSGPACK_PP_ITERATION_1 18 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 19 && MSGPACK_PP_ITERATION_FINISH_1 >= 19 +# define MSGPACK_PP_ITERATION_1 19 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 20 && MSGPACK_PP_ITERATION_FINISH_1 >= 20 +# define MSGPACK_PP_ITERATION_1 20 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 21 && MSGPACK_PP_ITERATION_FINISH_1 >= 21 +# define MSGPACK_PP_ITERATION_1 21 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 22 && MSGPACK_PP_ITERATION_FINISH_1 >= 22 +# define MSGPACK_PP_ITERATION_1 22 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 23 && MSGPACK_PP_ITERATION_FINISH_1 >= 23 +# define MSGPACK_PP_ITERATION_1 23 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 24 && MSGPACK_PP_ITERATION_FINISH_1 >= 24 +# define MSGPACK_PP_ITERATION_1 24 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 25 && MSGPACK_PP_ITERATION_FINISH_1 >= 25 +# define MSGPACK_PP_ITERATION_1 25 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 26 && MSGPACK_PP_ITERATION_FINISH_1 >= 26 +# define MSGPACK_PP_ITERATION_1 26 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 27 && MSGPACK_PP_ITERATION_FINISH_1 >= 27 +# define MSGPACK_PP_ITERATION_1 27 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 28 && MSGPACK_PP_ITERATION_FINISH_1 >= 28 +# define MSGPACK_PP_ITERATION_1 28 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 29 && MSGPACK_PP_ITERATION_FINISH_1 >= 29 +# define MSGPACK_PP_ITERATION_1 29 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 30 && MSGPACK_PP_ITERATION_FINISH_1 >= 30 +# define MSGPACK_PP_ITERATION_1 30 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 31 && MSGPACK_PP_ITERATION_FINISH_1 >= 31 +# define MSGPACK_PP_ITERATION_1 31 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 32 && MSGPACK_PP_ITERATION_FINISH_1 >= 32 +# define MSGPACK_PP_ITERATION_1 32 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 33 && MSGPACK_PP_ITERATION_FINISH_1 >= 33 +# define MSGPACK_PP_ITERATION_1 33 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 34 && MSGPACK_PP_ITERATION_FINISH_1 >= 34 +# define MSGPACK_PP_ITERATION_1 34 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 35 && MSGPACK_PP_ITERATION_FINISH_1 >= 35 +# define MSGPACK_PP_ITERATION_1 35 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 36 && MSGPACK_PP_ITERATION_FINISH_1 >= 36 +# define MSGPACK_PP_ITERATION_1 36 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 37 && MSGPACK_PP_ITERATION_FINISH_1 >= 37 +# define MSGPACK_PP_ITERATION_1 37 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 38 && MSGPACK_PP_ITERATION_FINISH_1 >= 38 +# define MSGPACK_PP_ITERATION_1 38 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 39 && MSGPACK_PP_ITERATION_FINISH_1 >= 39 +# define MSGPACK_PP_ITERATION_1 39 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 40 && MSGPACK_PP_ITERATION_FINISH_1 >= 40 +# define MSGPACK_PP_ITERATION_1 40 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 41 && MSGPACK_PP_ITERATION_FINISH_1 >= 41 +# define MSGPACK_PP_ITERATION_1 41 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 42 && MSGPACK_PP_ITERATION_FINISH_1 >= 42 +# define MSGPACK_PP_ITERATION_1 42 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 43 && MSGPACK_PP_ITERATION_FINISH_1 >= 43 +# define MSGPACK_PP_ITERATION_1 43 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 44 && MSGPACK_PP_ITERATION_FINISH_1 >= 44 +# define MSGPACK_PP_ITERATION_1 44 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 45 && MSGPACK_PP_ITERATION_FINISH_1 >= 45 +# define MSGPACK_PP_ITERATION_1 45 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 46 && MSGPACK_PP_ITERATION_FINISH_1 >= 46 +# define MSGPACK_PP_ITERATION_1 46 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 47 && MSGPACK_PP_ITERATION_FINISH_1 >= 47 +# define MSGPACK_PP_ITERATION_1 47 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 48 && MSGPACK_PP_ITERATION_FINISH_1 >= 48 +# define MSGPACK_PP_ITERATION_1 48 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 49 && MSGPACK_PP_ITERATION_FINISH_1 >= 49 +# define MSGPACK_PP_ITERATION_1 49 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 50 && MSGPACK_PP_ITERATION_FINISH_1 >= 50 +# define MSGPACK_PP_ITERATION_1 50 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 51 && MSGPACK_PP_ITERATION_FINISH_1 >= 51 +# define MSGPACK_PP_ITERATION_1 51 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 52 && MSGPACK_PP_ITERATION_FINISH_1 >= 52 +# define MSGPACK_PP_ITERATION_1 52 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 53 && MSGPACK_PP_ITERATION_FINISH_1 >= 53 +# define MSGPACK_PP_ITERATION_1 53 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 54 && MSGPACK_PP_ITERATION_FINISH_1 >= 54 +# define MSGPACK_PP_ITERATION_1 54 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 55 && MSGPACK_PP_ITERATION_FINISH_1 >= 55 +# define MSGPACK_PP_ITERATION_1 55 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 56 && MSGPACK_PP_ITERATION_FINISH_1 >= 56 +# define MSGPACK_PP_ITERATION_1 56 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 57 && MSGPACK_PP_ITERATION_FINISH_1 >= 57 +# define MSGPACK_PP_ITERATION_1 57 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 58 && MSGPACK_PP_ITERATION_FINISH_1 >= 58 +# define MSGPACK_PP_ITERATION_1 58 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 59 && MSGPACK_PP_ITERATION_FINISH_1 >= 59 +# define MSGPACK_PP_ITERATION_1 59 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 60 && MSGPACK_PP_ITERATION_FINISH_1 >= 60 +# define MSGPACK_PP_ITERATION_1 60 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 61 && MSGPACK_PP_ITERATION_FINISH_1 >= 61 +# define MSGPACK_PP_ITERATION_1 61 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 62 && MSGPACK_PP_ITERATION_FINISH_1 >= 62 +# define MSGPACK_PP_ITERATION_1 62 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 63 && MSGPACK_PP_ITERATION_FINISH_1 >= 63 +# define MSGPACK_PP_ITERATION_1 63 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 64 && MSGPACK_PP_ITERATION_FINISH_1 >= 64 +# define MSGPACK_PP_ITERATION_1 64 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 65 && MSGPACK_PP_ITERATION_FINISH_1 >= 65 +# define MSGPACK_PP_ITERATION_1 65 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 66 && MSGPACK_PP_ITERATION_FINISH_1 >= 66 +# define MSGPACK_PP_ITERATION_1 66 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 67 && MSGPACK_PP_ITERATION_FINISH_1 >= 67 +# define MSGPACK_PP_ITERATION_1 67 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 68 && MSGPACK_PP_ITERATION_FINISH_1 >= 68 +# define MSGPACK_PP_ITERATION_1 68 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 69 && MSGPACK_PP_ITERATION_FINISH_1 >= 69 +# define MSGPACK_PP_ITERATION_1 69 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 70 && MSGPACK_PP_ITERATION_FINISH_1 >= 70 +# define MSGPACK_PP_ITERATION_1 70 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 71 && MSGPACK_PP_ITERATION_FINISH_1 >= 71 +# define MSGPACK_PP_ITERATION_1 71 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 72 && MSGPACK_PP_ITERATION_FINISH_1 >= 72 +# define MSGPACK_PP_ITERATION_1 72 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 73 && MSGPACK_PP_ITERATION_FINISH_1 >= 73 +# define MSGPACK_PP_ITERATION_1 73 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 74 && MSGPACK_PP_ITERATION_FINISH_1 >= 74 +# define MSGPACK_PP_ITERATION_1 74 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 75 && MSGPACK_PP_ITERATION_FINISH_1 >= 75 +# define MSGPACK_PP_ITERATION_1 75 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 76 && MSGPACK_PP_ITERATION_FINISH_1 >= 76 +# define MSGPACK_PP_ITERATION_1 76 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 77 && MSGPACK_PP_ITERATION_FINISH_1 >= 77 +# define MSGPACK_PP_ITERATION_1 77 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 78 && MSGPACK_PP_ITERATION_FINISH_1 >= 78 +# define MSGPACK_PP_ITERATION_1 78 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 79 && MSGPACK_PP_ITERATION_FINISH_1 >= 79 +# define MSGPACK_PP_ITERATION_1 79 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 80 && MSGPACK_PP_ITERATION_FINISH_1 >= 80 +# define MSGPACK_PP_ITERATION_1 80 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 81 && MSGPACK_PP_ITERATION_FINISH_1 >= 81 +# define MSGPACK_PP_ITERATION_1 81 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 82 && MSGPACK_PP_ITERATION_FINISH_1 >= 82 +# define MSGPACK_PP_ITERATION_1 82 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 83 && MSGPACK_PP_ITERATION_FINISH_1 >= 83 +# define MSGPACK_PP_ITERATION_1 83 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 84 && MSGPACK_PP_ITERATION_FINISH_1 >= 84 +# define MSGPACK_PP_ITERATION_1 84 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 85 && MSGPACK_PP_ITERATION_FINISH_1 >= 85 +# define MSGPACK_PP_ITERATION_1 85 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 86 && MSGPACK_PP_ITERATION_FINISH_1 >= 86 +# define MSGPACK_PP_ITERATION_1 86 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 87 && MSGPACK_PP_ITERATION_FINISH_1 >= 87 +# define MSGPACK_PP_ITERATION_1 87 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 88 && MSGPACK_PP_ITERATION_FINISH_1 >= 88 +# define MSGPACK_PP_ITERATION_1 88 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 89 && MSGPACK_PP_ITERATION_FINISH_1 >= 89 +# define MSGPACK_PP_ITERATION_1 89 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 90 && MSGPACK_PP_ITERATION_FINISH_1 >= 90 +# define MSGPACK_PP_ITERATION_1 90 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 91 && MSGPACK_PP_ITERATION_FINISH_1 >= 91 +# define MSGPACK_PP_ITERATION_1 91 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 92 && MSGPACK_PP_ITERATION_FINISH_1 >= 92 +# define MSGPACK_PP_ITERATION_1 92 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 93 && MSGPACK_PP_ITERATION_FINISH_1 >= 93 +# define MSGPACK_PP_ITERATION_1 93 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 94 && MSGPACK_PP_ITERATION_FINISH_1 >= 94 +# define MSGPACK_PP_ITERATION_1 94 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 95 && MSGPACK_PP_ITERATION_FINISH_1 >= 95 +# define MSGPACK_PP_ITERATION_1 95 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 96 && MSGPACK_PP_ITERATION_FINISH_1 >= 96 +# define MSGPACK_PP_ITERATION_1 96 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 97 && MSGPACK_PP_ITERATION_FINISH_1 >= 97 +# define MSGPACK_PP_ITERATION_1 97 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 98 && MSGPACK_PP_ITERATION_FINISH_1 >= 98 +# define MSGPACK_PP_ITERATION_1 98 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 99 && MSGPACK_PP_ITERATION_FINISH_1 >= 99 +# define MSGPACK_PP_ITERATION_1 99 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 100 && MSGPACK_PP_ITERATION_FINISH_1 >= 100 +# define MSGPACK_PP_ITERATION_1 100 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 101 && MSGPACK_PP_ITERATION_FINISH_1 >= 101 +# define MSGPACK_PP_ITERATION_1 101 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 102 && MSGPACK_PP_ITERATION_FINISH_1 >= 102 +# define MSGPACK_PP_ITERATION_1 102 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 103 && MSGPACK_PP_ITERATION_FINISH_1 >= 103 +# define MSGPACK_PP_ITERATION_1 103 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 104 && MSGPACK_PP_ITERATION_FINISH_1 >= 104 +# define MSGPACK_PP_ITERATION_1 104 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 105 && MSGPACK_PP_ITERATION_FINISH_1 >= 105 +# define MSGPACK_PP_ITERATION_1 105 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 106 && MSGPACK_PP_ITERATION_FINISH_1 >= 106 +# define MSGPACK_PP_ITERATION_1 106 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 107 && MSGPACK_PP_ITERATION_FINISH_1 >= 107 +# define MSGPACK_PP_ITERATION_1 107 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 108 && MSGPACK_PP_ITERATION_FINISH_1 >= 108 +# define MSGPACK_PP_ITERATION_1 108 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 109 && MSGPACK_PP_ITERATION_FINISH_1 >= 109 +# define MSGPACK_PP_ITERATION_1 109 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 110 && MSGPACK_PP_ITERATION_FINISH_1 >= 110 +# define MSGPACK_PP_ITERATION_1 110 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 111 && MSGPACK_PP_ITERATION_FINISH_1 >= 111 +# define MSGPACK_PP_ITERATION_1 111 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 112 && MSGPACK_PP_ITERATION_FINISH_1 >= 112 +# define MSGPACK_PP_ITERATION_1 112 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 113 && MSGPACK_PP_ITERATION_FINISH_1 >= 113 +# define MSGPACK_PP_ITERATION_1 113 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 114 && MSGPACK_PP_ITERATION_FINISH_1 >= 114 +# define MSGPACK_PP_ITERATION_1 114 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 115 && MSGPACK_PP_ITERATION_FINISH_1 >= 115 +# define MSGPACK_PP_ITERATION_1 115 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 116 && MSGPACK_PP_ITERATION_FINISH_1 >= 116 +# define MSGPACK_PP_ITERATION_1 116 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 117 && MSGPACK_PP_ITERATION_FINISH_1 >= 117 +# define MSGPACK_PP_ITERATION_1 117 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 118 && MSGPACK_PP_ITERATION_FINISH_1 >= 118 +# define MSGPACK_PP_ITERATION_1 118 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 119 && MSGPACK_PP_ITERATION_FINISH_1 >= 119 +# define MSGPACK_PP_ITERATION_1 119 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 120 && MSGPACK_PP_ITERATION_FINISH_1 >= 120 +# define MSGPACK_PP_ITERATION_1 120 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 121 && MSGPACK_PP_ITERATION_FINISH_1 >= 121 +# define MSGPACK_PP_ITERATION_1 121 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 122 && MSGPACK_PP_ITERATION_FINISH_1 >= 122 +# define MSGPACK_PP_ITERATION_1 122 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 123 && MSGPACK_PP_ITERATION_FINISH_1 >= 123 +# define MSGPACK_PP_ITERATION_1 123 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 124 && MSGPACK_PP_ITERATION_FINISH_1 >= 124 +# define MSGPACK_PP_ITERATION_1 124 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 125 && MSGPACK_PP_ITERATION_FINISH_1 >= 125 +# define MSGPACK_PP_ITERATION_1 125 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 126 && MSGPACK_PP_ITERATION_FINISH_1 >= 126 +# define MSGPACK_PP_ITERATION_1 126 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 127 && MSGPACK_PP_ITERATION_FINISH_1 >= 127 +# define MSGPACK_PP_ITERATION_1 127 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 128 && MSGPACK_PP_ITERATION_FINISH_1 >= 128 +# define MSGPACK_PP_ITERATION_1 128 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 129 && MSGPACK_PP_ITERATION_FINISH_1 >= 129 +# define MSGPACK_PP_ITERATION_1 129 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 130 && MSGPACK_PP_ITERATION_FINISH_1 >= 130 +# define MSGPACK_PP_ITERATION_1 130 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 131 && MSGPACK_PP_ITERATION_FINISH_1 >= 131 +# define MSGPACK_PP_ITERATION_1 131 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 132 && MSGPACK_PP_ITERATION_FINISH_1 >= 132 +# define MSGPACK_PP_ITERATION_1 132 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 133 && MSGPACK_PP_ITERATION_FINISH_1 >= 133 +# define MSGPACK_PP_ITERATION_1 133 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 134 && MSGPACK_PP_ITERATION_FINISH_1 >= 134 +# define MSGPACK_PP_ITERATION_1 134 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 135 && MSGPACK_PP_ITERATION_FINISH_1 >= 135 +# define MSGPACK_PP_ITERATION_1 135 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 136 && MSGPACK_PP_ITERATION_FINISH_1 >= 136 +# define MSGPACK_PP_ITERATION_1 136 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 137 && MSGPACK_PP_ITERATION_FINISH_1 >= 137 +# define MSGPACK_PP_ITERATION_1 137 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 138 && MSGPACK_PP_ITERATION_FINISH_1 >= 138 +# define MSGPACK_PP_ITERATION_1 138 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 139 && MSGPACK_PP_ITERATION_FINISH_1 >= 139 +# define MSGPACK_PP_ITERATION_1 139 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 140 && MSGPACK_PP_ITERATION_FINISH_1 >= 140 +# define MSGPACK_PP_ITERATION_1 140 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 141 && MSGPACK_PP_ITERATION_FINISH_1 >= 141 +# define MSGPACK_PP_ITERATION_1 141 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 142 && MSGPACK_PP_ITERATION_FINISH_1 >= 142 +# define MSGPACK_PP_ITERATION_1 142 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 143 && MSGPACK_PP_ITERATION_FINISH_1 >= 143 +# define MSGPACK_PP_ITERATION_1 143 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 144 && MSGPACK_PP_ITERATION_FINISH_1 >= 144 +# define MSGPACK_PP_ITERATION_1 144 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 145 && MSGPACK_PP_ITERATION_FINISH_1 >= 145 +# define MSGPACK_PP_ITERATION_1 145 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 146 && MSGPACK_PP_ITERATION_FINISH_1 >= 146 +# define MSGPACK_PP_ITERATION_1 146 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 147 && MSGPACK_PP_ITERATION_FINISH_1 >= 147 +# define MSGPACK_PP_ITERATION_1 147 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 148 && MSGPACK_PP_ITERATION_FINISH_1 >= 148 +# define MSGPACK_PP_ITERATION_1 148 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 149 && MSGPACK_PP_ITERATION_FINISH_1 >= 149 +# define MSGPACK_PP_ITERATION_1 149 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 150 && MSGPACK_PP_ITERATION_FINISH_1 >= 150 +# define MSGPACK_PP_ITERATION_1 150 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 151 && MSGPACK_PP_ITERATION_FINISH_1 >= 151 +# define MSGPACK_PP_ITERATION_1 151 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 152 && MSGPACK_PP_ITERATION_FINISH_1 >= 152 +# define MSGPACK_PP_ITERATION_1 152 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 153 && MSGPACK_PP_ITERATION_FINISH_1 >= 153 +# define MSGPACK_PP_ITERATION_1 153 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 154 && MSGPACK_PP_ITERATION_FINISH_1 >= 154 +# define MSGPACK_PP_ITERATION_1 154 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 155 && MSGPACK_PP_ITERATION_FINISH_1 >= 155 +# define MSGPACK_PP_ITERATION_1 155 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 156 && MSGPACK_PP_ITERATION_FINISH_1 >= 156 +# define MSGPACK_PP_ITERATION_1 156 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 157 && MSGPACK_PP_ITERATION_FINISH_1 >= 157 +# define MSGPACK_PP_ITERATION_1 157 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 158 && MSGPACK_PP_ITERATION_FINISH_1 >= 158 +# define MSGPACK_PP_ITERATION_1 158 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 159 && MSGPACK_PP_ITERATION_FINISH_1 >= 159 +# define MSGPACK_PP_ITERATION_1 159 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 160 && MSGPACK_PP_ITERATION_FINISH_1 >= 160 +# define MSGPACK_PP_ITERATION_1 160 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 161 && MSGPACK_PP_ITERATION_FINISH_1 >= 161 +# define MSGPACK_PP_ITERATION_1 161 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 162 && MSGPACK_PP_ITERATION_FINISH_1 >= 162 +# define MSGPACK_PP_ITERATION_1 162 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 163 && MSGPACK_PP_ITERATION_FINISH_1 >= 163 +# define MSGPACK_PP_ITERATION_1 163 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 164 && MSGPACK_PP_ITERATION_FINISH_1 >= 164 +# define MSGPACK_PP_ITERATION_1 164 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 165 && MSGPACK_PP_ITERATION_FINISH_1 >= 165 +# define MSGPACK_PP_ITERATION_1 165 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 166 && MSGPACK_PP_ITERATION_FINISH_1 >= 166 +# define MSGPACK_PP_ITERATION_1 166 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 167 && MSGPACK_PP_ITERATION_FINISH_1 >= 167 +# define MSGPACK_PP_ITERATION_1 167 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 168 && MSGPACK_PP_ITERATION_FINISH_1 >= 168 +# define MSGPACK_PP_ITERATION_1 168 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 169 && MSGPACK_PP_ITERATION_FINISH_1 >= 169 +# define MSGPACK_PP_ITERATION_1 169 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 170 && MSGPACK_PP_ITERATION_FINISH_1 >= 170 +# define MSGPACK_PP_ITERATION_1 170 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 171 && MSGPACK_PP_ITERATION_FINISH_1 >= 171 +# define MSGPACK_PP_ITERATION_1 171 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 172 && MSGPACK_PP_ITERATION_FINISH_1 >= 172 +# define MSGPACK_PP_ITERATION_1 172 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 173 && MSGPACK_PP_ITERATION_FINISH_1 >= 173 +# define MSGPACK_PP_ITERATION_1 173 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 174 && MSGPACK_PP_ITERATION_FINISH_1 >= 174 +# define MSGPACK_PP_ITERATION_1 174 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 175 && MSGPACK_PP_ITERATION_FINISH_1 >= 175 +# define MSGPACK_PP_ITERATION_1 175 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 176 && MSGPACK_PP_ITERATION_FINISH_1 >= 176 +# define MSGPACK_PP_ITERATION_1 176 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 177 && MSGPACK_PP_ITERATION_FINISH_1 >= 177 +# define MSGPACK_PP_ITERATION_1 177 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 178 && MSGPACK_PP_ITERATION_FINISH_1 >= 178 +# define MSGPACK_PP_ITERATION_1 178 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 179 && MSGPACK_PP_ITERATION_FINISH_1 >= 179 +# define MSGPACK_PP_ITERATION_1 179 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 180 && MSGPACK_PP_ITERATION_FINISH_1 >= 180 +# define MSGPACK_PP_ITERATION_1 180 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 181 && MSGPACK_PP_ITERATION_FINISH_1 >= 181 +# define MSGPACK_PP_ITERATION_1 181 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 182 && MSGPACK_PP_ITERATION_FINISH_1 >= 182 +# define MSGPACK_PP_ITERATION_1 182 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 183 && MSGPACK_PP_ITERATION_FINISH_1 >= 183 +# define MSGPACK_PP_ITERATION_1 183 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 184 && MSGPACK_PP_ITERATION_FINISH_1 >= 184 +# define MSGPACK_PP_ITERATION_1 184 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 185 && MSGPACK_PP_ITERATION_FINISH_1 >= 185 +# define MSGPACK_PP_ITERATION_1 185 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 186 && MSGPACK_PP_ITERATION_FINISH_1 >= 186 +# define MSGPACK_PP_ITERATION_1 186 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 187 && MSGPACK_PP_ITERATION_FINISH_1 >= 187 +# define MSGPACK_PP_ITERATION_1 187 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 188 && MSGPACK_PP_ITERATION_FINISH_1 >= 188 +# define MSGPACK_PP_ITERATION_1 188 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 189 && MSGPACK_PP_ITERATION_FINISH_1 >= 189 +# define MSGPACK_PP_ITERATION_1 189 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 190 && MSGPACK_PP_ITERATION_FINISH_1 >= 190 +# define MSGPACK_PP_ITERATION_1 190 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 191 && MSGPACK_PP_ITERATION_FINISH_1 >= 191 +# define MSGPACK_PP_ITERATION_1 191 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 192 && MSGPACK_PP_ITERATION_FINISH_1 >= 192 +# define MSGPACK_PP_ITERATION_1 192 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 193 && MSGPACK_PP_ITERATION_FINISH_1 >= 193 +# define MSGPACK_PP_ITERATION_1 193 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 194 && MSGPACK_PP_ITERATION_FINISH_1 >= 194 +# define MSGPACK_PP_ITERATION_1 194 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 195 && MSGPACK_PP_ITERATION_FINISH_1 >= 195 +# define MSGPACK_PP_ITERATION_1 195 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 196 && MSGPACK_PP_ITERATION_FINISH_1 >= 196 +# define MSGPACK_PP_ITERATION_1 196 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 197 && MSGPACK_PP_ITERATION_FINISH_1 >= 197 +# define MSGPACK_PP_ITERATION_1 197 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 198 && MSGPACK_PP_ITERATION_FINISH_1 >= 198 +# define MSGPACK_PP_ITERATION_1 198 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 199 && MSGPACK_PP_ITERATION_FINISH_1 >= 199 +# define MSGPACK_PP_ITERATION_1 199 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 200 && MSGPACK_PP_ITERATION_FINISH_1 >= 200 +# define MSGPACK_PP_ITERATION_1 200 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 201 && MSGPACK_PP_ITERATION_FINISH_1 >= 201 +# define MSGPACK_PP_ITERATION_1 201 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 202 && MSGPACK_PP_ITERATION_FINISH_1 >= 202 +# define MSGPACK_PP_ITERATION_1 202 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 203 && MSGPACK_PP_ITERATION_FINISH_1 >= 203 +# define MSGPACK_PP_ITERATION_1 203 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 204 && MSGPACK_PP_ITERATION_FINISH_1 >= 204 +# define MSGPACK_PP_ITERATION_1 204 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 205 && MSGPACK_PP_ITERATION_FINISH_1 >= 205 +# define MSGPACK_PP_ITERATION_1 205 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 206 && MSGPACK_PP_ITERATION_FINISH_1 >= 206 +# define MSGPACK_PP_ITERATION_1 206 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 207 && MSGPACK_PP_ITERATION_FINISH_1 >= 207 +# define MSGPACK_PP_ITERATION_1 207 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 208 && MSGPACK_PP_ITERATION_FINISH_1 >= 208 +# define MSGPACK_PP_ITERATION_1 208 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 209 && MSGPACK_PP_ITERATION_FINISH_1 >= 209 +# define MSGPACK_PP_ITERATION_1 209 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 210 && MSGPACK_PP_ITERATION_FINISH_1 >= 210 +# define MSGPACK_PP_ITERATION_1 210 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 211 && MSGPACK_PP_ITERATION_FINISH_1 >= 211 +# define MSGPACK_PP_ITERATION_1 211 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 212 && MSGPACK_PP_ITERATION_FINISH_1 >= 212 +# define MSGPACK_PP_ITERATION_1 212 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 213 && MSGPACK_PP_ITERATION_FINISH_1 >= 213 +# define MSGPACK_PP_ITERATION_1 213 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 214 && MSGPACK_PP_ITERATION_FINISH_1 >= 214 +# define MSGPACK_PP_ITERATION_1 214 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 215 && MSGPACK_PP_ITERATION_FINISH_1 >= 215 +# define MSGPACK_PP_ITERATION_1 215 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 216 && MSGPACK_PP_ITERATION_FINISH_1 >= 216 +# define MSGPACK_PP_ITERATION_1 216 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 217 && MSGPACK_PP_ITERATION_FINISH_1 >= 217 +# define MSGPACK_PP_ITERATION_1 217 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 218 && MSGPACK_PP_ITERATION_FINISH_1 >= 218 +# define MSGPACK_PP_ITERATION_1 218 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 219 && MSGPACK_PP_ITERATION_FINISH_1 >= 219 +# define MSGPACK_PP_ITERATION_1 219 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 220 && MSGPACK_PP_ITERATION_FINISH_1 >= 220 +# define MSGPACK_PP_ITERATION_1 220 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 221 && MSGPACK_PP_ITERATION_FINISH_1 >= 221 +# define MSGPACK_PP_ITERATION_1 221 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 222 && MSGPACK_PP_ITERATION_FINISH_1 >= 222 +# define MSGPACK_PP_ITERATION_1 222 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 223 && MSGPACK_PP_ITERATION_FINISH_1 >= 223 +# define MSGPACK_PP_ITERATION_1 223 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 224 && MSGPACK_PP_ITERATION_FINISH_1 >= 224 +# define MSGPACK_PP_ITERATION_1 224 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 225 && MSGPACK_PP_ITERATION_FINISH_1 >= 225 +# define MSGPACK_PP_ITERATION_1 225 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 226 && MSGPACK_PP_ITERATION_FINISH_1 >= 226 +# define MSGPACK_PP_ITERATION_1 226 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 227 && MSGPACK_PP_ITERATION_FINISH_1 >= 227 +# define MSGPACK_PP_ITERATION_1 227 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 228 && MSGPACK_PP_ITERATION_FINISH_1 >= 228 +# define MSGPACK_PP_ITERATION_1 228 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 229 && MSGPACK_PP_ITERATION_FINISH_1 >= 229 +# define MSGPACK_PP_ITERATION_1 229 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 230 && MSGPACK_PP_ITERATION_FINISH_1 >= 230 +# define MSGPACK_PP_ITERATION_1 230 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 231 && MSGPACK_PP_ITERATION_FINISH_1 >= 231 +# define MSGPACK_PP_ITERATION_1 231 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 232 && MSGPACK_PP_ITERATION_FINISH_1 >= 232 +# define MSGPACK_PP_ITERATION_1 232 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 233 && MSGPACK_PP_ITERATION_FINISH_1 >= 233 +# define MSGPACK_PP_ITERATION_1 233 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 234 && MSGPACK_PP_ITERATION_FINISH_1 >= 234 +# define MSGPACK_PP_ITERATION_1 234 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 235 && MSGPACK_PP_ITERATION_FINISH_1 >= 235 +# define MSGPACK_PP_ITERATION_1 235 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 236 && MSGPACK_PP_ITERATION_FINISH_1 >= 236 +# define MSGPACK_PP_ITERATION_1 236 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 237 && MSGPACK_PP_ITERATION_FINISH_1 >= 237 +# define MSGPACK_PP_ITERATION_1 237 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 238 && MSGPACK_PP_ITERATION_FINISH_1 >= 238 +# define MSGPACK_PP_ITERATION_1 238 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 239 && MSGPACK_PP_ITERATION_FINISH_1 >= 239 +# define MSGPACK_PP_ITERATION_1 239 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 240 && MSGPACK_PP_ITERATION_FINISH_1 >= 240 +# define MSGPACK_PP_ITERATION_1 240 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 241 && MSGPACK_PP_ITERATION_FINISH_1 >= 241 +# define MSGPACK_PP_ITERATION_1 241 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 242 && MSGPACK_PP_ITERATION_FINISH_1 >= 242 +# define MSGPACK_PP_ITERATION_1 242 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 243 && MSGPACK_PP_ITERATION_FINISH_1 >= 243 +# define MSGPACK_PP_ITERATION_1 243 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 244 && MSGPACK_PP_ITERATION_FINISH_1 >= 244 +# define MSGPACK_PP_ITERATION_1 244 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 245 && MSGPACK_PP_ITERATION_FINISH_1 >= 245 +# define MSGPACK_PP_ITERATION_1 245 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 246 && MSGPACK_PP_ITERATION_FINISH_1 >= 246 +# define MSGPACK_PP_ITERATION_1 246 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 247 && MSGPACK_PP_ITERATION_FINISH_1 >= 247 +# define MSGPACK_PP_ITERATION_1 247 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 248 && MSGPACK_PP_ITERATION_FINISH_1 >= 248 +# define MSGPACK_PP_ITERATION_1 248 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 249 && MSGPACK_PP_ITERATION_FINISH_1 >= 249 +# define MSGPACK_PP_ITERATION_1 249 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 250 && MSGPACK_PP_ITERATION_FINISH_1 >= 250 +# define MSGPACK_PP_ITERATION_1 250 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 251 && MSGPACK_PP_ITERATION_FINISH_1 >= 251 +# define MSGPACK_PP_ITERATION_1 251 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 252 && MSGPACK_PP_ITERATION_FINISH_1 >= 252 +# define MSGPACK_PP_ITERATION_1 252 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 253 && MSGPACK_PP_ITERATION_FINISH_1 >= 253 +# define MSGPACK_PP_ITERATION_1 253 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 254 && MSGPACK_PP_ITERATION_FINISH_1 >= 254 +# define MSGPACK_PP_ITERATION_1 254 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 255 && MSGPACK_PP_ITERATION_FINISH_1 >= 255 +# define MSGPACK_PP_ITERATION_1 255 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_START_1 <= 256 && MSGPACK_PP_ITERATION_FINISH_1 >= 256 +# define MSGPACK_PP_ITERATION_1 256 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# endif +# +# undef MSGPACK_PP_IS_ITERATING +# +# undef MSGPACK_PP_ITERATION_DEPTH +# define MSGPACK_PP_ITERATION_DEPTH() 0 +# +# undef MSGPACK_PP_ITERATION_START_1 +# undef MSGPACK_PP_ITERATION_FINISH_1 +# undef MSGPACK_PP_FILENAME_1 +# +# undef MSGPACK_PP_ITERATION_FLAGS_1 +# undef MSGPACK_PP_ITERATION_PARAMS_1 diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward2.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward2.hpp new file mode 100644 index 000000000000..00683af2b6a5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward2.hpp @@ -0,0 +1,1338 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# if defined(MSGPACK_PP_ITERATION_LIMITS) +# if !defined(MSGPACK_PP_FILENAME_2) +# error MSGPACK_PP_ERROR: depth #2 filename is not defined +# endif +# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_ITERATION_LIMITS) +# include +# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_ITERATION_LIMITS) +# include +# define MSGPACK_PP_ITERATION_FLAGS_2() 0 +# undef MSGPACK_PP_ITERATION_LIMITS +# elif defined(MSGPACK_PP_ITERATION_PARAMS_2) +# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(0, MSGPACK_PP_ITERATION_PARAMS_2) +# include +# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(1, MSGPACK_PP_ITERATION_PARAMS_2) +# include +# define MSGPACK_PP_FILENAME_2 MSGPACK_PP_ARRAY_ELEM(2, MSGPACK_PP_ITERATION_PARAMS_2) +# if MSGPACK_PP_ARRAY_SIZE(MSGPACK_PP_ITERATION_PARAMS_2) >= 4 +# define MSGPACK_PP_ITERATION_FLAGS_2() MSGPACK_PP_ARRAY_ELEM(3, MSGPACK_PP_ITERATION_PARAMS_2) +# else +# define MSGPACK_PP_ITERATION_FLAGS_2() 0 +# endif +# else +# error MSGPACK_PP_ERROR: depth #2 iteration boundaries or filename not defined +# endif +# +# undef MSGPACK_PP_ITERATION_DEPTH +# define MSGPACK_PP_ITERATION_DEPTH() 2 +# +# if (MSGPACK_PP_ITERATION_START_2) > (MSGPACK_PP_ITERATION_FINISH_2) +# include +# else +# if MSGPACK_PP_ITERATION_START_2 <= 0 && MSGPACK_PP_ITERATION_FINISH_2 >= 0 +# define MSGPACK_PP_ITERATION_2 0 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 1 && MSGPACK_PP_ITERATION_FINISH_2 >= 1 +# define MSGPACK_PP_ITERATION_2 1 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 2 && MSGPACK_PP_ITERATION_FINISH_2 >= 2 +# define MSGPACK_PP_ITERATION_2 2 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 3 && MSGPACK_PP_ITERATION_FINISH_2 >= 3 +# define MSGPACK_PP_ITERATION_2 3 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 4 && MSGPACK_PP_ITERATION_FINISH_2 >= 4 +# define MSGPACK_PP_ITERATION_2 4 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 5 && MSGPACK_PP_ITERATION_FINISH_2 >= 5 +# define MSGPACK_PP_ITERATION_2 5 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 6 && MSGPACK_PP_ITERATION_FINISH_2 >= 6 +# define MSGPACK_PP_ITERATION_2 6 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 7 && MSGPACK_PP_ITERATION_FINISH_2 >= 7 +# define MSGPACK_PP_ITERATION_2 7 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 8 && MSGPACK_PP_ITERATION_FINISH_2 >= 8 +# define MSGPACK_PP_ITERATION_2 8 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 9 && MSGPACK_PP_ITERATION_FINISH_2 >= 9 +# define MSGPACK_PP_ITERATION_2 9 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 10 && MSGPACK_PP_ITERATION_FINISH_2 >= 10 +# define MSGPACK_PP_ITERATION_2 10 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 11 && MSGPACK_PP_ITERATION_FINISH_2 >= 11 +# define MSGPACK_PP_ITERATION_2 11 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 12 && MSGPACK_PP_ITERATION_FINISH_2 >= 12 +# define MSGPACK_PP_ITERATION_2 12 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 13 && MSGPACK_PP_ITERATION_FINISH_2 >= 13 +# define MSGPACK_PP_ITERATION_2 13 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 14 && MSGPACK_PP_ITERATION_FINISH_2 >= 14 +# define MSGPACK_PP_ITERATION_2 14 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 15 && MSGPACK_PP_ITERATION_FINISH_2 >= 15 +# define MSGPACK_PP_ITERATION_2 15 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 16 && MSGPACK_PP_ITERATION_FINISH_2 >= 16 +# define MSGPACK_PP_ITERATION_2 16 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 17 && MSGPACK_PP_ITERATION_FINISH_2 >= 17 +# define MSGPACK_PP_ITERATION_2 17 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 18 && MSGPACK_PP_ITERATION_FINISH_2 >= 18 +# define MSGPACK_PP_ITERATION_2 18 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 19 && MSGPACK_PP_ITERATION_FINISH_2 >= 19 +# define MSGPACK_PP_ITERATION_2 19 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 20 && MSGPACK_PP_ITERATION_FINISH_2 >= 20 +# define MSGPACK_PP_ITERATION_2 20 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 21 && MSGPACK_PP_ITERATION_FINISH_2 >= 21 +# define MSGPACK_PP_ITERATION_2 21 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 22 && MSGPACK_PP_ITERATION_FINISH_2 >= 22 +# define MSGPACK_PP_ITERATION_2 22 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 23 && MSGPACK_PP_ITERATION_FINISH_2 >= 23 +# define MSGPACK_PP_ITERATION_2 23 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 24 && MSGPACK_PP_ITERATION_FINISH_2 >= 24 +# define MSGPACK_PP_ITERATION_2 24 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 25 && MSGPACK_PP_ITERATION_FINISH_2 >= 25 +# define MSGPACK_PP_ITERATION_2 25 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 26 && MSGPACK_PP_ITERATION_FINISH_2 >= 26 +# define MSGPACK_PP_ITERATION_2 26 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 27 && MSGPACK_PP_ITERATION_FINISH_2 >= 27 +# define MSGPACK_PP_ITERATION_2 27 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 28 && MSGPACK_PP_ITERATION_FINISH_2 >= 28 +# define MSGPACK_PP_ITERATION_2 28 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 29 && MSGPACK_PP_ITERATION_FINISH_2 >= 29 +# define MSGPACK_PP_ITERATION_2 29 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 30 && MSGPACK_PP_ITERATION_FINISH_2 >= 30 +# define MSGPACK_PP_ITERATION_2 30 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 31 && MSGPACK_PP_ITERATION_FINISH_2 >= 31 +# define MSGPACK_PP_ITERATION_2 31 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 32 && MSGPACK_PP_ITERATION_FINISH_2 >= 32 +# define MSGPACK_PP_ITERATION_2 32 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 33 && MSGPACK_PP_ITERATION_FINISH_2 >= 33 +# define MSGPACK_PP_ITERATION_2 33 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 34 && MSGPACK_PP_ITERATION_FINISH_2 >= 34 +# define MSGPACK_PP_ITERATION_2 34 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 35 && MSGPACK_PP_ITERATION_FINISH_2 >= 35 +# define MSGPACK_PP_ITERATION_2 35 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 36 && MSGPACK_PP_ITERATION_FINISH_2 >= 36 +# define MSGPACK_PP_ITERATION_2 36 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 37 && MSGPACK_PP_ITERATION_FINISH_2 >= 37 +# define MSGPACK_PP_ITERATION_2 37 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 38 && MSGPACK_PP_ITERATION_FINISH_2 >= 38 +# define MSGPACK_PP_ITERATION_2 38 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 39 && MSGPACK_PP_ITERATION_FINISH_2 >= 39 +# define MSGPACK_PP_ITERATION_2 39 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 40 && MSGPACK_PP_ITERATION_FINISH_2 >= 40 +# define MSGPACK_PP_ITERATION_2 40 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 41 && MSGPACK_PP_ITERATION_FINISH_2 >= 41 +# define MSGPACK_PP_ITERATION_2 41 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 42 && MSGPACK_PP_ITERATION_FINISH_2 >= 42 +# define MSGPACK_PP_ITERATION_2 42 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 43 && MSGPACK_PP_ITERATION_FINISH_2 >= 43 +# define MSGPACK_PP_ITERATION_2 43 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 44 && MSGPACK_PP_ITERATION_FINISH_2 >= 44 +# define MSGPACK_PP_ITERATION_2 44 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 45 && MSGPACK_PP_ITERATION_FINISH_2 >= 45 +# define MSGPACK_PP_ITERATION_2 45 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 46 && MSGPACK_PP_ITERATION_FINISH_2 >= 46 +# define MSGPACK_PP_ITERATION_2 46 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 47 && MSGPACK_PP_ITERATION_FINISH_2 >= 47 +# define MSGPACK_PP_ITERATION_2 47 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 48 && MSGPACK_PP_ITERATION_FINISH_2 >= 48 +# define MSGPACK_PP_ITERATION_2 48 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 49 && MSGPACK_PP_ITERATION_FINISH_2 >= 49 +# define MSGPACK_PP_ITERATION_2 49 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 50 && MSGPACK_PP_ITERATION_FINISH_2 >= 50 +# define MSGPACK_PP_ITERATION_2 50 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 51 && MSGPACK_PP_ITERATION_FINISH_2 >= 51 +# define MSGPACK_PP_ITERATION_2 51 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 52 && MSGPACK_PP_ITERATION_FINISH_2 >= 52 +# define MSGPACK_PP_ITERATION_2 52 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 53 && MSGPACK_PP_ITERATION_FINISH_2 >= 53 +# define MSGPACK_PP_ITERATION_2 53 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 54 && MSGPACK_PP_ITERATION_FINISH_2 >= 54 +# define MSGPACK_PP_ITERATION_2 54 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 55 && MSGPACK_PP_ITERATION_FINISH_2 >= 55 +# define MSGPACK_PP_ITERATION_2 55 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 56 && MSGPACK_PP_ITERATION_FINISH_2 >= 56 +# define MSGPACK_PP_ITERATION_2 56 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 57 && MSGPACK_PP_ITERATION_FINISH_2 >= 57 +# define MSGPACK_PP_ITERATION_2 57 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 58 && MSGPACK_PP_ITERATION_FINISH_2 >= 58 +# define MSGPACK_PP_ITERATION_2 58 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 59 && MSGPACK_PP_ITERATION_FINISH_2 >= 59 +# define MSGPACK_PP_ITERATION_2 59 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 60 && MSGPACK_PP_ITERATION_FINISH_2 >= 60 +# define MSGPACK_PP_ITERATION_2 60 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 61 && MSGPACK_PP_ITERATION_FINISH_2 >= 61 +# define MSGPACK_PP_ITERATION_2 61 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 62 && MSGPACK_PP_ITERATION_FINISH_2 >= 62 +# define MSGPACK_PP_ITERATION_2 62 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 63 && MSGPACK_PP_ITERATION_FINISH_2 >= 63 +# define MSGPACK_PP_ITERATION_2 63 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 64 && MSGPACK_PP_ITERATION_FINISH_2 >= 64 +# define MSGPACK_PP_ITERATION_2 64 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 65 && MSGPACK_PP_ITERATION_FINISH_2 >= 65 +# define MSGPACK_PP_ITERATION_2 65 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 66 && MSGPACK_PP_ITERATION_FINISH_2 >= 66 +# define MSGPACK_PP_ITERATION_2 66 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 67 && MSGPACK_PP_ITERATION_FINISH_2 >= 67 +# define MSGPACK_PP_ITERATION_2 67 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 68 && MSGPACK_PP_ITERATION_FINISH_2 >= 68 +# define MSGPACK_PP_ITERATION_2 68 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 69 && MSGPACK_PP_ITERATION_FINISH_2 >= 69 +# define MSGPACK_PP_ITERATION_2 69 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 70 && MSGPACK_PP_ITERATION_FINISH_2 >= 70 +# define MSGPACK_PP_ITERATION_2 70 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 71 && MSGPACK_PP_ITERATION_FINISH_2 >= 71 +# define MSGPACK_PP_ITERATION_2 71 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 72 && MSGPACK_PP_ITERATION_FINISH_2 >= 72 +# define MSGPACK_PP_ITERATION_2 72 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 73 && MSGPACK_PP_ITERATION_FINISH_2 >= 73 +# define MSGPACK_PP_ITERATION_2 73 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 74 && MSGPACK_PP_ITERATION_FINISH_2 >= 74 +# define MSGPACK_PP_ITERATION_2 74 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 75 && MSGPACK_PP_ITERATION_FINISH_2 >= 75 +# define MSGPACK_PP_ITERATION_2 75 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 76 && MSGPACK_PP_ITERATION_FINISH_2 >= 76 +# define MSGPACK_PP_ITERATION_2 76 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 77 && MSGPACK_PP_ITERATION_FINISH_2 >= 77 +# define MSGPACK_PP_ITERATION_2 77 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 78 && MSGPACK_PP_ITERATION_FINISH_2 >= 78 +# define MSGPACK_PP_ITERATION_2 78 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 79 && MSGPACK_PP_ITERATION_FINISH_2 >= 79 +# define MSGPACK_PP_ITERATION_2 79 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 80 && MSGPACK_PP_ITERATION_FINISH_2 >= 80 +# define MSGPACK_PP_ITERATION_2 80 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 81 && MSGPACK_PP_ITERATION_FINISH_2 >= 81 +# define MSGPACK_PP_ITERATION_2 81 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 82 && MSGPACK_PP_ITERATION_FINISH_2 >= 82 +# define MSGPACK_PP_ITERATION_2 82 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 83 && MSGPACK_PP_ITERATION_FINISH_2 >= 83 +# define MSGPACK_PP_ITERATION_2 83 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 84 && MSGPACK_PP_ITERATION_FINISH_2 >= 84 +# define MSGPACK_PP_ITERATION_2 84 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 85 && MSGPACK_PP_ITERATION_FINISH_2 >= 85 +# define MSGPACK_PP_ITERATION_2 85 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 86 && MSGPACK_PP_ITERATION_FINISH_2 >= 86 +# define MSGPACK_PP_ITERATION_2 86 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 87 && MSGPACK_PP_ITERATION_FINISH_2 >= 87 +# define MSGPACK_PP_ITERATION_2 87 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 88 && MSGPACK_PP_ITERATION_FINISH_2 >= 88 +# define MSGPACK_PP_ITERATION_2 88 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 89 && MSGPACK_PP_ITERATION_FINISH_2 >= 89 +# define MSGPACK_PP_ITERATION_2 89 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 90 && MSGPACK_PP_ITERATION_FINISH_2 >= 90 +# define MSGPACK_PP_ITERATION_2 90 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 91 && MSGPACK_PP_ITERATION_FINISH_2 >= 91 +# define MSGPACK_PP_ITERATION_2 91 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 92 && MSGPACK_PP_ITERATION_FINISH_2 >= 92 +# define MSGPACK_PP_ITERATION_2 92 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 93 && MSGPACK_PP_ITERATION_FINISH_2 >= 93 +# define MSGPACK_PP_ITERATION_2 93 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 94 && MSGPACK_PP_ITERATION_FINISH_2 >= 94 +# define MSGPACK_PP_ITERATION_2 94 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 95 && MSGPACK_PP_ITERATION_FINISH_2 >= 95 +# define MSGPACK_PP_ITERATION_2 95 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 96 && MSGPACK_PP_ITERATION_FINISH_2 >= 96 +# define MSGPACK_PP_ITERATION_2 96 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 97 && MSGPACK_PP_ITERATION_FINISH_2 >= 97 +# define MSGPACK_PP_ITERATION_2 97 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 98 && MSGPACK_PP_ITERATION_FINISH_2 >= 98 +# define MSGPACK_PP_ITERATION_2 98 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 99 && MSGPACK_PP_ITERATION_FINISH_2 >= 99 +# define MSGPACK_PP_ITERATION_2 99 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 100 && MSGPACK_PP_ITERATION_FINISH_2 >= 100 +# define MSGPACK_PP_ITERATION_2 100 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 101 && MSGPACK_PP_ITERATION_FINISH_2 >= 101 +# define MSGPACK_PP_ITERATION_2 101 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 102 && MSGPACK_PP_ITERATION_FINISH_2 >= 102 +# define MSGPACK_PP_ITERATION_2 102 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 103 && MSGPACK_PP_ITERATION_FINISH_2 >= 103 +# define MSGPACK_PP_ITERATION_2 103 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 104 && MSGPACK_PP_ITERATION_FINISH_2 >= 104 +# define MSGPACK_PP_ITERATION_2 104 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 105 && MSGPACK_PP_ITERATION_FINISH_2 >= 105 +# define MSGPACK_PP_ITERATION_2 105 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 106 && MSGPACK_PP_ITERATION_FINISH_2 >= 106 +# define MSGPACK_PP_ITERATION_2 106 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 107 && MSGPACK_PP_ITERATION_FINISH_2 >= 107 +# define MSGPACK_PP_ITERATION_2 107 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 108 && MSGPACK_PP_ITERATION_FINISH_2 >= 108 +# define MSGPACK_PP_ITERATION_2 108 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 109 && MSGPACK_PP_ITERATION_FINISH_2 >= 109 +# define MSGPACK_PP_ITERATION_2 109 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 110 && MSGPACK_PP_ITERATION_FINISH_2 >= 110 +# define MSGPACK_PP_ITERATION_2 110 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 111 && MSGPACK_PP_ITERATION_FINISH_2 >= 111 +# define MSGPACK_PP_ITERATION_2 111 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 112 && MSGPACK_PP_ITERATION_FINISH_2 >= 112 +# define MSGPACK_PP_ITERATION_2 112 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 113 && MSGPACK_PP_ITERATION_FINISH_2 >= 113 +# define MSGPACK_PP_ITERATION_2 113 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 114 && MSGPACK_PP_ITERATION_FINISH_2 >= 114 +# define MSGPACK_PP_ITERATION_2 114 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 115 && MSGPACK_PP_ITERATION_FINISH_2 >= 115 +# define MSGPACK_PP_ITERATION_2 115 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 116 && MSGPACK_PP_ITERATION_FINISH_2 >= 116 +# define MSGPACK_PP_ITERATION_2 116 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 117 && MSGPACK_PP_ITERATION_FINISH_2 >= 117 +# define MSGPACK_PP_ITERATION_2 117 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 118 && MSGPACK_PP_ITERATION_FINISH_2 >= 118 +# define MSGPACK_PP_ITERATION_2 118 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 119 && MSGPACK_PP_ITERATION_FINISH_2 >= 119 +# define MSGPACK_PP_ITERATION_2 119 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 120 && MSGPACK_PP_ITERATION_FINISH_2 >= 120 +# define MSGPACK_PP_ITERATION_2 120 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 121 && MSGPACK_PP_ITERATION_FINISH_2 >= 121 +# define MSGPACK_PP_ITERATION_2 121 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 122 && MSGPACK_PP_ITERATION_FINISH_2 >= 122 +# define MSGPACK_PP_ITERATION_2 122 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 123 && MSGPACK_PP_ITERATION_FINISH_2 >= 123 +# define MSGPACK_PP_ITERATION_2 123 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 124 && MSGPACK_PP_ITERATION_FINISH_2 >= 124 +# define MSGPACK_PP_ITERATION_2 124 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 125 && MSGPACK_PP_ITERATION_FINISH_2 >= 125 +# define MSGPACK_PP_ITERATION_2 125 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 126 && MSGPACK_PP_ITERATION_FINISH_2 >= 126 +# define MSGPACK_PP_ITERATION_2 126 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 127 && MSGPACK_PP_ITERATION_FINISH_2 >= 127 +# define MSGPACK_PP_ITERATION_2 127 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 128 && MSGPACK_PP_ITERATION_FINISH_2 >= 128 +# define MSGPACK_PP_ITERATION_2 128 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 129 && MSGPACK_PP_ITERATION_FINISH_2 >= 129 +# define MSGPACK_PP_ITERATION_2 129 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 130 && MSGPACK_PP_ITERATION_FINISH_2 >= 130 +# define MSGPACK_PP_ITERATION_2 130 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 131 && MSGPACK_PP_ITERATION_FINISH_2 >= 131 +# define MSGPACK_PP_ITERATION_2 131 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 132 && MSGPACK_PP_ITERATION_FINISH_2 >= 132 +# define MSGPACK_PP_ITERATION_2 132 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 133 && MSGPACK_PP_ITERATION_FINISH_2 >= 133 +# define MSGPACK_PP_ITERATION_2 133 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 134 && MSGPACK_PP_ITERATION_FINISH_2 >= 134 +# define MSGPACK_PP_ITERATION_2 134 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 135 && MSGPACK_PP_ITERATION_FINISH_2 >= 135 +# define MSGPACK_PP_ITERATION_2 135 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 136 && MSGPACK_PP_ITERATION_FINISH_2 >= 136 +# define MSGPACK_PP_ITERATION_2 136 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 137 && MSGPACK_PP_ITERATION_FINISH_2 >= 137 +# define MSGPACK_PP_ITERATION_2 137 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 138 && MSGPACK_PP_ITERATION_FINISH_2 >= 138 +# define MSGPACK_PP_ITERATION_2 138 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 139 && MSGPACK_PP_ITERATION_FINISH_2 >= 139 +# define MSGPACK_PP_ITERATION_2 139 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 140 && MSGPACK_PP_ITERATION_FINISH_2 >= 140 +# define MSGPACK_PP_ITERATION_2 140 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 141 && MSGPACK_PP_ITERATION_FINISH_2 >= 141 +# define MSGPACK_PP_ITERATION_2 141 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 142 && MSGPACK_PP_ITERATION_FINISH_2 >= 142 +# define MSGPACK_PP_ITERATION_2 142 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 143 && MSGPACK_PP_ITERATION_FINISH_2 >= 143 +# define MSGPACK_PP_ITERATION_2 143 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 144 && MSGPACK_PP_ITERATION_FINISH_2 >= 144 +# define MSGPACK_PP_ITERATION_2 144 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 145 && MSGPACK_PP_ITERATION_FINISH_2 >= 145 +# define MSGPACK_PP_ITERATION_2 145 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 146 && MSGPACK_PP_ITERATION_FINISH_2 >= 146 +# define MSGPACK_PP_ITERATION_2 146 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 147 && MSGPACK_PP_ITERATION_FINISH_2 >= 147 +# define MSGPACK_PP_ITERATION_2 147 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 148 && MSGPACK_PP_ITERATION_FINISH_2 >= 148 +# define MSGPACK_PP_ITERATION_2 148 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 149 && MSGPACK_PP_ITERATION_FINISH_2 >= 149 +# define MSGPACK_PP_ITERATION_2 149 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 150 && MSGPACK_PP_ITERATION_FINISH_2 >= 150 +# define MSGPACK_PP_ITERATION_2 150 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 151 && MSGPACK_PP_ITERATION_FINISH_2 >= 151 +# define MSGPACK_PP_ITERATION_2 151 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 152 && MSGPACK_PP_ITERATION_FINISH_2 >= 152 +# define MSGPACK_PP_ITERATION_2 152 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 153 && MSGPACK_PP_ITERATION_FINISH_2 >= 153 +# define MSGPACK_PP_ITERATION_2 153 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 154 && MSGPACK_PP_ITERATION_FINISH_2 >= 154 +# define MSGPACK_PP_ITERATION_2 154 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 155 && MSGPACK_PP_ITERATION_FINISH_2 >= 155 +# define MSGPACK_PP_ITERATION_2 155 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 156 && MSGPACK_PP_ITERATION_FINISH_2 >= 156 +# define MSGPACK_PP_ITERATION_2 156 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 157 && MSGPACK_PP_ITERATION_FINISH_2 >= 157 +# define MSGPACK_PP_ITERATION_2 157 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 158 && MSGPACK_PP_ITERATION_FINISH_2 >= 158 +# define MSGPACK_PP_ITERATION_2 158 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 159 && MSGPACK_PP_ITERATION_FINISH_2 >= 159 +# define MSGPACK_PP_ITERATION_2 159 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 160 && MSGPACK_PP_ITERATION_FINISH_2 >= 160 +# define MSGPACK_PP_ITERATION_2 160 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 161 && MSGPACK_PP_ITERATION_FINISH_2 >= 161 +# define MSGPACK_PP_ITERATION_2 161 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 162 && MSGPACK_PP_ITERATION_FINISH_2 >= 162 +# define MSGPACK_PP_ITERATION_2 162 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 163 && MSGPACK_PP_ITERATION_FINISH_2 >= 163 +# define MSGPACK_PP_ITERATION_2 163 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 164 && MSGPACK_PP_ITERATION_FINISH_2 >= 164 +# define MSGPACK_PP_ITERATION_2 164 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 165 && MSGPACK_PP_ITERATION_FINISH_2 >= 165 +# define MSGPACK_PP_ITERATION_2 165 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 166 && MSGPACK_PP_ITERATION_FINISH_2 >= 166 +# define MSGPACK_PP_ITERATION_2 166 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 167 && MSGPACK_PP_ITERATION_FINISH_2 >= 167 +# define MSGPACK_PP_ITERATION_2 167 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 168 && MSGPACK_PP_ITERATION_FINISH_2 >= 168 +# define MSGPACK_PP_ITERATION_2 168 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 169 && MSGPACK_PP_ITERATION_FINISH_2 >= 169 +# define MSGPACK_PP_ITERATION_2 169 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 170 && MSGPACK_PP_ITERATION_FINISH_2 >= 170 +# define MSGPACK_PP_ITERATION_2 170 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 171 && MSGPACK_PP_ITERATION_FINISH_2 >= 171 +# define MSGPACK_PP_ITERATION_2 171 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 172 && MSGPACK_PP_ITERATION_FINISH_2 >= 172 +# define MSGPACK_PP_ITERATION_2 172 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 173 && MSGPACK_PP_ITERATION_FINISH_2 >= 173 +# define MSGPACK_PP_ITERATION_2 173 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 174 && MSGPACK_PP_ITERATION_FINISH_2 >= 174 +# define MSGPACK_PP_ITERATION_2 174 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 175 && MSGPACK_PP_ITERATION_FINISH_2 >= 175 +# define MSGPACK_PP_ITERATION_2 175 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 176 && MSGPACK_PP_ITERATION_FINISH_2 >= 176 +# define MSGPACK_PP_ITERATION_2 176 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 177 && MSGPACK_PP_ITERATION_FINISH_2 >= 177 +# define MSGPACK_PP_ITERATION_2 177 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 178 && MSGPACK_PP_ITERATION_FINISH_2 >= 178 +# define MSGPACK_PP_ITERATION_2 178 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 179 && MSGPACK_PP_ITERATION_FINISH_2 >= 179 +# define MSGPACK_PP_ITERATION_2 179 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 180 && MSGPACK_PP_ITERATION_FINISH_2 >= 180 +# define MSGPACK_PP_ITERATION_2 180 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 181 && MSGPACK_PP_ITERATION_FINISH_2 >= 181 +# define MSGPACK_PP_ITERATION_2 181 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 182 && MSGPACK_PP_ITERATION_FINISH_2 >= 182 +# define MSGPACK_PP_ITERATION_2 182 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 183 && MSGPACK_PP_ITERATION_FINISH_2 >= 183 +# define MSGPACK_PP_ITERATION_2 183 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 184 && MSGPACK_PP_ITERATION_FINISH_2 >= 184 +# define MSGPACK_PP_ITERATION_2 184 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 185 && MSGPACK_PP_ITERATION_FINISH_2 >= 185 +# define MSGPACK_PP_ITERATION_2 185 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 186 && MSGPACK_PP_ITERATION_FINISH_2 >= 186 +# define MSGPACK_PP_ITERATION_2 186 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 187 && MSGPACK_PP_ITERATION_FINISH_2 >= 187 +# define MSGPACK_PP_ITERATION_2 187 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 188 && MSGPACK_PP_ITERATION_FINISH_2 >= 188 +# define MSGPACK_PP_ITERATION_2 188 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 189 && MSGPACK_PP_ITERATION_FINISH_2 >= 189 +# define MSGPACK_PP_ITERATION_2 189 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 190 && MSGPACK_PP_ITERATION_FINISH_2 >= 190 +# define MSGPACK_PP_ITERATION_2 190 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 191 && MSGPACK_PP_ITERATION_FINISH_2 >= 191 +# define MSGPACK_PP_ITERATION_2 191 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 192 && MSGPACK_PP_ITERATION_FINISH_2 >= 192 +# define MSGPACK_PP_ITERATION_2 192 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 193 && MSGPACK_PP_ITERATION_FINISH_2 >= 193 +# define MSGPACK_PP_ITERATION_2 193 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 194 && MSGPACK_PP_ITERATION_FINISH_2 >= 194 +# define MSGPACK_PP_ITERATION_2 194 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 195 && MSGPACK_PP_ITERATION_FINISH_2 >= 195 +# define MSGPACK_PP_ITERATION_2 195 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 196 && MSGPACK_PP_ITERATION_FINISH_2 >= 196 +# define MSGPACK_PP_ITERATION_2 196 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 197 && MSGPACK_PP_ITERATION_FINISH_2 >= 197 +# define MSGPACK_PP_ITERATION_2 197 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 198 && MSGPACK_PP_ITERATION_FINISH_2 >= 198 +# define MSGPACK_PP_ITERATION_2 198 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 199 && MSGPACK_PP_ITERATION_FINISH_2 >= 199 +# define MSGPACK_PP_ITERATION_2 199 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 200 && MSGPACK_PP_ITERATION_FINISH_2 >= 200 +# define MSGPACK_PP_ITERATION_2 200 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 201 && MSGPACK_PP_ITERATION_FINISH_2 >= 201 +# define MSGPACK_PP_ITERATION_2 201 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 202 && MSGPACK_PP_ITERATION_FINISH_2 >= 202 +# define MSGPACK_PP_ITERATION_2 202 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 203 && MSGPACK_PP_ITERATION_FINISH_2 >= 203 +# define MSGPACK_PP_ITERATION_2 203 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 204 && MSGPACK_PP_ITERATION_FINISH_2 >= 204 +# define MSGPACK_PP_ITERATION_2 204 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 205 && MSGPACK_PP_ITERATION_FINISH_2 >= 205 +# define MSGPACK_PP_ITERATION_2 205 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 206 && MSGPACK_PP_ITERATION_FINISH_2 >= 206 +# define MSGPACK_PP_ITERATION_2 206 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 207 && MSGPACK_PP_ITERATION_FINISH_2 >= 207 +# define MSGPACK_PP_ITERATION_2 207 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 208 && MSGPACK_PP_ITERATION_FINISH_2 >= 208 +# define MSGPACK_PP_ITERATION_2 208 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 209 && MSGPACK_PP_ITERATION_FINISH_2 >= 209 +# define MSGPACK_PP_ITERATION_2 209 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 210 && MSGPACK_PP_ITERATION_FINISH_2 >= 210 +# define MSGPACK_PP_ITERATION_2 210 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 211 && MSGPACK_PP_ITERATION_FINISH_2 >= 211 +# define MSGPACK_PP_ITERATION_2 211 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 212 && MSGPACK_PP_ITERATION_FINISH_2 >= 212 +# define MSGPACK_PP_ITERATION_2 212 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 213 && MSGPACK_PP_ITERATION_FINISH_2 >= 213 +# define MSGPACK_PP_ITERATION_2 213 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 214 && MSGPACK_PP_ITERATION_FINISH_2 >= 214 +# define MSGPACK_PP_ITERATION_2 214 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 215 && MSGPACK_PP_ITERATION_FINISH_2 >= 215 +# define MSGPACK_PP_ITERATION_2 215 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 216 && MSGPACK_PP_ITERATION_FINISH_2 >= 216 +# define MSGPACK_PP_ITERATION_2 216 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 217 && MSGPACK_PP_ITERATION_FINISH_2 >= 217 +# define MSGPACK_PP_ITERATION_2 217 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 218 && MSGPACK_PP_ITERATION_FINISH_2 >= 218 +# define MSGPACK_PP_ITERATION_2 218 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 219 && MSGPACK_PP_ITERATION_FINISH_2 >= 219 +# define MSGPACK_PP_ITERATION_2 219 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 220 && MSGPACK_PP_ITERATION_FINISH_2 >= 220 +# define MSGPACK_PP_ITERATION_2 220 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 221 && MSGPACK_PP_ITERATION_FINISH_2 >= 221 +# define MSGPACK_PP_ITERATION_2 221 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 222 && MSGPACK_PP_ITERATION_FINISH_2 >= 222 +# define MSGPACK_PP_ITERATION_2 222 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 223 && MSGPACK_PP_ITERATION_FINISH_2 >= 223 +# define MSGPACK_PP_ITERATION_2 223 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 224 && MSGPACK_PP_ITERATION_FINISH_2 >= 224 +# define MSGPACK_PP_ITERATION_2 224 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 225 && MSGPACK_PP_ITERATION_FINISH_2 >= 225 +# define MSGPACK_PP_ITERATION_2 225 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 226 && MSGPACK_PP_ITERATION_FINISH_2 >= 226 +# define MSGPACK_PP_ITERATION_2 226 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 227 && MSGPACK_PP_ITERATION_FINISH_2 >= 227 +# define MSGPACK_PP_ITERATION_2 227 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 228 && MSGPACK_PP_ITERATION_FINISH_2 >= 228 +# define MSGPACK_PP_ITERATION_2 228 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 229 && MSGPACK_PP_ITERATION_FINISH_2 >= 229 +# define MSGPACK_PP_ITERATION_2 229 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 230 && MSGPACK_PP_ITERATION_FINISH_2 >= 230 +# define MSGPACK_PP_ITERATION_2 230 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 231 && MSGPACK_PP_ITERATION_FINISH_2 >= 231 +# define MSGPACK_PP_ITERATION_2 231 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 232 && MSGPACK_PP_ITERATION_FINISH_2 >= 232 +# define MSGPACK_PP_ITERATION_2 232 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 233 && MSGPACK_PP_ITERATION_FINISH_2 >= 233 +# define MSGPACK_PP_ITERATION_2 233 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 234 && MSGPACK_PP_ITERATION_FINISH_2 >= 234 +# define MSGPACK_PP_ITERATION_2 234 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 235 && MSGPACK_PP_ITERATION_FINISH_2 >= 235 +# define MSGPACK_PP_ITERATION_2 235 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 236 && MSGPACK_PP_ITERATION_FINISH_2 >= 236 +# define MSGPACK_PP_ITERATION_2 236 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 237 && MSGPACK_PP_ITERATION_FINISH_2 >= 237 +# define MSGPACK_PP_ITERATION_2 237 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 238 && MSGPACK_PP_ITERATION_FINISH_2 >= 238 +# define MSGPACK_PP_ITERATION_2 238 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 239 && MSGPACK_PP_ITERATION_FINISH_2 >= 239 +# define MSGPACK_PP_ITERATION_2 239 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 240 && MSGPACK_PP_ITERATION_FINISH_2 >= 240 +# define MSGPACK_PP_ITERATION_2 240 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 241 && MSGPACK_PP_ITERATION_FINISH_2 >= 241 +# define MSGPACK_PP_ITERATION_2 241 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 242 && MSGPACK_PP_ITERATION_FINISH_2 >= 242 +# define MSGPACK_PP_ITERATION_2 242 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 243 && MSGPACK_PP_ITERATION_FINISH_2 >= 243 +# define MSGPACK_PP_ITERATION_2 243 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 244 && MSGPACK_PP_ITERATION_FINISH_2 >= 244 +# define MSGPACK_PP_ITERATION_2 244 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 245 && MSGPACK_PP_ITERATION_FINISH_2 >= 245 +# define MSGPACK_PP_ITERATION_2 245 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 246 && MSGPACK_PP_ITERATION_FINISH_2 >= 246 +# define MSGPACK_PP_ITERATION_2 246 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 247 && MSGPACK_PP_ITERATION_FINISH_2 >= 247 +# define MSGPACK_PP_ITERATION_2 247 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 248 && MSGPACK_PP_ITERATION_FINISH_2 >= 248 +# define MSGPACK_PP_ITERATION_2 248 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 249 && MSGPACK_PP_ITERATION_FINISH_2 >= 249 +# define MSGPACK_PP_ITERATION_2 249 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 250 && MSGPACK_PP_ITERATION_FINISH_2 >= 250 +# define MSGPACK_PP_ITERATION_2 250 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 251 && MSGPACK_PP_ITERATION_FINISH_2 >= 251 +# define MSGPACK_PP_ITERATION_2 251 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 252 && MSGPACK_PP_ITERATION_FINISH_2 >= 252 +# define MSGPACK_PP_ITERATION_2 252 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 253 && MSGPACK_PP_ITERATION_FINISH_2 >= 253 +# define MSGPACK_PP_ITERATION_2 253 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 254 && MSGPACK_PP_ITERATION_FINISH_2 >= 254 +# define MSGPACK_PP_ITERATION_2 254 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 255 && MSGPACK_PP_ITERATION_FINISH_2 >= 255 +# define MSGPACK_PP_ITERATION_2 255 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_START_2 <= 256 && MSGPACK_PP_ITERATION_FINISH_2 >= 256 +# define MSGPACK_PP_ITERATION_2 256 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# endif +# +# undef MSGPACK_PP_ITERATION_DEPTH +# define MSGPACK_PP_ITERATION_DEPTH() 1 +# +# undef MSGPACK_PP_ITERATION_START_2 +# undef MSGPACK_PP_ITERATION_FINISH_2 +# undef MSGPACK_PP_FILENAME_2 +# +# undef MSGPACK_PP_ITERATION_FLAGS_2 +# undef MSGPACK_PP_ITERATION_PARAMS_2 diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward3.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward3.hpp new file mode 100644 index 000000000000..9d03785d1d0b --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward3.hpp @@ -0,0 +1,1338 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# if defined(MSGPACK_PP_ITERATION_LIMITS) +# if !defined(MSGPACK_PP_FILENAME_3) +# error MSGPACK_PP_ERROR: depth #3 filename is not defined +# endif +# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_ITERATION_LIMITS) +# include +# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_ITERATION_LIMITS) +# include +# define MSGPACK_PP_ITERATION_FLAGS_3() 0 +# undef MSGPACK_PP_ITERATION_LIMITS +# elif defined(MSGPACK_PP_ITERATION_PARAMS_3) +# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(0, MSGPACK_PP_ITERATION_PARAMS_3) +# include +# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(1, MSGPACK_PP_ITERATION_PARAMS_3) +# include +# define MSGPACK_PP_FILENAME_3 MSGPACK_PP_ARRAY_ELEM(2, MSGPACK_PP_ITERATION_PARAMS_3) +# if MSGPACK_PP_ARRAY_SIZE(MSGPACK_PP_ITERATION_PARAMS_3) >= 4 +# define MSGPACK_PP_ITERATION_FLAGS_3() MSGPACK_PP_ARRAY_ELEM(3, MSGPACK_PP_ITERATION_PARAMS_3) +# else +# define MSGPACK_PP_ITERATION_FLAGS_3() 0 +# endif +# else +# error MSGPACK_PP_ERROR: depth #3 iteration boundaries or filename not defined +# endif +# +# undef MSGPACK_PP_ITERATION_DEPTH +# define MSGPACK_PP_ITERATION_DEPTH() 3 +# +# if (MSGPACK_PP_ITERATION_START_3) > (MSGPACK_PP_ITERATION_FINISH_3) +# include +# else +# if MSGPACK_PP_ITERATION_START_3 <= 0 && MSGPACK_PP_ITERATION_FINISH_3 >= 0 +# define MSGPACK_PP_ITERATION_3 0 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 1 && MSGPACK_PP_ITERATION_FINISH_3 >= 1 +# define MSGPACK_PP_ITERATION_3 1 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 2 && MSGPACK_PP_ITERATION_FINISH_3 >= 2 +# define MSGPACK_PP_ITERATION_3 2 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 3 && MSGPACK_PP_ITERATION_FINISH_3 >= 3 +# define MSGPACK_PP_ITERATION_3 3 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 4 && MSGPACK_PP_ITERATION_FINISH_3 >= 4 +# define MSGPACK_PP_ITERATION_3 4 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 5 && MSGPACK_PP_ITERATION_FINISH_3 >= 5 +# define MSGPACK_PP_ITERATION_3 5 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 6 && MSGPACK_PP_ITERATION_FINISH_3 >= 6 +# define MSGPACK_PP_ITERATION_3 6 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 7 && MSGPACK_PP_ITERATION_FINISH_3 >= 7 +# define MSGPACK_PP_ITERATION_3 7 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 8 && MSGPACK_PP_ITERATION_FINISH_3 >= 8 +# define MSGPACK_PP_ITERATION_3 8 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 9 && MSGPACK_PP_ITERATION_FINISH_3 >= 9 +# define MSGPACK_PP_ITERATION_3 9 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 10 && MSGPACK_PP_ITERATION_FINISH_3 >= 10 +# define MSGPACK_PP_ITERATION_3 10 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 11 && MSGPACK_PP_ITERATION_FINISH_3 >= 11 +# define MSGPACK_PP_ITERATION_3 11 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 12 && MSGPACK_PP_ITERATION_FINISH_3 >= 12 +# define MSGPACK_PP_ITERATION_3 12 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 13 && MSGPACK_PP_ITERATION_FINISH_3 >= 13 +# define MSGPACK_PP_ITERATION_3 13 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 14 && MSGPACK_PP_ITERATION_FINISH_3 >= 14 +# define MSGPACK_PP_ITERATION_3 14 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 15 && MSGPACK_PP_ITERATION_FINISH_3 >= 15 +# define MSGPACK_PP_ITERATION_3 15 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 16 && MSGPACK_PP_ITERATION_FINISH_3 >= 16 +# define MSGPACK_PP_ITERATION_3 16 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 17 && MSGPACK_PP_ITERATION_FINISH_3 >= 17 +# define MSGPACK_PP_ITERATION_3 17 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 18 && MSGPACK_PP_ITERATION_FINISH_3 >= 18 +# define MSGPACK_PP_ITERATION_3 18 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 19 && MSGPACK_PP_ITERATION_FINISH_3 >= 19 +# define MSGPACK_PP_ITERATION_3 19 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 20 && MSGPACK_PP_ITERATION_FINISH_3 >= 20 +# define MSGPACK_PP_ITERATION_3 20 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 21 && MSGPACK_PP_ITERATION_FINISH_3 >= 21 +# define MSGPACK_PP_ITERATION_3 21 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 22 && MSGPACK_PP_ITERATION_FINISH_3 >= 22 +# define MSGPACK_PP_ITERATION_3 22 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 23 && MSGPACK_PP_ITERATION_FINISH_3 >= 23 +# define MSGPACK_PP_ITERATION_3 23 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 24 && MSGPACK_PP_ITERATION_FINISH_3 >= 24 +# define MSGPACK_PP_ITERATION_3 24 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 25 && MSGPACK_PP_ITERATION_FINISH_3 >= 25 +# define MSGPACK_PP_ITERATION_3 25 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 26 && MSGPACK_PP_ITERATION_FINISH_3 >= 26 +# define MSGPACK_PP_ITERATION_3 26 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 27 && MSGPACK_PP_ITERATION_FINISH_3 >= 27 +# define MSGPACK_PP_ITERATION_3 27 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 28 && MSGPACK_PP_ITERATION_FINISH_3 >= 28 +# define MSGPACK_PP_ITERATION_3 28 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 29 && MSGPACK_PP_ITERATION_FINISH_3 >= 29 +# define MSGPACK_PP_ITERATION_3 29 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 30 && MSGPACK_PP_ITERATION_FINISH_3 >= 30 +# define MSGPACK_PP_ITERATION_3 30 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 31 && MSGPACK_PP_ITERATION_FINISH_3 >= 31 +# define MSGPACK_PP_ITERATION_3 31 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 32 && MSGPACK_PP_ITERATION_FINISH_3 >= 32 +# define MSGPACK_PP_ITERATION_3 32 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 33 && MSGPACK_PP_ITERATION_FINISH_3 >= 33 +# define MSGPACK_PP_ITERATION_3 33 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 34 && MSGPACK_PP_ITERATION_FINISH_3 >= 34 +# define MSGPACK_PP_ITERATION_3 34 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 35 && MSGPACK_PP_ITERATION_FINISH_3 >= 35 +# define MSGPACK_PP_ITERATION_3 35 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 36 && MSGPACK_PP_ITERATION_FINISH_3 >= 36 +# define MSGPACK_PP_ITERATION_3 36 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 37 && MSGPACK_PP_ITERATION_FINISH_3 >= 37 +# define MSGPACK_PP_ITERATION_3 37 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 38 && MSGPACK_PP_ITERATION_FINISH_3 >= 38 +# define MSGPACK_PP_ITERATION_3 38 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 39 && MSGPACK_PP_ITERATION_FINISH_3 >= 39 +# define MSGPACK_PP_ITERATION_3 39 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 40 && MSGPACK_PP_ITERATION_FINISH_3 >= 40 +# define MSGPACK_PP_ITERATION_3 40 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 41 && MSGPACK_PP_ITERATION_FINISH_3 >= 41 +# define MSGPACK_PP_ITERATION_3 41 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 42 && MSGPACK_PP_ITERATION_FINISH_3 >= 42 +# define MSGPACK_PP_ITERATION_3 42 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 43 && MSGPACK_PP_ITERATION_FINISH_3 >= 43 +# define MSGPACK_PP_ITERATION_3 43 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 44 && MSGPACK_PP_ITERATION_FINISH_3 >= 44 +# define MSGPACK_PP_ITERATION_3 44 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 45 && MSGPACK_PP_ITERATION_FINISH_3 >= 45 +# define MSGPACK_PP_ITERATION_3 45 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 46 && MSGPACK_PP_ITERATION_FINISH_3 >= 46 +# define MSGPACK_PP_ITERATION_3 46 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 47 && MSGPACK_PP_ITERATION_FINISH_3 >= 47 +# define MSGPACK_PP_ITERATION_3 47 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 48 && MSGPACK_PP_ITERATION_FINISH_3 >= 48 +# define MSGPACK_PP_ITERATION_3 48 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 49 && MSGPACK_PP_ITERATION_FINISH_3 >= 49 +# define MSGPACK_PP_ITERATION_3 49 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 50 && MSGPACK_PP_ITERATION_FINISH_3 >= 50 +# define MSGPACK_PP_ITERATION_3 50 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 51 && MSGPACK_PP_ITERATION_FINISH_3 >= 51 +# define MSGPACK_PP_ITERATION_3 51 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 52 && MSGPACK_PP_ITERATION_FINISH_3 >= 52 +# define MSGPACK_PP_ITERATION_3 52 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 53 && MSGPACK_PP_ITERATION_FINISH_3 >= 53 +# define MSGPACK_PP_ITERATION_3 53 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 54 && MSGPACK_PP_ITERATION_FINISH_3 >= 54 +# define MSGPACK_PP_ITERATION_3 54 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 55 && MSGPACK_PP_ITERATION_FINISH_3 >= 55 +# define MSGPACK_PP_ITERATION_3 55 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 56 && MSGPACK_PP_ITERATION_FINISH_3 >= 56 +# define MSGPACK_PP_ITERATION_3 56 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 57 && MSGPACK_PP_ITERATION_FINISH_3 >= 57 +# define MSGPACK_PP_ITERATION_3 57 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 58 && MSGPACK_PP_ITERATION_FINISH_3 >= 58 +# define MSGPACK_PP_ITERATION_3 58 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 59 && MSGPACK_PP_ITERATION_FINISH_3 >= 59 +# define MSGPACK_PP_ITERATION_3 59 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 60 && MSGPACK_PP_ITERATION_FINISH_3 >= 60 +# define MSGPACK_PP_ITERATION_3 60 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 61 && MSGPACK_PP_ITERATION_FINISH_3 >= 61 +# define MSGPACK_PP_ITERATION_3 61 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 62 && MSGPACK_PP_ITERATION_FINISH_3 >= 62 +# define MSGPACK_PP_ITERATION_3 62 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 63 && MSGPACK_PP_ITERATION_FINISH_3 >= 63 +# define MSGPACK_PP_ITERATION_3 63 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 64 && MSGPACK_PP_ITERATION_FINISH_3 >= 64 +# define MSGPACK_PP_ITERATION_3 64 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 65 && MSGPACK_PP_ITERATION_FINISH_3 >= 65 +# define MSGPACK_PP_ITERATION_3 65 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 66 && MSGPACK_PP_ITERATION_FINISH_3 >= 66 +# define MSGPACK_PP_ITERATION_3 66 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 67 && MSGPACK_PP_ITERATION_FINISH_3 >= 67 +# define MSGPACK_PP_ITERATION_3 67 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 68 && MSGPACK_PP_ITERATION_FINISH_3 >= 68 +# define MSGPACK_PP_ITERATION_3 68 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 69 && MSGPACK_PP_ITERATION_FINISH_3 >= 69 +# define MSGPACK_PP_ITERATION_3 69 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 70 && MSGPACK_PP_ITERATION_FINISH_3 >= 70 +# define MSGPACK_PP_ITERATION_3 70 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 71 && MSGPACK_PP_ITERATION_FINISH_3 >= 71 +# define MSGPACK_PP_ITERATION_3 71 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 72 && MSGPACK_PP_ITERATION_FINISH_3 >= 72 +# define MSGPACK_PP_ITERATION_3 72 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 73 && MSGPACK_PP_ITERATION_FINISH_3 >= 73 +# define MSGPACK_PP_ITERATION_3 73 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 74 && MSGPACK_PP_ITERATION_FINISH_3 >= 74 +# define MSGPACK_PP_ITERATION_3 74 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 75 && MSGPACK_PP_ITERATION_FINISH_3 >= 75 +# define MSGPACK_PP_ITERATION_3 75 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 76 && MSGPACK_PP_ITERATION_FINISH_3 >= 76 +# define MSGPACK_PP_ITERATION_3 76 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 77 && MSGPACK_PP_ITERATION_FINISH_3 >= 77 +# define MSGPACK_PP_ITERATION_3 77 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 78 && MSGPACK_PP_ITERATION_FINISH_3 >= 78 +# define MSGPACK_PP_ITERATION_3 78 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 79 && MSGPACK_PP_ITERATION_FINISH_3 >= 79 +# define MSGPACK_PP_ITERATION_3 79 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 80 && MSGPACK_PP_ITERATION_FINISH_3 >= 80 +# define MSGPACK_PP_ITERATION_3 80 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 81 && MSGPACK_PP_ITERATION_FINISH_3 >= 81 +# define MSGPACK_PP_ITERATION_3 81 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 82 && MSGPACK_PP_ITERATION_FINISH_3 >= 82 +# define MSGPACK_PP_ITERATION_3 82 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 83 && MSGPACK_PP_ITERATION_FINISH_3 >= 83 +# define MSGPACK_PP_ITERATION_3 83 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 84 && MSGPACK_PP_ITERATION_FINISH_3 >= 84 +# define MSGPACK_PP_ITERATION_3 84 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 85 && MSGPACK_PP_ITERATION_FINISH_3 >= 85 +# define MSGPACK_PP_ITERATION_3 85 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 86 && MSGPACK_PP_ITERATION_FINISH_3 >= 86 +# define MSGPACK_PP_ITERATION_3 86 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 87 && MSGPACK_PP_ITERATION_FINISH_3 >= 87 +# define MSGPACK_PP_ITERATION_3 87 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 88 && MSGPACK_PP_ITERATION_FINISH_3 >= 88 +# define MSGPACK_PP_ITERATION_3 88 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 89 && MSGPACK_PP_ITERATION_FINISH_3 >= 89 +# define MSGPACK_PP_ITERATION_3 89 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 90 && MSGPACK_PP_ITERATION_FINISH_3 >= 90 +# define MSGPACK_PP_ITERATION_3 90 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 91 && MSGPACK_PP_ITERATION_FINISH_3 >= 91 +# define MSGPACK_PP_ITERATION_3 91 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 92 && MSGPACK_PP_ITERATION_FINISH_3 >= 92 +# define MSGPACK_PP_ITERATION_3 92 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 93 && MSGPACK_PP_ITERATION_FINISH_3 >= 93 +# define MSGPACK_PP_ITERATION_3 93 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 94 && MSGPACK_PP_ITERATION_FINISH_3 >= 94 +# define MSGPACK_PP_ITERATION_3 94 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 95 && MSGPACK_PP_ITERATION_FINISH_3 >= 95 +# define MSGPACK_PP_ITERATION_3 95 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 96 && MSGPACK_PP_ITERATION_FINISH_3 >= 96 +# define MSGPACK_PP_ITERATION_3 96 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 97 && MSGPACK_PP_ITERATION_FINISH_3 >= 97 +# define MSGPACK_PP_ITERATION_3 97 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 98 && MSGPACK_PP_ITERATION_FINISH_3 >= 98 +# define MSGPACK_PP_ITERATION_3 98 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 99 && MSGPACK_PP_ITERATION_FINISH_3 >= 99 +# define MSGPACK_PP_ITERATION_3 99 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 100 && MSGPACK_PP_ITERATION_FINISH_3 >= 100 +# define MSGPACK_PP_ITERATION_3 100 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 101 && MSGPACK_PP_ITERATION_FINISH_3 >= 101 +# define MSGPACK_PP_ITERATION_3 101 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 102 && MSGPACK_PP_ITERATION_FINISH_3 >= 102 +# define MSGPACK_PP_ITERATION_3 102 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 103 && MSGPACK_PP_ITERATION_FINISH_3 >= 103 +# define MSGPACK_PP_ITERATION_3 103 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 104 && MSGPACK_PP_ITERATION_FINISH_3 >= 104 +# define MSGPACK_PP_ITERATION_3 104 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 105 && MSGPACK_PP_ITERATION_FINISH_3 >= 105 +# define MSGPACK_PP_ITERATION_3 105 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 106 && MSGPACK_PP_ITERATION_FINISH_3 >= 106 +# define MSGPACK_PP_ITERATION_3 106 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 107 && MSGPACK_PP_ITERATION_FINISH_3 >= 107 +# define MSGPACK_PP_ITERATION_3 107 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 108 && MSGPACK_PP_ITERATION_FINISH_3 >= 108 +# define MSGPACK_PP_ITERATION_3 108 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 109 && MSGPACK_PP_ITERATION_FINISH_3 >= 109 +# define MSGPACK_PP_ITERATION_3 109 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 110 && MSGPACK_PP_ITERATION_FINISH_3 >= 110 +# define MSGPACK_PP_ITERATION_3 110 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 111 && MSGPACK_PP_ITERATION_FINISH_3 >= 111 +# define MSGPACK_PP_ITERATION_3 111 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 112 && MSGPACK_PP_ITERATION_FINISH_3 >= 112 +# define MSGPACK_PP_ITERATION_3 112 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 113 && MSGPACK_PP_ITERATION_FINISH_3 >= 113 +# define MSGPACK_PP_ITERATION_3 113 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 114 && MSGPACK_PP_ITERATION_FINISH_3 >= 114 +# define MSGPACK_PP_ITERATION_3 114 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 115 && MSGPACK_PP_ITERATION_FINISH_3 >= 115 +# define MSGPACK_PP_ITERATION_3 115 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 116 && MSGPACK_PP_ITERATION_FINISH_3 >= 116 +# define MSGPACK_PP_ITERATION_3 116 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 117 && MSGPACK_PP_ITERATION_FINISH_3 >= 117 +# define MSGPACK_PP_ITERATION_3 117 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 118 && MSGPACK_PP_ITERATION_FINISH_3 >= 118 +# define MSGPACK_PP_ITERATION_3 118 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 119 && MSGPACK_PP_ITERATION_FINISH_3 >= 119 +# define MSGPACK_PP_ITERATION_3 119 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 120 && MSGPACK_PP_ITERATION_FINISH_3 >= 120 +# define MSGPACK_PP_ITERATION_3 120 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 121 && MSGPACK_PP_ITERATION_FINISH_3 >= 121 +# define MSGPACK_PP_ITERATION_3 121 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 122 && MSGPACK_PP_ITERATION_FINISH_3 >= 122 +# define MSGPACK_PP_ITERATION_3 122 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 123 && MSGPACK_PP_ITERATION_FINISH_3 >= 123 +# define MSGPACK_PP_ITERATION_3 123 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 124 && MSGPACK_PP_ITERATION_FINISH_3 >= 124 +# define MSGPACK_PP_ITERATION_3 124 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 125 && MSGPACK_PP_ITERATION_FINISH_3 >= 125 +# define MSGPACK_PP_ITERATION_3 125 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 126 && MSGPACK_PP_ITERATION_FINISH_3 >= 126 +# define MSGPACK_PP_ITERATION_3 126 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 127 && MSGPACK_PP_ITERATION_FINISH_3 >= 127 +# define MSGPACK_PP_ITERATION_3 127 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 128 && MSGPACK_PP_ITERATION_FINISH_3 >= 128 +# define MSGPACK_PP_ITERATION_3 128 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 129 && MSGPACK_PP_ITERATION_FINISH_3 >= 129 +# define MSGPACK_PP_ITERATION_3 129 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 130 && MSGPACK_PP_ITERATION_FINISH_3 >= 130 +# define MSGPACK_PP_ITERATION_3 130 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 131 && MSGPACK_PP_ITERATION_FINISH_3 >= 131 +# define MSGPACK_PP_ITERATION_3 131 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 132 && MSGPACK_PP_ITERATION_FINISH_3 >= 132 +# define MSGPACK_PP_ITERATION_3 132 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 133 && MSGPACK_PP_ITERATION_FINISH_3 >= 133 +# define MSGPACK_PP_ITERATION_3 133 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 134 && MSGPACK_PP_ITERATION_FINISH_3 >= 134 +# define MSGPACK_PP_ITERATION_3 134 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 135 && MSGPACK_PP_ITERATION_FINISH_3 >= 135 +# define MSGPACK_PP_ITERATION_3 135 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 136 && MSGPACK_PP_ITERATION_FINISH_3 >= 136 +# define MSGPACK_PP_ITERATION_3 136 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 137 && MSGPACK_PP_ITERATION_FINISH_3 >= 137 +# define MSGPACK_PP_ITERATION_3 137 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 138 && MSGPACK_PP_ITERATION_FINISH_3 >= 138 +# define MSGPACK_PP_ITERATION_3 138 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 139 && MSGPACK_PP_ITERATION_FINISH_3 >= 139 +# define MSGPACK_PP_ITERATION_3 139 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 140 && MSGPACK_PP_ITERATION_FINISH_3 >= 140 +# define MSGPACK_PP_ITERATION_3 140 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 141 && MSGPACK_PP_ITERATION_FINISH_3 >= 141 +# define MSGPACK_PP_ITERATION_3 141 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 142 && MSGPACK_PP_ITERATION_FINISH_3 >= 142 +# define MSGPACK_PP_ITERATION_3 142 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 143 && MSGPACK_PP_ITERATION_FINISH_3 >= 143 +# define MSGPACK_PP_ITERATION_3 143 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 144 && MSGPACK_PP_ITERATION_FINISH_3 >= 144 +# define MSGPACK_PP_ITERATION_3 144 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 145 && MSGPACK_PP_ITERATION_FINISH_3 >= 145 +# define MSGPACK_PP_ITERATION_3 145 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 146 && MSGPACK_PP_ITERATION_FINISH_3 >= 146 +# define MSGPACK_PP_ITERATION_3 146 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 147 && MSGPACK_PP_ITERATION_FINISH_3 >= 147 +# define MSGPACK_PP_ITERATION_3 147 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 148 && MSGPACK_PP_ITERATION_FINISH_3 >= 148 +# define MSGPACK_PP_ITERATION_3 148 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 149 && MSGPACK_PP_ITERATION_FINISH_3 >= 149 +# define MSGPACK_PP_ITERATION_3 149 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 150 && MSGPACK_PP_ITERATION_FINISH_3 >= 150 +# define MSGPACK_PP_ITERATION_3 150 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 151 && MSGPACK_PP_ITERATION_FINISH_3 >= 151 +# define MSGPACK_PP_ITERATION_3 151 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 152 && MSGPACK_PP_ITERATION_FINISH_3 >= 152 +# define MSGPACK_PP_ITERATION_3 152 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 153 && MSGPACK_PP_ITERATION_FINISH_3 >= 153 +# define MSGPACK_PP_ITERATION_3 153 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 154 && MSGPACK_PP_ITERATION_FINISH_3 >= 154 +# define MSGPACK_PP_ITERATION_3 154 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 155 && MSGPACK_PP_ITERATION_FINISH_3 >= 155 +# define MSGPACK_PP_ITERATION_3 155 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 156 && MSGPACK_PP_ITERATION_FINISH_3 >= 156 +# define MSGPACK_PP_ITERATION_3 156 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 157 && MSGPACK_PP_ITERATION_FINISH_3 >= 157 +# define MSGPACK_PP_ITERATION_3 157 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 158 && MSGPACK_PP_ITERATION_FINISH_3 >= 158 +# define MSGPACK_PP_ITERATION_3 158 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 159 && MSGPACK_PP_ITERATION_FINISH_3 >= 159 +# define MSGPACK_PP_ITERATION_3 159 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 160 && MSGPACK_PP_ITERATION_FINISH_3 >= 160 +# define MSGPACK_PP_ITERATION_3 160 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 161 && MSGPACK_PP_ITERATION_FINISH_3 >= 161 +# define MSGPACK_PP_ITERATION_3 161 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 162 && MSGPACK_PP_ITERATION_FINISH_3 >= 162 +# define MSGPACK_PP_ITERATION_3 162 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 163 && MSGPACK_PP_ITERATION_FINISH_3 >= 163 +# define MSGPACK_PP_ITERATION_3 163 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 164 && MSGPACK_PP_ITERATION_FINISH_3 >= 164 +# define MSGPACK_PP_ITERATION_3 164 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 165 && MSGPACK_PP_ITERATION_FINISH_3 >= 165 +# define MSGPACK_PP_ITERATION_3 165 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 166 && MSGPACK_PP_ITERATION_FINISH_3 >= 166 +# define MSGPACK_PP_ITERATION_3 166 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 167 && MSGPACK_PP_ITERATION_FINISH_3 >= 167 +# define MSGPACK_PP_ITERATION_3 167 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 168 && MSGPACK_PP_ITERATION_FINISH_3 >= 168 +# define MSGPACK_PP_ITERATION_3 168 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 169 && MSGPACK_PP_ITERATION_FINISH_3 >= 169 +# define MSGPACK_PP_ITERATION_3 169 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 170 && MSGPACK_PP_ITERATION_FINISH_3 >= 170 +# define MSGPACK_PP_ITERATION_3 170 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 171 && MSGPACK_PP_ITERATION_FINISH_3 >= 171 +# define MSGPACK_PP_ITERATION_3 171 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 172 && MSGPACK_PP_ITERATION_FINISH_3 >= 172 +# define MSGPACK_PP_ITERATION_3 172 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 173 && MSGPACK_PP_ITERATION_FINISH_3 >= 173 +# define MSGPACK_PP_ITERATION_3 173 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 174 && MSGPACK_PP_ITERATION_FINISH_3 >= 174 +# define MSGPACK_PP_ITERATION_3 174 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 175 && MSGPACK_PP_ITERATION_FINISH_3 >= 175 +# define MSGPACK_PP_ITERATION_3 175 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 176 && MSGPACK_PP_ITERATION_FINISH_3 >= 176 +# define MSGPACK_PP_ITERATION_3 176 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 177 && MSGPACK_PP_ITERATION_FINISH_3 >= 177 +# define MSGPACK_PP_ITERATION_3 177 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 178 && MSGPACK_PP_ITERATION_FINISH_3 >= 178 +# define MSGPACK_PP_ITERATION_3 178 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 179 && MSGPACK_PP_ITERATION_FINISH_3 >= 179 +# define MSGPACK_PP_ITERATION_3 179 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 180 && MSGPACK_PP_ITERATION_FINISH_3 >= 180 +# define MSGPACK_PP_ITERATION_3 180 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 181 && MSGPACK_PP_ITERATION_FINISH_3 >= 181 +# define MSGPACK_PP_ITERATION_3 181 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 182 && MSGPACK_PP_ITERATION_FINISH_3 >= 182 +# define MSGPACK_PP_ITERATION_3 182 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 183 && MSGPACK_PP_ITERATION_FINISH_3 >= 183 +# define MSGPACK_PP_ITERATION_3 183 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 184 && MSGPACK_PP_ITERATION_FINISH_3 >= 184 +# define MSGPACK_PP_ITERATION_3 184 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 185 && MSGPACK_PP_ITERATION_FINISH_3 >= 185 +# define MSGPACK_PP_ITERATION_3 185 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 186 && MSGPACK_PP_ITERATION_FINISH_3 >= 186 +# define MSGPACK_PP_ITERATION_3 186 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 187 && MSGPACK_PP_ITERATION_FINISH_3 >= 187 +# define MSGPACK_PP_ITERATION_3 187 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 188 && MSGPACK_PP_ITERATION_FINISH_3 >= 188 +# define MSGPACK_PP_ITERATION_3 188 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 189 && MSGPACK_PP_ITERATION_FINISH_3 >= 189 +# define MSGPACK_PP_ITERATION_3 189 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 190 && MSGPACK_PP_ITERATION_FINISH_3 >= 190 +# define MSGPACK_PP_ITERATION_3 190 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 191 && MSGPACK_PP_ITERATION_FINISH_3 >= 191 +# define MSGPACK_PP_ITERATION_3 191 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 192 && MSGPACK_PP_ITERATION_FINISH_3 >= 192 +# define MSGPACK_PP_ITERATION_3 192 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 193 && MSGPACK_PP_ITERATION_FINISH_3 >= 193 +# define MSGPACK_PP_ITERATION_3 193 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 194 && MSGPACK_PP_ITERATION_FINISH_3 >= 194 +# define MSGPACK_PP_ITERATION_3 194 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 195 && MSGPACK_PP_ITERATION_FINISH_3 >= 195 +# define MSGPACK_PP_ITERATION_3 195 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 196 && MSGPACK_PP_ITERATION_FINISH_3 >= 196 +# define MSGPACK_PP_ITERATION_3 196 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 197 && MSGPACK_PP_ITERATION_FINISH_3 >= 197 +# define MSGPACK_PP_ITERATION_3 197 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 198 && MSGPACK_PP_ITERATION_FINISH_3 >= 198 +# define MSGPACK_PP_ITERATION_3 198 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 199 && MSGPACK_PP_ITERATION_FINISH_3 >= 199 +# define MSGPACK_PP_ITERATION_3 199 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 200 && MSGPACK_PP_ITERATION_FINISH_3 >= 200 +# define MSGPACK_PP_ITERATION_3 200 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 201 && MSGPACK_PP_ITERATION_FINISH_3 >= 201 +# define MSGPACK_PP_ITERATION_3 201 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 202 && MSGPACK_PP_ITERATION_FINISH_3 >= 202 +# define MSGPACK_PP_ITERATION_3 202 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 203 && MSGPACK_PP_ITERATION_FINISH_3 >= 203 +# define MSGPACK_PP_ITERATION_3 203 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 204 && MSGPACK_PP_ITERATION_FINISH_3 >= 204 +# define MSGPACK_PP_ITERATION_3 204 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 205 && MSGPACK_PP_ITERATION_FINISH_3 >= 205 +# define MSGPACK_PP_ITERATION_3 205 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 206 && MSGPACK_PP_ITERATION_FINISH_3 >= 206 +# define MSGPACK_PP_ITERATION_3 206 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 207 && MSGPACK_PP_ITERATION_FINISH_3 >= 207 +# define MSGPACK_PP_ITERATION_3 207 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 208 && MSGPACK_PP_ITERATION_FINISH_3 >= 208 +# define MSGPACK_PP_ITERATION_3 208 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 209 && MSGPACK_PP_ITERATION_FINISH_3 >= 209 +# define MSGPACK_PP_ITERATION_3 209 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 210 && MSGPACK_PP_ITERATION_FINISH_3 >= 210 +# define MSGPACK_PP_ITERATION_3 210 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 211 && MSGPACK_PP_ITERATION_FINISH_3 >= 211 +# define MSGPACK_PP_ITERATION_3 211 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 212 && MSGPACK_PP_ITERATION_FINISH_3 >= 212 +# define MSGPACK_PP_ITERATION_3 212 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 213 && MSGPACK_PP_ITERATION_FINISH_3 >= 213 +# define MSGPACK_PP_ITERATION_3 213 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 214 && MSGPACK_PP_ITERATION_FINISH_3 >= 214 +# define MSGPACK_PP_ITERATION_3 214 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 215 && MSGPACK_PP_ITERATION_FINISH_3 >= 215 +# define MSGPACK_PP_ITERATION_3 215 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 216 && MSGPACK_PP_ITERATION_FINISH_3 >= 216 +# define MSGPACK_PP_ITERATION_3 216 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 217 && MSGPACK_PP_ITERATION_FINISH_3 >= 217 +# define MSGPACK_PP_ITERATION_3 217 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 218 && MSGPACK_PP_ITERATION_FINISH_3 >= 218 +# define MSGPACK_PP_ITERATION_3 218 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 219 && MSGPACK_PP_ITERATION_FINISH_3 >= 219 +# define MSGPACK_PP_ITERATION_3 219 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 220 && MSGPACK_PP_ITERATION_FINISH_3 >= 220 +# define MSGPACK_PP_ITERATION_3 220 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 221 && MSGPACK_PP_ITERATION_FINISH_3 >= 221 +# define MSGPACK_PP_ITERATION_3 221 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 222 && MSGPACK_PP_ITERATION_FINISH_3 >= 222 +# define MSGPACK_PP_ITERATION_3 222 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 223 && MSGPACK_PP_ITERATION_FINISH_3 >= 223 +# define MSGPACK_PP_ITERATION_3 223 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 224 && MSGPACK_PP_ITERATION_FINISH_3 >= 224 +# define MSGPACK_PP_ITERATION_3 224 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 225 && MSGPACK_PP_ITERATION_FINISH_3 >= 225 +# define MSGPACK_PP_ITERATION_3 225 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 226 && MSGPACK_PP_ITERATION_FINISH_3 >= 226 +# define MSGPACK_PP_ITERATION_3 226 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 227 && MSGPACK_PP_ITERATION_FINISH_3 >= 227 +# define MSGPACK_PP_ITERATION_3 227 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 228 && MSGPACK_PP_ITERATION_FINISH_3 >= 228 +# define MSGPACK_PP_ITERATION_3 228 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 229 && MSGPACK_PP_ITERATION_FINISH_3 >= 229 +# define MSGPACK_PP_ITERATION_3 229 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 230 && MSGPACK_PP_ITERATION_FINISH_3 >= 230 +# define MSGPACK_PP_ITERATION_3 230 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 231 && MSGPACK_PP_ITERATION_FINISH_3 >= 231 +# define MSGPACK_PP_ITERATION_3 231 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 232 && MSGPACK_PP_ITERATION_FINISH_3 >= 232 +# define MSGPACK_PP_ITERATION_3 232 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 233 && MSGPACK_PP_ITERATION_FINISH_3 >= 233 +# define MSGPACK_PP_ITERATION_3 233 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 234 && MSGPACK_PP_ITERATION_FINISH_3 >= 234 +# define MSGPACK_PP_ITERATION_3 234 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 235 && MSGPACK_PP_ITERATION_FINISH_3 >= 235 +# define MSGPACK_PP_ITERATION_3 235 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 236 && MSGPACK_PP_ITERATION_FINISH_3 >= 236 +# define MSGPACK_PP_ITERATION_3 236 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 237 && MSGPACK_PP_ITERATION_FINISH_3 >= 237 +# define MSGPACK_PP_ITERATION_3 237 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 238 && MSGPACK_PP_ITERATION_FINISH_3 >= 238 +# define MSGPACK_PP_ITERATION_3 238 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 239 && MSGPACK_PP_ITERATION_FINISH_3 >= 239 +# define MSGPACK_PP_ITERATION_3 239 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 240 && MSGPACK_PP_ITERATION_FINISH_3 >= 240 +# define MSGPACK_PP_ITERATION_3 240 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 241 && MSGPACK_PP_ITERATION_FINISH_3 >= 241 +# define MSGPACK_PP_ITERATION_3 241 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 242 && MSGPACK_PP_ITERATION_FINISH_3 >= 242 +# define MSGPACK_PP_ITERATION_3 242 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 243 && MSGPACK_PP_ITERATION_FINISH_3 >= 243 +# define MSGPACK_PP_ITERATION_3 243 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 244 && MSGPACK_PP_ITERATION_FINISH_3 >= 244 +# define MSGPACK_PP_ITERATION_3 244 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 245 && MSGPACK_PP_ITERATION_FINISH_3 >= 245 +# define MSGPACK_PP_ITERATION_3 245 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 246 && MSGPACK_PP_ITERATION_FINISH_3 >= 246 +# define MSGPACK_PP_ITERATION_3 246 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 247 && MSGPACK_PP_ITERATION_FINISH_3 >= 247 +# define MSGPACK_PP_ITERATION_3 247 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 248 && MSGPACK_PP_ITERATION_FINISH_3 >= 248 +# define MSGPACK_PP_ITERATION_3 248 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 249 && MSGPACK_PP_ITERATION_FINISH_3 >= 249 +# define MSGPACK_PP_ITERATION_3 249 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 250 && MSGPACK_PP_ITERATION_FINISH_3 >= 250 +# define MSGPACK_PP_ITERATION_3 250 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 251 && MSGPACK_PP_ITERATION_FINISH_3 >= 251 +# define MSGPACK_PP_ITERATION_3 251 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 252 && MSGPACK_PP_ITERATION_FINISH_3 >= 252 +# define MSGPACK_PP_ITERATION_3 252 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 253 && MSGPACK_PP_ITERATION_FINISH_3 >= 253 +# define MSGPACK_PP_ITERATION_3 253 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 254 && MSGPACK_PP_ITERATION_FINISH_3 >= 254 +# define MSGPACK_PP_ITERATION_3 254 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 255 && MSGPACK_PP_ITERATION_FINISH_3 >= 255 +# define MSGPACK_PP_ITERATION_3 255 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_START_3 <= 256 && MSGPACK_PP_ITERATION_FINISH_3 >= 256 +# define MSGPACK_PP_ITERATION_3 256 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# endif +# +# undef MSGPACK_PP_ITERATION_DEPTH +# define MSGPACK_PP_ITERATION_DEPTH() 2 +# +# undef MSGPACK_PP_ITERATION_START_3 +# undef MSGPACK_PP_ITERATION_FINISH_3 +# undef MSGPACK_PP_FILENAME_3 +# +# undef MSGPACK_PP_ITERATION_FLAGS_3 +# undef MSGPACK_PP_ITERATION_PARAMS_3 diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward4.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward4.hpp new file mode 100644 index 000000000000..429d57766fb2 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward4.hpp @@ -0,0 +1,1338 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# if defined(MSGPACK_PP_ITERATION_LIMITS) +# if !defined(MSGPACK_PP_FILENAME_4) +# error MSGPACK_PP_ERROR: depth #4 filename is not defined +# endif +# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_ITERATION_LIMITS) +# include +# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_ITERATION_LIMITS) +# include +# define MSGPACK_PP_ITERATION_FLAGS_4() 0 +# undef MSGPACK_PP_ITERATION_LIMITS +# elif defined(MSGPACK_PP_ITERATION_PARAMS_4) +# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(0, MSGPACK_PP_ITERATION_PARAMS_4) +# include +# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(1, MSGPACK_PP_ITERATION_PARAMS_4) +# include +# define MSGPACK_PP_FILENAME_4 MSGPACK_PP_ARRAY_ELEM(2, MSGPACK_PP_ITERATION_PARAMS_4) +# if MSGPACK_PP_ARRAY_SIZE(MSGPACK_PP_ITERATION_PARAMS_4) >= 4 +# define MSGPACK_PP_ITERATION_FLAGS_4() MSGPACK_PP_ARRAY_ELEM(3, MSGPACK_PP_ITERATION_PARAMS_4) +# else +# define MSGPACK_PP_ITERATION_FLAGS_4() 0 +# endif +# else +# error MSGPACK_PP_ERROR: depth #4 iteration boundaries or filename not defined +# endif +# +# undef MSGPACK_PP_ITERATION_DEPTH +# define MSGPACK_PP_ITERATION_DEPTH() 4 +# +# if (MSGPACK_PP_ITERATION_START_4) > (MSGPACK_PP_ITERATION_FINISH_4) +# include +# else +# if MSGPACK_PP_ITERATION_START_4 <= 0 && MSGPACK_PP_ITERATION_FINISH_4 >= 0 +# define MSGPACK_PP_ITERATION_4 0 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 1 && MSGPACK_PP_ITERATION_FINISH_4 >= 1 +# define MSGPACK_PP_ITERATION_4 1 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 2 && MSGPACK_PP_ITERATION_FINISH_4 >= 2 +# define MSGPACK_PP_ITERATION_4 2 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 3 && MSGPACK_PP_ITERATION_FINISH_4 >= 3 +# define MSGPACK_PP_ITERATION_4 3 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 4 && MSGPACK_PP_ITERATION_FINISH_4 >= 4 +# define MSGPACK_PP_ITERATION_4 4 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 5 && MSGPACK_PP_ITERATION_FINISH_4 >= 5 +# define MSGPACK_PP_ITERATION_4 5 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 6 && MSGPACK_PP_ITERATION_FINISH_4 >= 6 +# define MSGPACK_PP_ITERATION_4 6 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 7 && MSGPACK_PP_ITERATION_FINISH_4 >= 7 +# define MSGPACK_PP_ITERATION_4 7 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 8 && MSGPACK_PP_ITERATION_FINISH_4 >= 8 +# define MSGPACK_PP_ITERATION_4 8 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 9 && MSGPACK_PP_ITERATION_FINISH_4 >= 9 +# define MSGPACK_PP_ITERATION_4 9 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 10 && MSGPACK_PP_ITERATION_FINISH_4 >= 10 +# define MSGPACK_PP_ITERATION_4 10 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 11 && MSGPACK_PP_ITERATION_FINISH_4 >= 11 +# define MSGPACK_PP_ITERATION_4 11 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 12 && MSGPACK_PP_ITERATION_FINISH_4 >= 12 +# define MSGPACK_PP_ITERATION_4 12 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 13 && MSGPACK_PP_ITERATION_FINISH_4 >= 13 +# define MSGPACK_PP_ITERATION_4 13 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 14 && MSGPACK_PP_ITERATION_FINISH_4 >= 14 +# define MSGPACK_PP_ITERATION_4 14 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 15 && MSGPACK_PP_ITERATION_FINISH_4 >= 15 +# define MSGPACK_PP_ITERATION_4 15 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 16 && MSGPACK_PP_ITERATION_FINISH_4 >= 16 +# define MSGPACK_PP_ITERATION_4 16 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 17 && MSGPACK_PP_ITERATION_FINISH_4 >= 17 +# define MSGPACK_PP_ITERATION_4 17 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 18 && MSGPACK_PP_ITERATION_FINISH_4 >= 18 +# define MSGPACK_PP_ITERATION_4 18 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 19 && MSGPACK_PP_ITERATION_FINISH_4 >= 19 +# define MSGPACK_PP_ITERATION_4 19 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 20 && MSGPACK_PP_ITERATION_FINISH_4 >= 20 +# define MSGPACK_PP_ITERATION_4 20 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 21 && MSGPACK_PP_ITERATION_FINISH_4 >= 21 +# define MSGPACK_PP_ITERATION_4 21 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 22 && MSGPACK_PP_ITERATION_FINISH_4 >= 22 +# define MSGPACK_PP_ITERATION_4 22 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 23 && MSGPACK_PP_ITERATION_FINISH_4 >= 23 +# define MSGPACK_PP_ITERATION_4 23 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 24 && MSGPACK_PP_ITERATION_FINISH_4 >= 24 +# define MSGPACK_PP_ITERATION_4 24 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 25 && MSGPACK_PP_ITERATION_FINISH_4 >= 25 +# define MSGPACK_PP_ITERATION_4 25 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 26 && MSGPACK_PP_ITERATION_FINISH_4 >= 26 +# define MSGPACK_PP_ITERATION_4 26 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 27 && MSGPACK_PP_ITERATION_FINISH_4 >= 27 +# define MSGPACK_PP_ITERATION_4 27 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 28 && MSGPACK_PP_ITERATION_FINISH_4 >= 28 +# define MSGPACK_PP_ITERATION_4 28 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 29 && MSGPACK_PP_ITERATION_FINISH_4 >= 29 +# define MSGPACK_PP_ITERATION_4 29 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 30 && MSGPACK_PP_ITERATION_FINISH_4 >= 30 +# define MSGPACK_PP_ITERATION_4 30 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 31 && MSGPACK_PP_ITERATION_FINISH_4 >= 31 +# define MSGPACK_PP_ITERATION_4 31 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 32 && MSGPACK_PP_ITERATION_FINISH_4 >= 32 +# define MSGPACK_PP_ITERATION_4 32 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 33 && MSGPACK_PP_ITERATION_FINISH_4 >= 33 +# define MSGPACK_PP_ITERATION_4 33 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 34 && MSGPACK_PP_ITERATION_FINISH_4 >= 34 +# define MSGPACK_PP_ITERATION_4 34 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 35 && MSGPACK_PP_ITERATION_FINISH_4 >= 35 +# define MSGPACK_PP_ITERATION_4 35 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 36 && MSGPACK_PP_ITERATION_FINISH_4 >= 36 +# define MSGPACK_PP_ITERATION_4 36 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 37 && MSGPACK_PP_ITERATION_FINISH_4 >= 37 +# define MSGPACK_PP_ITERATION_4 37 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 38 && MSGPACK_PP_ITERATION_FINISH_4 >= 38 +# define MSGPACK_PP_ITERATION_4 38 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 39 && MSGPACK_PP_ITERATION_FINISH_4 >= 39 +# define MSGPACK_PP_ITERATION_4 39 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 40 && MSGPACK_PP_ITERATION_FINISH_4 >= 40 +# define MSGPACK_PP_ITERATION_4 40 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 41 && MSGPACK_PP_ITERATION_FINISH_4 >= 41 +# define MSGPACK_PP_ITERATION_4 41 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 42 && MSGPACK_PP_ITERATION_FINISH_4 >= 42 +# define MSGPACK_PP_ITERATION_4 42 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 43 && MSGPACK_PP_ITERATION_FINISH_4 >= 43 +# define MSGPACK_PP_ITERATION_4 43 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 44 && MSGPACK_PP_ITERATION_FINISH_4 >= 44 +# define MSGPACK_PP_ITERATION_4 44 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 45 && MSGPACK_PP_ITERATION_FINISH_4 >= 45 +# define MSGPACK_PP_ITERATION_4 45 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 46 && MSGPACK_PP_ITERATION_FINISH_4 >= 46 +# define MSGPACK_PP_ITERATION_4 46 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 47 && MSGPACK_PP_ITERATION_FINISH_4 >= 47 +# define MSGPACK_PP_ITERATION_4 47 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 48 && MSGPACK_PP_ITERATION_FINISH_4 >= 48 +# define MSGPACK_PP_ITERATION_4 48 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 49 && MSGPACK_PP_ITERATION_FINISH_4 >= 49 +# define MSGPACK_PP_ITERATION_4 49 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 50 && MSGPACK_PP_ITERATION_FINISH_4 >= 50 +# define MSGPACK_PP_ITERATION_4 50 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 51 && MSGPACK_PP_ITERATION_FINISH_4 >= 51 +# define MSGPACK_PP_ITERATION_4 51 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 52 && MSGPACK_PP_ITERATION_FINISH_4 >= 52 +# define MSGPACK_PP_ITERATION_4 52 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 53 && MSGPACK_PP_ITERATION_FINISH_4 >= 53 +# define MSGPACK_PP_ITERATION_4 53 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 54 && MSGPACK_PP_ITERATION_FINISH_4 >= 54 +# define MSGPACK_PP_ITERATION_4 54 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 55 && MSGPACK_PP_ITERATION_FINISH_4 >= 55 +# define MSGPACK_PP_ITERATION_4 55 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 56 && MSGPACK_PP_ITERATION_FINISH_4 >= 56 +# define MSGPACK_PP_ITERATION_4 56 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 57 && MSGPACK_PP_ITERATION_FINISH_4 >= 57 +# define MSGPACK_PP_ITERATION_4 57 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 58 && MSGPACK_PP_ITERATION_FINISH_4 >= 58 +# define MSGPACK_PP_ITERATION_4 58 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 59 && MSGPACK_PP_ITERATION_FINISH_4 >= 59 +# define MSGPACK_PP_ITERATION_4 59 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 60 && MSGPACK_PP_ITERATION_FINISH_4 >= 60 +# define MSGPACK_PP_ITERATION_4 60 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 61 && MSGPACK_PP_ITERATION_FINISH_4 >= 61 +# define MSGPACK_PP_ITERATION_4 61 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 62 && MSGPACK_PP_ITERATION_FINISH_4 >= 62 +# define MSGPACK_PP_ITERATION_4 62 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 63 && MSGPACK_PP_ITERATION_FINISH_4 >= 63 +# define MSGPACK_PP_ITERATION_4 63 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 64 && MSGPACK_PP_ITERATION_FINISH_4 >= 64 +# define MSGPACK_PP_ITERATION_4 64 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 65 && MSGPACK_PP_ITERATION_FINISH_4 >= 65 +# define MSGPACK_PP_ITERATION_4 65 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 66 && MSGPACK_PP_ITERATION_FINISH_4 >= 66 +# define MSGPACK_PP_ITERATION_4 66 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 67 && MSGPACK_PP_ITERATION_FINISH_4 >= 67 +# define MSGPACK_PP_ITERATION_4 67 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 68 && MSGPACK_PP_ITERATION_FINISH_4 >= 68 +# define MSGPACK_PP_ITERATION_4 68 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 69 && MSGPACK_PP_ITERATION_FINISH_4 >= 69 +# define MSGPACK_PP_ITERATION_4 69 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 70 && MSGPACK_PP_ITERATION_FINISH_4 >= 70 +# define MSGPACK_PP_ITERATION_4 70 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 71 && MSGPACK_PP_ITERATION_FINISH_4 >= 71 +# define MSGPACK_PP_ITERATION_4 71 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 72 && MSGPACK_PP_ITERATION_FINISH_4 >= 72 +# define MSGPACK_PP_ITERATION_4 72 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 73 && MSGPACK_PP_ITERATION_FINISH_4 >= 73 +# define MSGPACK_PP_ITERATION_4 73 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 74 && MSGPACK_PP_ITERATION_FINISH_4 >= 74 +# define MSGPACK_PP_ITERATION_4 74 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 75 && MSGPACK_PP_ITERATION_FINISH_4 >= 75 +# define MSGPACK_PP_ITERATION_4 75 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 76 && MSGPACK_PP_ITERATION_FINISH_4 >= 76 +# define MSGPACK_PP_ITERATION_4 76 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 77 && MSGPACK_PP_ITERATION_FINISH_4 >= 77 +# define MSGPACK_PP_ITERATION_4 77 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 78 && MSGPACK_PP_ITERATION_FINISH_4 >= 78 +# define MSGPACK_PP_ITERATION_4 78 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 79 && MSGPACK_PP_ITERATION_FINISH_4 >= 79 +# define MSGPACK_PP_ITERATION_4 79 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 80 && MSGPACK_PP_ITERATION_FINISH_4 >= 80 +# define MSGPACK_PP_ITERATION_4 80 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 81 && MSGPACK_PP_ITERATION_FINISH_4 >= 81 +# define MSGPACK_PP_ITERATION_4 81 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 82 && MSGPACK_PP_ITERATION_FINISH_4 >= 82 +# define MSGPACK_PP_ITERATION_4 82 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 83 && MSGPACK_PP_ITERATION_FINISH_4 >= 83 +# define MSGPACK_PP_ITERATION_4 83 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 84 && MSGPACK_PP_ITERATION_FINISH_4 >= 84 +# define MSGPACK_PP_ITERATION_4 84 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 85 && MSGPACK_PP_ITERATION_FINISH_4 >= 85 +# define MSGPACK_PP_ITERATION_4 85 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 86 && MSGPACK_PP_ITERATION_FINISH_4 >= 86 +# define MSGPACK_PP_ITERATION_4 86 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 87 && MSGPACK_PP_ITERATION_FINISH_4 >= 87 +# define MSGPACK_PP_ITERATION_4 87 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 88 && MSGPACK_PP_ITERATION_FINISH_4 >= 88 +# define MSGPACK_PP_ITERATION_4 88 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 89 && MSGPACK_PP_ITERATION_FINISH_4 >= 89 +# define MSGPACK_PP_ITERATION_4 89 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 90 && MSGPACK_PP_ITERATION_FINISH_4 >= 90 +# define MSGPACK_PP_ITERATION_4 90 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 91 && MSGPACK_PP_ITERATION_FINISH_4 >= 91 +# define MSGPACK_PP_ITERATION_4 91 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 92 && MSGPACK_PP_ITERATION_FINISH_4 >= 92 +# define MSGPACK_PP_ITERATION_4 92 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 93 && MSGPACK_PP_ITERATION_FINISH_4 >= 93 +# define MSGPACK_PP_ITERATION_4 93 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 94 && MSGPACK_PP_ITERATION_FINISH_4 >= 94 +# define MSGPACK_PP_ITERATION_4 94 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 95 && MSGPACK_PP_ITERATION_FINISH_4 >= 95 +# define MSGPACK_PP_ITERATION_4 95 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 96 && MSGPACK_PP_ITERATION_FINISH_4 >= 96 +# define MSGPACK_PP_ITERATION_4 96 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 97 && MSGPACK_PP_ITERATION_FINISH_4 >= 97 +# define MSGPACK_PP_ITERATION_4 97 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 98 && MSGPACK_PP_ITERATION_FINISH_4 >= 98 +# define MSGPACK_PP_ITERATION_4 98 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 99 && MSGPACK_PP_ITERATION_FINISH_4 >= 99 +# define MSGPACK_PP_ITERATION_4 99 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 100 && MSGPACK_PP_ITERATION_FINISH_4 >= 100 +# define MSGPACK_PP_ITERATION_4 100 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 101 && MSGPACK_PP_ITERATION_FINISH_4 >= 101 +# define MSGPACK_PP_ITERATION_4 101 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 102 && MSGPACK_PP_ITERATION_FINISH_4 >= 102 +# define MSGPACK_PP_ITERATION_4 102 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 103 && MSGPACK_PP_ITERATION_FINISH_4 >= 103 +# define MSGPACK_PP_ITERATION_4 103 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 104 && MSGPACK_PP_ITERATION_FINISH_4 >= 104 +# define MSGPACK_PP_ITERATION_4 104 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 105 && MSGPACK_PP_ITERATION_FINISH_4 >= 105 +# define MSGPACK_PP_ITERATION_4 105 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 106 && MSGPACK_PP_ITERATION_FINISH_4 >= 106 +# define MSGPACK_PP_ITERATION_4 106 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 107 && MSGPACK_PP_ITERATION_FINISH_4 >= 107 +# define MSGPACK_PP_ITERATION_4 107 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 108 && MSGPACK_PP_ITERATION_FINISH_4 >= 108 +# define MSGPACK_PP_ITERATION_4 108 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 109 && MSGPACK_PP_ITERATION_FINISH_4 >= 109 +# define MSGPACK_PP_ITERATION_4 109 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 110 && MSGPACK_PP_ITERATION_FINISH_4 >= 110 +# define MSGPACK_PP_ITERATION_4 110 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 111 && MSGPACK_PP_ITERATION_FINISH_4 >= 111 +# define MSGPACK_PP_ITERATION_4 111 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 112 && MSGPACK_PP_ITERATION_FINISH_4 >= 112 +# define MSGPACK_PP_ITERATION_4 112 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 113 && MSGPACK_PP_ITERATION_FINISH_4 >= 113 +# define MSGPACK_PP_ITERATION_4 113 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 114 && MSGPACK_PP_ITERATION_FINISH_4 >= 114 +# define MSGPACK_PP_ITERATION_4 114 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 115 && MSGPACK_PP_ITERATION_FINISH_4 >= 115 +# define MSGPACK_PP_ITERATION_4 115 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 116 && MSGPACK_PP_ITERATION_FINISH_4 >= 116 +# define MSGPACK_PP_ITERATION_4 116 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 117 && MSGPACK_PP_ITERATION_FINISH_4 >= 117 +# define MSGPACK_PP_ITERATION_4 117 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 118 && MSGPACK_PP_ITERATION_FINISH_4 >= 118 +# define MSGPACK_PP_ITERATION_4 118 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 119 && MSGPACK_PP_ITERATION_FINISH_4 >= 119 +# define MSGPACK_PP_ITERATION_4 119 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 120 && MSGPACK_PP_ITERATION_FINISH_4 >= 120 +# define MSGPACK_PP_ITERATION_4 120 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 121 && MSGPACK_PP_ITERATION_FINISH_4 >= 121 +# define MSGPACK_PP_ITERATION_4 121 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 122 && MSGPACK_PP_ITERATION_FINISH_4 >= 122 +# define MSGPACK_PP_ITERATION_4 122 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 123 && MSGPACK_PP_ITERATION_FINISH_4 >= 123 +# define MSGPACK_PP_ITERATION_4 123 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 124 && MSGPACK_PP_ITERATION_FINISH_4 >= 124 +# define MSGPACK_PP_ITERATION_4 124 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 125 && MSGPACK_PP_ITERATION_FINISH_4 >= 125 +# define MSGPACK_PP_ITERATION_4 125 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 126 && MSGPACK_PP_ITERATION_FINISH_4 >= 126 +# define MSGPACK_PP_ITERATION_4 126 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 127 && MSGPACK_PP_ITERATION_FINISH_4 >= 127 +# define MSGPACK_PP_ITERATION_4 127 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 128 && MSGPACK_PP_ITERATION_FINISH_4 >= 128 +# define MSGPACK_PP_ITERATION_4 128 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 129 && MSGPACK_PP_ITERATION_FINISH_4 >= 129 +# define MSGPACK_PP_ITERATION_4 129 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 130 && MSGPACK_PP_ITERATION_FINISH_4 >= 130 +# define MSGPACK_PP_ITERATION_4 130 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 131 && MSGPACK_PP_ITERATION_FINISH_4 >= 131 +# define MSGPACK_PP_ITERATION_4 131 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 132 && MSGPACK_PP_ITERATION_FINISH_4 >= 132 +# define MSGPACK_PP_ITERATION_4 132 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 133 && MSGPACK_PP_ITERATION_FINISH_4 >= 133 +# define MSGPACK_PP_ITERATION_4 133 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 134 && MSGPACK_PP_ITERATION_FINISH_4 >= 134 +# define MSGPACK_PP_ITERATION_4 134 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 135 && MSGPACK_PP_ITERATION_FINISH_4 >= 135 +# define MSGPACK_PP_ITERATION_4 135 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 136 && MSGPACK_PP_ITERATION_FINISH_4 >= 136 +# define MSGPACK_PP_ITERATION_4 136 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 137 && MSGPACK_PP_ITERATION_FINISH_4 >= 137 +# define MSGPACK_PP_ITERATION_4 137 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 138 && MSGPACK_PP_ITERATION_FINISH_4 >= 138 +# define MSGPACK_PP_ITERATION_4 138 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 139 && MSGPACK_PP_ITERATION_FINISH_4 >= 139 +# define MSGPACK_PP_ITERATION_4 139 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 140 && MSGPACK_PP_ITERATION_FINISH_4 >= 140 +# define MSGPACK_PP_ITERATION_4 140 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 141 && MSGPACK_PP_ITERATION_FINISH_4 >= 141 +# define MSGPACK_PP_ITERATION_4 141 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 142 && MSGPACK_PP_ITERATION_FINISH_4 >= 142 +# define MSGPACK_PP_ITERATION_4 142 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 143 && MSGPACK_PP_ITERATION_FINISH_4 >= 143 +# define MSGPACK_PP_ITERATION_4 143 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 144 && MSGPACK_PP_ITERATION_FINISH_4 >= 144 +# define MSGPACK_PP_ITERATION_4 144 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 145 && MSGPACK_PP_ITERATION_FINISH_4 >= 145 +# define MSGPACK_PP_ITERATION_4 145 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 146 && MSGPACK_PP_ITERATION_FINISH_4 >= 146 +# define MSGPACK_PP_ITERATION_4 146 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 147 && MSGPACK_PP_ITERATION_FINISH_4 >= 147 +# define MSGPACK_PP_ITERATION_4 147 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 148 && MSGPACK_PP_ITERATION_FINISH_4 >= 148 +# define MSGPACK_PP_ITERATION_4 148 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 149 && MSGPACK_PP_ITERATION_FINISH_4 >= 149 +# define MSGPACK_PP_ITERATION_4 149 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 150 && MSGPACK_PP_ITERATION_FINISH_4 >= 150 +# define MSGPACK_PP_ITERATION_4 150 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 151 && MSGPACK_PP_ITERATION_FINISH_4 >= 151 +# define MSGPACK_PP_ITERATION_4 151 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 152 && MSGPACK_PP_ITERATION_FINISH_4 >= 152 +# define MSGPACK_PP_ITERATION_4 152 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 153 && MSGPACK_PP_ITERATION_FINISH_4 >= 153 +# define MSGPACK_PP_ITERATION_4 153 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 154 && MSGPACK_PP_ITERATION_FINISH_4 >= 154 +# define MSGPACK_PP_ITERATION_4 154 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 155 && MSGPACK_PP_ITERATION_FINISH_4 >= 155 +# define MSGPACK_PP_ITERATION_4 155 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 156 && MSGPACK_PP_ITERATION_FINISH_4 >= 156 +# define MSGPACK_PP_ITERATION_4 156 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 157 && MSGPACK_PP_ITERATION_FINISH_4 >= 157 +# define MSGPACK_PP_ITERATION_4 157 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 158 && MSGPACK_PP_ITERATION_FINISH_4 >= 158 +# define MSGPACK_PP_ITERATION_4 158 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 159 && MSGPACK_PP_ITERATION_FINISH_4 >= 159 +# define MSGPACK_PP_ITERATION_4 159 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 160 && MSGPACK_PP_ITERATION_FINISH_4 >= 160 +# define MSGPACK_PP_ITERATION_4 160 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 161 && MSGPACK_PP_ITERATION_FINISH_4 >= 161 +# define MSGPACK_PP_ITERATION_4 161 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 162 && MSGPACK_PP_ITERATION_FINISH_4 >= 162 +# define MSGPACK_PP_ITERATION_4 162 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 163 && MSGPACK_PP_ITERATION_FINISH_4 >= 163 +# define MSGPACK_PP_ITERATION_4 163 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 164 && MSGPACK_PP_ITERATION_FINISH_4 >= 164 +# define MSGPACK_PP_ITERATION_4 164 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 165 && MSGPACK_PP_ITERATION_FINISH_4 >= 165 +# define MSGPACK_PP_ITERATION_4 165 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 166 && MSGPACK_PP_ITERATION_FINISH_4 >= 166 +# define MSGPACK_PP_ITERATION_4 166 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 167 && MSGPACK_PP_ITERATION_FINISH_4 >= 167 +# define MSGPACK_PP_ITERATION_4 167 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 168 && MSGPACK_PP_ITERATION_FINISH_4 >= 168 +# define MSGPACK_PP_ITERATION_4 168 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 169 && MSGPACK_PP_ITERATION_FINISH_4 >= 169 +# define MSGPACK_PP_ITERATION_4 169 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 170 && MSGPACK_PP_ITERATION_FINISH_4 >= 170 +# define MSGPACK_PP_ITERATION_4 170 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 171 && MSGPACK_PP_ITERATION_FINISH_4 >= 171 +# define MSGPACK_PP_ITERATION_4 171 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 172 && MSGPACK_PP_ITERATION_FINISH_4 >= 172 +# define MSGPACK_PP_ITERATION_4 172 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 173 && MSGPACK_PP_ITERATION_FINISH_4 >= 173 +# define MSGPACK_PP_ITERATION_4 173 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 174 && MSGPACK_PP_ITERATION_FINISH_4 >= 174 +# define MSGPACK_PP_ITERATION_4 174 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 175 && MSGPACK_PP_ITERATION_FINISH_4 >= 175 +# define MSGPACK_PP_ITERATION_4 175 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 176 && MSGPACK_PP_ITERATION_FINISH_4 >= 176 +# define MSGPACK_PP_ITERATION_4 176 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 177 && MSGPACK_PP_ITERATION_FINISH_4 >= 177 +# define MSGPACK_PP_ITERATION_4 177 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 178 && MSGPACK_PP_ITERATION_FINISH_4 >= 178 +# define MSGPACK_PP_ITERATION_4 178 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 179 && MSGPACK_PP_ITERATION_FINISH_4 >= 179 +# define MSGPACK_PP_ITERATION_4 179 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 180 && MSGPACK_PP_ITERATION_FINISH_4 >= 180 +# define MSGPACK_PP_ITERATION_4 180 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 181 && MSGPACK_PP_ITERATION_FINISH_4 >= 181 +# define MSGPACK_PP_ITERATION_4 181 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 182 && MSGPACK_PP_ITERATION_FINISH_4 >= 182 +# define MSGPACK_PP_ITERATION_4 182 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 183 && MSGPACK_PP_ITERATION_FINISH_4 >= 183 +# define MSGPACK_PP_ITERATION_4 183 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 184 && MSGPACK_PP_ITERATION_FINISH_4 >= 184 +# define MSGPACK_PP_ITERATION_4 184 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 185 && MSGPACK_PP_ITERATION_FINISH_4 >= 185 +# define MSGPACK_PP_ITERATION_4 185 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 186 && MSGPACK_PP_ITERATION_FINISH_4 >= 186 +# define MSGPACK_PP_ITERATION_4 186 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 187 && MSGPACK_PP_ITERATION_FINISH_4 >= 187 +# define MSGPACK_PP_ITERATION_4 187 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 188 && MSGPACK_PP_ITERATION_FINISH_4 >= 188 +# define MSGPACK_PP_ITERATION_4 188 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 189 && MSGPACK_PP_ITERATION_FINISH_4 >= 189 +# define MSGPACK_PP_ITERATION_4 189 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 190 && MSGPACK_PP_ITERATION_FINISH_4 >= 190 +# define MSGPACK_PP_ITERATION_4 190 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 191 && MSGPACK_PP_ITERATION_FINISH_4 >= 191 +# define MSGPACK_PP_ITERATION_4 191 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 192 && MSGPACK_PP_ITERATION_FINISH_4 >= 192 +# define MSGPACK_PP_ITERATION_4 192 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 193 && MSGPACK_PP_ITERATION_FINISH_4 >= 193 +# define MSGPACK_PP_ITERATION_4 193 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 194 && MSGPACK_PP_ITERATION_FINISH_4 >= 194 +# define MSGPACK_PP_ITERATION_4 194 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 195 && MSGPACK_PP_ITERATION_FINISH_4 >= 195 +# define MSGPACK_PP_ITERATION_4 195 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 196 && MSGPACK_PP_ITERATION_FINISH_4 >= 196 +# define MSGPACK_PP_ITERATION_4 196 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 197 && MSGPACK_PP_ITERATION_FINISH_4 >= 197 +# define MSGPACK_PP_ITERATION_4 197 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 198 && MSGPACK_PP_ITERATION_FINISH_4 >= 198 +# define MSGPACK_PP_ITERATION_4 198 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 199 && MSGPACK_PP_ITERATION_FINISH_4 >= 199 +# define MSGPACK_PP_ITERATION_4 199 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 200 && MSGPACK_PP_ITERATION_FINISH_4 >= 200 +# define MSGPACK_PP_ITERATION_4 200 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 201 && MSGPACK_PP_ITERATION_FINISH_4 >= 201 +# define MSGPACK_PP_ITERATION_4 201 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 202 && MSGPACK_PP_ITERATION_FINISH_4 >= 202 +# define MSGPACK_PP_ITERATION_4 202 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 203 && MSGPACK_PP_ITERATION_FINISH_4 >= 203 +# define MSGPACK_PP_ITERATION_4 203 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 204 && MSGPACK_PP_ITERATION_FINISH_4 >= 204 +# define MSGPACK_PP_ITERATION_4 204 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 205 && MSGPACK_PP_ITERATION_FINISH_4 >= 205 +# define MSGPACK_PP_ITERATION_4 205 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 206 && MSGPACK_PP_ITERATION_FINISH_4 >= 206 +# define MSGPACK_PP_ITERATION_4 206 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 207 && MSGPACK_PP_ITERATION_FINISH_4 >= 207 +# define MSGPACK_PP_ITERATION_4 207 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 208 && MSGPACK_PP_ITERATION_FINISH_4 >= 208 +# define MSGPACK_PP_ITERATION_4 208 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 209 && MSGPACK_PP_ITERATION_FINISH_4 >= 209 +# define MSGPACK_PP_ITERATION_4 209 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 210 && MSGPACK_PP_ITERATION_FINISH_4 >= 210 +# define MSGPACK_PP_ITERATION_4 210 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 211 && MSGPACK_PP_ITERATION_FINISH_4 >= 211 +# define MSGPACK_PP_ITERATION_4 211 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 212 && MSGPACK_PP_ITERATION_FINISH_4 >= 212 +# define MSGPACK_PP_ITERATION_4 212 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 213 && MSGPACK_PP_ITERATION_FINISH_4 >= 213 +# define MSGPACK_PP_ITERATION_4 213 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 214 && MSGPACK_PP_ITERATION_FINISH_4 >= 214 +# define MSGPACK_PP_ITERATION_4 214 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 215 && MSGPACK_PP_ITERATION_FINISH_4 >= 215 +# define MSGPACK_PP_ITERATION_4 215 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 216 && MSGPACK_PP_ITERATION_FINISH_4 >= 216 +# define MSGPACK_PP_ITERATION_4 216 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 217 && MSGPACK_PP_ITERATION_FINISH_4 >= 217 +# define MSGPACK_PP_ITERATION_4 217 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 218 && MSGPACK_PP_ITERATION_FINISH_4 >= 218 +# define MSGPACK_PP_ITERATION_4 218 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 219 && MSGPACK_PP_ITERATION_FINISH_4 >= 219 +# define MSGPACK_PP_ITERATION_4 219 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 220 && MSGPACK_PP_ITERATION_FINISH_4 >= 220 +# define MSGPACK_PP_ITERATION_4 220 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 221 && MSGPACK_PP_ITERATION_FINISH_4 >= 221 +# define MSGPACK_PP_ITERATION_4 221 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 222 && MSGPACK_PP_ITERATION_FINISH_4 >= 222 +# define MSGPACK_PP_ITERATION_4 222 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 223 && MSGPACK_PP_ITERATION_FINISH_4 >= 223 +# define MSGPACK_PP_ITERATION_4 223 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 224 && MSGPACK_PP_ITERATION_FINISH_4 >= 224 +# define MSGPACK_PP_ITERATION_4 224 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 225 && MSGPACK_PP_ITERATION_FINISH_4 >= 225 +# define MSGPACK_PP_ITERATION_4 225 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 226 && MSGPACK_PP_ITERATION_FINISH_4 >= 226 +# define MSGPACK_PP_ITERATION_4 226 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 227 && MSGPACK_PP_ITERATION_FINISH_4 >= 227 +# define MSGPACK_PP_ITERATION_4 227 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 228 && MSGPACK_PP_ITERATION_FINISH_4 >= 228 +# define MSGPACK_PP_ITERATION_4 228 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 229 && MSGPACK_PP_ITERATION_FINISH_4 >= 229 +# define MSGPACK_PP_ITERATION_4 229 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 230 && MSGPACK_PP_ITERATION_FINISH_4 >= 230 +# define MSGPACK_PP_ITERATION_4 230 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 231 && MSGPACK_PP_ITERATION_FINISH_4 >= 231 +# define MSGPACK_PP_ITERATION_4 231 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 232 && MSGPACK_PP_ITERATION_FINISH_4 >= 232 +# define MSGPACK_PP_ITERATION_4 232 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 233 && MSGPACK_PP_ITERATION_FINISH_4 >= 233 +# define MSGPACK_PP_ITERATION_4 233 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 234 && MSGPACK_PP_ITERATION_FINISH_4 >= 234 +# define MSGPACK_PP_ITERATION_4 234 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 235 && MSGPACK_PP_ITERATION_FINISH_4 >= 235 +# define MSGPACK_PP_ITERATION_4 235 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 236 && MSGPACK_PP_ITERATION_FINISH_4 >= 236 +# define MSGPACK_PP_ITERATION_4 236 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 237 && MSGPACK_PP_ITERATION_FINISH_4 >= 237 +# define MSGPACK_PP_ITERATION_4 237 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 238 && MSGPACK_PP_ITERATION_FINISH_4 >= 238 +# define MSGPACK_PP_ITERATION_4 238 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 239 && MSGPACK_PP_ITERATION_FINISH_4 >= 239 +# define MSGPACK_PP_ITERATION_4 239 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 240 && MSGPACK_PP_ITERATION_FINISH_4 >= 240 +# define MSGPACK_PP_ITERATION_4 240 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 241 && MSGPACK_PP_ITERATION_FINISH_4 >= 241 +# define MSGPACK_PP_ITERATION_4 241 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 242 && MSGPACK_PP_ITERATION_FINISH_4 >= 242 +# define MSGPACK_PP_ITERATION_4 242 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 243 && MSGPACK_PP_ITERATION_FINISH_4 >= 243 +# define MSGPACK_PP_ITERATION_4 243 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 244 && MSGPACK_PP_ITERATION_FINISH_4 >= 244 +# define MSGPACK_PP_ITERATION_4 244 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 245 && MSGPACK_PP_ITERATION_FINISH_4 >= 245 +# define MSGPACK_PP_ITERATION_4 245 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 246 && MSGPACK_PP_ITERATION_FINISH_4 >= 246 +# define MSGPACK_PP_ITERATION_4 246 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 247 && MSGPACK_PP_ITERATION_FINISH_4 >= 247 +# define MSGPACK_PP_ITERATION_4 247 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 248 && MSGPACK_PP_ITERATION_FINISH_4 >= 248 +# define MSGPACK_PP_ITERATION_4 248 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 249 && MSGPACK_PP_ITERATION_FINISH_4 >= 249 +# define MSGPACK_PP_ITERATION_4 249 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 250 && MSGPACK_PP_ITERATION_FINISH_4 >= 250 +# define MSGPACK_PP_ITERATION_4 250 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 251 && MSGPACK_PP_ITERATION_FINISH_4 >= 251 +# define MSGPACK_PP_ITERATION_4 251 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 252 && MSGPACK_PP_ITERATION_FINISH_4 >= 252 +# define MSGPACK_PP_ITERATION_4 252 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 253 && MSGPACK_PP_ITERATION_FINISH_4 >= 253 +# define MSGPACK_PP_ITERATION_4 253 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 254 && MSGPACK_PP_ITERATION_FINISH_4 >= 254 +# define MSGPACK_PP_ITERATION_4 254 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 255 && MSGPACK_PP_ITERATION_FINISH_4 >= 255 +# define MSGPACK_PP_ITERATION_4 255 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_START_4 <= 256 && MSGPACK_PP_ITERATION_FINISH_4 >= 256 +# define MSGPACK_PP_ITERATION_4 256 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# endif +# +# undef MSGPACK_PP_ITERATION_DEPTH +# define MSGPACK_PP_ITERATION_DEPTH() 3 +# +# undef MSGPACK_PP_ITERATION_START_4 +# undef MSGPACK_PP_ITERATION_FINISH_4 +# undef MSGPACK_PP_FILENAME_4 +# +# undef MSGPACK_PP_ITERATION_FLAGS_4 +# undef MSGPACK_PP_ITERATION_PARAMS_4 diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward5.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward5.hpp new file mode 100644 index 000000000000..7d4ef1981ee1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/forward5.hpp @@ -0,0 +1,1338 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# if defined(MSGPACK_PP_ITERATION_LIMITS) +# if !defined(MSGPACK_PP_FILENAME_5) +# error MSGPACK_PP_ERROR: depth #5 filename is not defined +# endif +# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_ITERATION_LIMITS) +# include +# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_ITERATION_LIMITS) +# include +# define MSGPACK_PP_ITERATION_FLAGS_5() 0 +# undef MSGPACK_PP_ITERATION_LIMITS +# elif defined(MSGPACK_PP_ITERATION_PARAMS_5) +# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(0, MSGPACK_PP_ITERATION_PARAMS_5) +# include +# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(1, MSGPACK_PP_ITERATION_PARAMS_5) +# include +# define MSGPACK_PP_FILENAME_5 MSGPACK_PP_ARRAY_ELEM(2, MSGPACK_PP_ITERATION_PARAMS_5) +# if MSGPACK_PP_ARRAY_SIZE(MSGPACK_PP_ITERATION_PARAMS_5) >= 4 +# define MSGPACK_PP_ITERATION_FLAGS_5() MSGPACK_PP_ARRAY_ELEM(3, MSGPACK_PP_ITERATION_PARAMS_5) +# else +# define MSGPACK_PP_ITERATION_FLAGS_5() 0 +# endif +# else +# error MSGPACK_PP_ERROR: depth #5 iteration boundaries or filename not defined +# endif +# +# undef MSGPACK_PP_ITERATION_DEPTH +# define MSGPACK_PP_ITERATION_DEPTH() 5 +# +# if (MSGPACK_PP_ITERATION_START_5) > (MSGPACK_PP_ITERATION_FINISH_5) +# include +# else +# if MSGPACK_PP_ITERATION_START_5 <= 0 && MSGPACK_PP_ITERATION_FINISH_5 >= 0 +# define MSGPACK_PP_ITERATION_5 0 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 1 && MSGPACK_PP_ITERATION_FINISH_5 >= 1 +# define MSGPACK_PP_ITERATION_5 1 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 2 && MSGPACK_PP_ITERATION_FINISH_5 >= 2 +# define MSGPACK_PP_ITERATION_5 2 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 3 && MSGPACK_PP_ITERATION_FINISH_5 >= 3 +# define MSGPACK_PP_ITERATION_5 3 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 4 && MSGPACK_PP_ITERATION_FINISH_5 >= 4 +# define MSGPACK_PP_ITERATION_5 4 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 5 && MSGPACK_PP_ITERATION_FINISH_5 >= 5 +# define MSGPACK_PP_ITERATION_5 5 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 6 && MSGPACK_PP_ITERATION_FINISH_5 >= 6 +# define MSGPACK_PP_ITERATION_5 6 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 7 && MSGPACK_PP_ITERATION_FINISH_5 >= 7 +# define MSGPACK_PP_ITERATION_5 7 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 8 && MSGPACK_PP_ITERATION_FINISH_5 >= 8 +# define MSGPACK_PP_ITERATION_5 8 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 9 && MSGPACK_PP_ITERATION_FINISH_5 >= 9 +# define MSGPACK_PP_ITERATION_5 9 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 10 && MSGPACK_PP_ITERATION_FINISH_5 >= 10 +# define MSGPACK_PP_ITERATION_5 10 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 11 && MSGPACK_PP_ITERATION_FINISH_5 >= 11 +# define MSGPACK_PP_ITERATION_5 11 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 12 && MSGPACK_PP_ITERATION_FINISH_5 >= 12 +# define MSGPACK_PP_ITERATION_5 12 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 13 && MSGPACK_PP_ITERATION_FINISH_5 >= 13 +# define MSGPACK_PP_ITERATION_5 13 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 14 && MSGPACK_PP_ITERATION_FINISH_5 >= 14 +# define MSGPACK_PP_ITERATION_5 14 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 15 && MSGPACK_PP_ITERATION_FINISH_5 >= 15 +# define MSGPACK_PP_ITERATION_5 15 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 16 && MSGPACK_PP_ITERATION_FINISH_5 >= 16 +# define MSGPACK_PP_ITERATION_5 16 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 17 && MSGPACK_PP_ITERATION_FINISH_5 >= 17 +# define MSGPACK_PP_ITERATION_5 17 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 18 && MSGPACK_PP_ITERATION_FINISH_5 >= 18 +# define MSGPACK_PP_ITERATION_5 18 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 19 && MSGPACK_PP_ITERATION_FINISH_5 >= 19 +# define MSGPACK_PP_ITERATION_5 19 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 20 && MSGPACK_PP_ITERATION_FINISH_5 >= 20 +# define MSGPACK_PP_ITERATION_5 20 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 21 && MSGPACK_PP_ITERATION_FINISH_5 >= 21 +# define MSGPACK_PP_ITERATION_5 21 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 22 && MSGPACK_PP_ITERATION_FINISH_5 >= 22 +# define MSGPACK_PP_ITERATION_5 22 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 23 && MSGPACK_PP_ITERATION_FINISH_5 >= 23 +# define MSGPACK_PP_ITERATION_5 23 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 24 && MSGPACK_PP_ITERATION_FINISH_5 >= 24 +# define MSGPACK_PP_ITERATION_5 24 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 25 && MSGPACK_PP_ITERATION_FINISH_5 >= 25 +# define MSGPACK_PP_ITERATION_5 25 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 26 && MSGPACK_PP_ITERATION_FINISH_5 >= 26 +# define MSGPACK_PP_ITERATION_5 26 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 27 && MSGPACK_PP_ITERATION_FINISH_5 >= 27 +# define MSGPACK_PP_ITERATION_5 27 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 28 && MSGPACK_PP_ITERATION_FINISH_5 >= 28 +# define MSGPACK_PP_ITERATION_5 28 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 29 && MSGPACK_PP_ITERATION_FINISH_5 >= 29 +# define MSGPACK_PP_ITERATION_5 29 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 30 && MSGPACK_PP_ITERATION_FINISH_5 >= 30 +# define MSGPACK_PP_ITERATION_5 30 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 31 && MSGPACK_PP_ITERATION_FINISH_5 >= 31 +# define MSGPACK_PP_ITERATION_5 31 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 32 && MSGPACK_PP_ITERATION_FINISH_5 >= 32 +# define MSGPACK_PP_ITERATION_5 32 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 33 && MSGPACK_PP_ITERATION_FINISH_5 >= 33 +# define MSGPACK_PP_ITERATION_5 33 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 34 && MSGPACK_PP_ITERATION_FINISH_5 >= 34 +# define MSGPACK_PP_ITERATION_5 34 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 35 && MSGPACK_PP_ITERATION_FINISH_5 >= 35 +# define MSGPACK_PP_ITERATION_5 35 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 36 && MSGPACK_PP_ITERATION_FINISH_5 >= 36 +# define MSGPACK_PP_ITERATION_5 36 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 37 && MSGPACK_PP_ITERATION_FINISH_5 >= 37 +# define MSGPACK_PP_ITERATION_5 37 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 38 && MSGPACK_PP_ITERATION_FINISH_5 >= 38 +# define MSGPACK_PP_ITERATION_5 38 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 39 && MSGPACK_PP_ITERATION_FINISH_5 >= 39 +# define MSGPACK_PP_ITERATION_5 39 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 40 && MSGPACK_PP_ITERATION_FINISH_5 >= 40 +# define MSGPACK_PP_ITERATION_5 40 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 41 && MSGPACK_PP_ITERATION_FINISH_5 >= 41 +# define MSGPACK_PP_ITERATION_5 41 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 42 && MSGPACK_PP_ITERATION_FINISH_5 >= 42 +# define MSGPACK_PP_ITERATION_5 42 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 43 && MSGPACK_PP_ITERATION_FINISH_5 >= 43 +# define MSGPACK_PP_ITERATION_5 43 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 44 && MSGPACK_PP_ITERATION_FINISH_5 >= 44 +# define MSGPACK_PP_ITERATION_5 44 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 45 && MSGPACK_PP_ITERATION_FINISH_5 >= 45 +# define MSGPACK_PP_ITERATION_5 45 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 46 && MSGPACK_PP_ITERATION_FINISH_5 >= 46 +# define MSGPACK_PP_ITERATION_5 46 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 47 && MSGPACK_PP_ITERATION_FINISH_5 >= 47 +# define MSGPACK_PP_ITERATION_5 47 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 48 && MSGPACK_PP_ITERATION_FINISH_5 >= 48 +# define MSGPACK_PP_ITERATION_5 48 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 49 && MSGPACK_PP_ITERATION_FINISH_5 >= 49 +# define MSGPACK_PP_ITERATION_5 49 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 50 && MSGPACK_PP_ITERATION_FINISH_5 >= 50 +# define MSGPACK_PP_ITERATION_5 50 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 51 && MSGPACK_PP_ITERATION_FINISH_5 >= 51 +# define MSGPACK_PP_ITERATION_5 51 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 52 && MSGPACK_PP_ITERATION_FINISH_5 >= 52 +# define MSGPACK_PP_ITERATION_5 52 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 53 && MSGPACK_PP_ITERATION_FINISH_5 >= 53 +# define MSGPACK_PP_ITERATION_5 53 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 54 && MSGPACK_PP_ITERATION_FINISH_5 >= 54 +# define MSGPACK_PP_ITERATION_5 54 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 55 && MSGPACK_PP_ITERATION_FINISH_5 >= 55 +# define MSGPACK_PP_ITERATION_5 55 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 56 && MSGPACK_PP_ITERATION_FINISH_5 >= 56 +# define MSGPACK_PP_ITERATION_5 56 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 57 && MSGPACK_PP_ITERATION_FINISH_5 >= 57 +# define MSGPACK_PP_ITERATION_5 57 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 58 && MSGPACK_PP_ITERATION_FINISH_5 >= 58 +# define MSGPACK_PP_ITERATION_5 58 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 59 && MSGPACK_PP_ITERATION_FINISH_5 >= 59 +# define MSGPACK_PP_ITERATION_5 59 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 60 && MSGPACK_PP_ITERATION_FINISH_5 >= 60 +# define MSGPACK_PP_ITERATION_5 60 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 61 && MSGPACK_PP_ITERATION_FINISH_5 >= 61 +# define MSGPACK_PP_ITERATION_5 61 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 62 && MSGPACK_PP_ITERATION_FINISH_5 >= 62 +# define MSGPACK_PP_ITERATION_5 62 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 63 && MSGPACK_PP_ITERATION_FINISH_5 >= 63 +# define MSGPACK_PP_ITERATION_5 63 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 64 && MSGPACK_PP_ITERATION_FINISH_5 >= 64 +# define MSGPACK_PP_ITERATION_5 64 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 65 && MSGPACK_PP_ITERATION_FINISH_5 >= 65 +# define MSGPACK_PP_ITERATION_5 65 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 66 && MSGPACK_PP_ITERATION_FINISH_5 >= 66 +# define MSGPACK_PP_ITERATION_5 66 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 67 && MSGPACK_PP_ITERATION_FINISH_5 >= 67 +# define MSGPACK_PP_ITERATION_5 67 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 68 && MSGPACK_PP_ITERATION_FINISH_5 >= 68 +# define MSGPACK_PP_ITERATION_5 68 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 69 && MSGPACK_PP_ITERATION_FINISH_5 >= 69 +# define MSGPACK_PP_ITERATION_5 69 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 70 && MSGPACK_PP_ITERATION_FINISH_5 >= 70 +# define MSGPACK_PP_ITERATION_5 70 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 71 && MSGPACK_PP_ITERATION_FINISH_5 >= 71 +# define MSGPACK_PP_ITERATION_5 71 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 72 && MSGPACK_PP_ITERATION_FINISH_5 >= 72 +# define MSGPACK_PP_ITERATION_5 72 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 73 && MSGPACK_PP_ITERATION_FINISH_5 >= 73 +# define MSGPACK_PP_ITERATION_5 73 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 74 && MSGPACK_PP_ITERATION_FINISH_5 >= 74 +# define MSGPACK_PP_ITERATION_5 74 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 75 && MSGPACK_PP_ITERATION_FINISH_5 >= 75 +# define MSGPACK_PP_ITERATION_5 75 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 76 && MSGPACK_PP_ITERATION_FINISH_5 >= 76 +# define MSGPACK_PP_ITERATION_5 76 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 77 && MSGPACK_PP_ITERATION_FINISH_5 >= 77 +# define MSGPACK_PP_ITERATION_5 77 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 78 && MSGPACK_PP_ITERATION_FINISH_5 >= 78 +# define MSGPACK_PP_ITERATION_5 78 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 79 && MSGPACK_PP_ITERATION_FINISH_5 >= 79 +# define MSGPACK_PP_ITERATION_5 79 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 80 && MSGPACK_PP_ITERATION_FINISH_5 >= 80 +# define MSGPACK_PP_ITERATION_5 80 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 81 && MSGPACK_PP_ITERATION_FINISH_5 >= 81 +# define MSGPACK_PP_ITERATION_5 81 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 82 && MSGPACK_PP_ITERATION_FINISH_5 >= 82 +# define MSGPACK_PP_ITERATION_5 82 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 83 && MSGPACK_PP_ITERATION_FINISH_5 >= 83 +# define MSGPACK_PP_ITERATION_5 83 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 84 && MSGPACK_PP_ITERATION_FINISH_5 >= 84 +# define MSGPACK_PP_ITERATION_5 84 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 85 && MSGPACK_PP_ITERATION_FINISH_5 >= 85 +# define MSGPACK_PP_ITERATION_5 85 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 86 && MSGPACK_PP_ITERATION_FINISH_5 >= 86 +# define MSGPACK_PP_ITERATION_5 86 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 87 && MSGPACK_PP_ITERATION_FINISH_5 >= 87 +# define MSGPACK_PP_ITERATION_5 87 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 88 && MSGPACK_PP_ITERATION_FINISH_5 >= 88 +# define MSGPACK_PP_ITERATION_5 88 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 89 && MSGPACK_PP_ITERATION_FINISH_5 >= 89 +# define MSGPACK_PP_ITERATION_5 89 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 90 && MSGPACK_PP_ITERATION_FINISH_5 >= 90 +# define MSGPACK_PP_ITERATION_5 90 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 91 && MSGPACK_PP_ITERATION_FINISH_5 >= 91 +# define MSGPACK_PP_ITERATION_5 91 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 92 && MSGPACK_PP_ITERATION_FINISH_5 >= 92 +# define MSGPACK_PP_ITERATION_5 92 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 93 && MSGPACK_PP_ITERATION_FINISH_5 >= 93 +# define MSGPACK_PP_ITERATION_5 93 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 94 && MSGPACK_PP_ITERATION_FINISH_5 >= 94 +# define MSGPACK_PP_ITERATION_5 94 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 95 && MSGPACK_PP_ITERATION_FINISH_5 >= 95 +# define MSGPACK_PP_ITERATION_5 95 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 96 && MSGPACK_PP_ITERATION_FINISH_5 >= 96 +# define MSGPACK_PP_ITERATION_5 96 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 97 && MSGPACK_PP_ITERATION_FINISH_5 >= 97 +# define MSGPACK_PP_ITERATION_5 97 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 98 && MSGPACK_PP_ITERATION_FINISH_5 >= 98 +# define MSGPACK_PP_ITERATION_5 98 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 99 && MSGPACK_PP_ITERATION_FINISH_5 >= 99 +# define MSGPACK_PP_ITERATION_5 99 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 100 && MSGPACK_PP_ITERATION_FINISH_5 >= 100 +# define MSGPACK_PP_ITERATION_5 100 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 101 && MSGPACK_PP_ITERATION_FINISH_5 >= 101 +# define MSGPACK_PP_ITERATION_5 101 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 102 && MSGPACK_PP_ITERATION_FINISH_5 >= 102 +# define MSGPACK_PP_ITERATION_5 102 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 103 && MSGPACK_PP_ITERATION_FINISH_5 >= 103 +# define MSGPACK_PP_ITERATION_5 103 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 104 && MSGPACK_PP_ITERATION_FINISH_5 >= 104 +# define MSGPACK_PP_ITERATION_5 104 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 105 && MSGPACK_PP_ITERATION_FINISH_5 >= 105 +# define MSGPACK_PP_ITERATION_5 105 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 106 && MSGPACK_PP_ITERATION_FINISH_5 >= 106 +# define MSGPACK_PP_ITERATION_5 106 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 107 && MSGPACK_PP_ITERATION_FINISH_5 >= 107 +# define MSGPACK_PP_ITERATION_5 107 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 108 && MSGPACK_PP_ITERATION_FINISH_5 >= 108 +# define MSGPACK_PP_ITERATION_5 108 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 109 && MSGPACK_PP_ITERATION_FINISH_5 >= 109 +# define MSGPACK_PP_ITERATION_5 109 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 110 && MSGPACK_PP_ITERATION_FINISH_5 >= 110 +# define MSGPACK_PP_ITERATION_5 110 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 111 && MSGPACK_PP_ITERATION_FINISH_5 >= 111 +# define MSGPACK_PP_ITERATION_5 111 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 112 && MSGPACK_PP_ITERATION_FINISH_5 >= 112 +# define MSGPACK_PP_ITERATION_5 112 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 113 && MSGPACK_PP_ITERATION_FINISH_5 >= 113 +# define MSGPACK_PP_ITERATION_5 113 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 114 && MSGPACK_PP_ITERATION_FINISH_5 >= 114 +# define MSGPACK_PP_ITERATION_5 114 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 115 && MSGPACK_PP_ITERATION_FINISH_5 >= 115 +# define MSGPACK_PP_ITERATION_5 115 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 116 && MSGPACK_PP_ITERATION_FINISH_5 >= 116 +# define MSGPACK_PP_ITERATION_5 116 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 117 && MSGPACK_PP_ITERATION_FINISH_5 >= 117 +# define MSGPACK_PP_ITERATION_5 117 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 118 && MSGPACK_PP_ITERATION_FINISH_5 >= 118 +# define MSGPACK_PP_ITERATION_5 118 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 119 && MSGPACK_PP_ITERATION_FINISH_5 >= 119 +# define MSGPACK_PP_ITERATION_5 119 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 120 && MSGPACK_PP_ITERATION_FINISH_5 >= 120 +# define MSGPACK_PP_ITERATION_5 120 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 121 && MSGPACK_PP_ITERATION_FINISH_5 >= 121 +# define MSGPACK_PP_ITERATION_5 121 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 122 && MSGPACK_PP_ITERATION_FINISH_5 >= 122 +# define MSGPACK_PP_ITERATION_5 122 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 123 && MSGPACK_PP_ITERATION_FINISH_5 >= 123 +# define MSGPACK_PP_ITERATION_5 123 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 124 && MSGPACK_PP_ITERATION_FINISH_5 >= 124 +# define MSGPACK_PP_ITERATION_5 124 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 125 && MSGPACK_PP_ITERATION_FINISH_5 >= 125 +# define MSGPACK_PP_ITERATION_5 125 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 126 && MSGPACK_PP_ITERATION_FINISH_5 >= 126 +# define MSGPACK_PP_ITERATION_5 126 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 127 && MSGPACK_PP_ITERATION_FINISH_5 >= 127 +# define MSGPACK_PP_ITERATION_5 127 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 128 && MSGPACK_PP_ITERATION_FINISH_5 >= 128 +# define MSGPACK_PP_ITERATION_5 128 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 129 && MSGPACK_PP_ITERATION_FINISH_5 >= 129 +# define MSGPACK_PP_ITERATION_5 129 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 130 && MSGPACK_PP_ITERATION_FINISH_5 >= 130 +# define MSGPACK_PP_ITERATION_5 130 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 131 && MSGPACK_PP_ITERATION_FINISH_5 >= 131 +# define MSGPACK_PP_ITERATION_5 131 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 132 && MSGPACK_PP_ITERATION_FINISH_5 >= 132 +# define MSGPACK_PP_ITERATION_5 132 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 133 && MSGPACK_PP_ITERATION_FINISH_5 >= 133 +# define MSGPACK_PP_ITERATION_5 133 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 134 && MSGPACK_PP_ITERATION_FINISH_5 >= 134 +# define MSGPACK_PP_ITERATION_5 134 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 135 && MSGPACK_PP_ITERATION_FINISH_5 >= 135 +# define MSGPACK_PP_ITERATION_5 135 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 136 && MSGPACK_PP_ITERATION_FINISH_5 >= 136 +# define MSGPACK_PP_ITERATION_5 136 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 137 && MSGPACK_PP_ITERATION_FINISH_5 >= 137 +# define MSGPACK_PP_ITERATION_5 137 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 138 && MSGPACK_PP_ITERATION_FINISH_5 >= 138 +# define MSGPACK_PP_ITERATION_5 138 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 139 && MSGPACK_PP_ITERATION_FINISH_5 >= 139 +# define MSGPACK_PP_ITERATION_5 139 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 140 && MSGPACK_PP_ITERATION_FINISH_5 >= 140 +# define MSGPACK_PP_ITERATION_5 140 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 141 && MSGPACK_PP_ITERATION_FINISH_5 >= 141 +# define MSGPACK_PP_ITERATION_5 141 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 142 && MSGPACK_PP_ITERATION_FINISH_5 >= 142 +# define MSGPACK_PP_ITERATION_5 142 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 143 && MSGPACK_PP_ITERATION_FINISH_5 >= 143 +# define MSGPACK_PP_ITERATION_5 143 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 144 && MSGPACK_PP_ITERATION_FINISH_5 >= 144 +# define MSGPACK_PP_ITERATION_5 144 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 145 && MSGPACK_PP_ITERATION_FINISH_5 >= 145 +# define MSGPACK_PP_ITERATION_5 145 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 146 && MSGPACK_PP_ITERATION_FINISH_5 >= 146 +# define MSGPACK_PP_ITERATION_5 146 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 147 && MSGPACK_PP_ITERATION_FINISH_5 >= 147 +# define MSGPACK_PP_ITERATION_5 147 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 148 && MSGPACK_PP_ITERATION_FINISH_5 >= 148 +# define MSGPACK_PP_ITERATION_5 148 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 149 && MSGPACK_PP_ITERATION_FINISH_5 >= 149 +# define MSGPACK_PP_ITERATION_5 149 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 150 && MSGPACK_PP_ITERATION_FINISH_5 >= 150 +# define MSGPACK_PP_ITERATION_5 150 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 151 && MSGPACK_PP_ITERATION_FINISH_5 >= 151 +# define MSGPACK_PP_ITERATION_5 151 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 152 && MSGPACK_PP_ITERATION_FINISH_5 >= 152 +# define MSGPACK_PP_ITERATION_5 152 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 153 && MSGPACK_PP_ITERATION_FINISH_5 >= 153 +# define MSGPACK_PP_ITERATION_5 153 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 154 && MSGPACK_PP_ITERATION_FINISH_5 >= 154 +# define MSGPACK_PP_ITERATION_5 154 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 155 && MSGPACK_PP_ITERATION_FINISH_5 >= 155 +# define MSGPACK_PP_ITERATION_5 155 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 156 && MSGPACK_PP_ITERATION_FINISH_5 >= 156 +# define MSGPACK_PP_ITERATION_5 156 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 157 && MSGPACK_PP_ITERATION_FINISH_5 >= 157 +# define MSGPACK_PP_ITERATION_5 157 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 158 && MSGPACK_PP_ITERATION_FINISH_5 >= 158 +# define MSGPACK_PP_ITERATION_5 158 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 159 && MSGPACK_PP_ITERATION_FINISH_5 >= 159 +# define MSGPACK_PP_ITERATION_5 159 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 160 && MSGPACK_PP_ITERATION_FINISH_5 >= 160 +# define MSGPACK_PP_ITERATION_5 160 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 161 && MSGPACK_PP_ITERATION_FINISH_5 >= 161 +# define MSGPACK_PP_ITERATION_5 161 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 162 && MSGPACK_PP_ITERATION_FINISH_5 >= 162 +# define MSGPACK_PP_ITERATION_5 162 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 163 && MSGPACK_PP_ITERATION_FINISH_5 >= 163 +# define MSGPACK_PP_ITERATION_5 163 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 164 && MSGPACK_PP_ITERATION_FINISH_5 >= 164 +# define MSGPACK_PP_ITERATION_5 164 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 165 && MSGPACK_PP_ITERATION_FINISH_5 >= 165 +# define MSGPACK_PP_ITERATION_5 165 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 166 && MSGPACK_PP_ITERATION_FINISH_5 >= 166 +# define MSGPACK_PP_ITERATION_5 166 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 167 && MSGPACK_PP_ITERATION_FINISH_5 >= 167 +# define MSGPACK_PP_ITERATION_5 167 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 168 && MSGPACK_PP_ITERATION_FINISH_5 >= 168 +# define MSGPACK_PP_ITERATION_5 168 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 169 && MSGPACK_PP_ITERATION_FINISH_5 >= 169 +# define MSGPACK_PP_ITERATION_5 169 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 170 && MSGPACK_PP_ITERATION_FINISH_5 >= 170 +# define MSGPACK_PP_ITERATION_5 170 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 171 && MSGPACK_PP_ITERATION_FINISH_5 >= 171 +# define MSGPACK_PP_ITERATION_5 171 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 172 && MSGPACK_PP_ITERATION_FINISH_5 >= 172 +# define MSGPACK_PP_ITERATION_5 172 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 173 && MSGPACK_PP_ITERATION_FINISH_5 >= 173 +# define MSGPACK_PP_ITERATION_5 173 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 174 && MSGPACK_PP_ITERATION_FINISH_5 >= 174 +# define MSGPACK_PP_ITERATION_5 174 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 175 && MSGPACK_PP_ITERATION_FINISH_5 >= 175 +# define MSGPACK_PP_ITERATION_5 175 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 176 && MSGPACK_PP_ITERATION_FINISH_5 >= 176 +# define MSGPACK_PP_ITERATION_5 176 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 177 && MSGPACK_PP_ITERATION_FINISH_5 >= 177 +# define MSGPACK_PP_ITERATION_5 177 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 178 && MSGPACK_PP_ITERATION_FINISH_5 >= 178 +# define MSGPACK_PP_ITERATION_5 178 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 179 && MSGPACK_PP_ITERATION_FINISH_5 >= 179 +# define MSGPACK_PP_ITERATION_5 179 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 180 && MSGPACK_PP_ITERATION_FINISH_5 >= 180 +# define MSGPACK_PP_ITERATION_5 180 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 181 && MSGPACK_PP_ITERATION_FINISH_5 >= 181 +# define MSGPACK_PP_ITERATION_5 181 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 182 && MSGPACK_PP_ITERATION_FINISH_5 >= 182 +# define MSGPACK_PP_ITERATION_5 182 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 183 && MSGPACK_PP_ITERATION_FINISH_5 >= 183 +# define MSGPACK_PP_ITERATION_5 183 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 184 && MSGPACK_PP_ITERATION_FINISH_5 >= 184 +# define MSGPACK_PP_ITERATION_5 184 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 185 && MSGPACK_PP_ITERATION_FINISH_5 >= 185 +# define MSGPACK_PP_ITERATION_5 185 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 186 && MSGPACK_PP_ITERATION_FINISH_5 >= 186 +# define MSGPACK_PP_ITERATION_5 186 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 187 && MSGPACK_PP_ITERATION_FINISH_5 >= 187 +# define MSGPACK_PP_ITERATION_5 187 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 188 && MSGPACK_PP_ITERATION_FINISH_5 >= 188 +# define MSGPACK_PP_ITERATION_5 188 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 189 && MSGPACK_PP_ITERATION_FINISH_5 >= 189 +# define MSGPACK_PP_ITERATION_5 189 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 190 && MSGPACK_PP_ITERATION_FINISH_5 >= 190 +# define MSGPACK_PP_ITERATION_5 190 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 191 && MSGPACK_PP_ITERATION_FINISH_5 >= 191 +# define MSGPACK_PP_ITERATION_5 191 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 192 && MSGPACK_PP_ITERATION_FINISH_5 >= 192 +# define MSGPACK_PP_ITERATION_5 192 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 193 && MSGPACK_PP_ITERATION_FINISH_5 >= 193 +# define MSGPACK_PP_ITERATION_5 193 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 194 && MSGPACK_PP_ITERATION_FINISH_5 >= 194 +# define MSGPACK_PP_ITERATION_5 194 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 195 && MSGPACK_PP_ITERATION_FINISH_5 >= 195 +# define MSGPACK_PP_ITERATION_5 195 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 196 && MSGPACK_PP_ITERATION_FINISH_5 >= 196 +# define MSGPACK_PP_ITERATION_5 196 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 197 && MSGPACK_PP_ITERATION_FINISH_5 >= 197 +# define MSGPACK_PP_ITERATION_5 197 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 198 && MSGPACK_PP_ITERATION_FINISH_5 >= 198 +# define MSGPACK_PP_ITERATION_5 198 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 199 && MSGPACK_PP_ITERATION_FINISH_5 >= 199 +# define MSGPACK_PP_ITERATION_5 199 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 200 && MSGPACK_PP_ITERATION_FINISH_5 >= 200 +# define MSGPACK_PP_ITERATION_5 200 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 201 && MSGPACK_PP_ITERATION_FINISH_5 >= 201 +# define MSGPACK_PP_ITERATION_5 201 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 202 && MSGPACK_PP_ITERATION_FINISH_5 >= 202 +# define MSGPACK_PP_ITERATION_5 202 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 203 && MSGPACK_PP_ITERATION_FINISH_5 >= 203 +# define MSGPACK_PP_ITERATION_5 203 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 204 && MSGPACK_PP_ITERATION_FINISH_5 >= 204 +# define MSGPACK_PP_ITERATION_5 204 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 205 && MSGPACK_PP_ITERATION_FINISH_5 >= 205 +# define MSGPACK_PP_ITERATION_5 205 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 206 && MSGPACK_PP_ITERATION_FINISH_5 >= 206 +# define MSGPACK_PP_ITERATION_5 206 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 207 && MSGPACK_PP_ITERATION_FINISH_5 >= 207 +# define MSGPACK_PP_ITERATION_5 207 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 208 && MSGPACK_PP_ITERATION_FINISH_5 >= 208 +# define MSGPACK_PP_ITERATION_5 208 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 209 && MSGPACK_PP_ITERATION_FINISH_5 >= 209 +# define MSGPACK_PP_ITERATION_5 209 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 210 && MSGPACK_PP_ITERATION_FINISH_5 >= 210 +# define MSGPACK_PP_ITERATION_5 210 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 211 && MSGPACK_PP_ITERATION_FINISH_5 >= 211 +# define MSGPACK_PP_ITERATION_5 211 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 212 && MSGPACK_PP_ITERATION_FINISH_5 >= 212 +# define MSGPACK_PP_ITERATION_5 212 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 213 && MSGPACK_PP_ITERATION_FINISH_5 >= 213 +# define MSGPACK_PP_ITERATION_5 213 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 214 && MSGPACK_PP_ITERATION_FINISH_5 >= 214 +# define MSGPACK_PP_ITERATION_5 214 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 215 && MSGPACK_PP_ITERATION_FINISH_5 >= 215 +# define MSGPACK_PP_ITERATION_5 215 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 216 && MSGPACK_PP_ITERATION_FINISH_5 >= 216 +# define MSGPACK_PP_ITERATION_5 216 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 217 && MSGPACK_PP_ITERATION_FINISH_5 >= 217 +# define MSGPACK_PP_ITERATION_5 217 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 218 && MSGPACK_PP_ITERATION_FINISH_5 >= 218 +# define MSGPACK_PP_ITERATION_5 218 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 219 && MSGPACK_PP_ITERATION_FINISH_5 >= 219 +# define MSGPACK_PP_ITERATION_5 219 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 220 && MSGPACK_PP_ITERATION_FINISH_5 >= 220 +# define MSGPACK_PP_ITERATION_5 220 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 221 && MSGPACK_PP_ITERATION_FINISH_5 >= 221 +# define MSGPACK_PP_ITERATION_5 221 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 222 && MSGPACK_PP_ITERATION_FINISH_5 >= 222 +# define MSGPACK_PP_ITERATION_5 222 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 223 && MSGPACK_PP_ITERATION_FINISH_5 >= 223 +# define MSGPACK_PP_ITERATION_5 223 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 224 && MSGPACK_PP_ITERATION_FINISH_5 >= 224 +# define MSGPACK_PP_ITERATION_5 224 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 225 && MSGPACK_PP_ITERATION_FINISH_5 >= 225 +# define MSGPACK_PP_ITERATION_5 225 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 226 && MSGPACK_PP_ITERATION_FINISH_5 >= 226 +# define MSGPACK_PP_ITERATION_5 226 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 227 && MSGPACK_PP_ITERATION_FINISH_5 >= 227 +# define MSGPACK_PP_ITERATION_5 227 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 228 && MSGPACK_PP_ITERATION_FINISH_5 >= 228 +# define MSGPACK_PP_ITERATION_5 228 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 229 && MSGPACK_PP_ITERATION_FINISH_5 >= 229 +# define MSGPACK_PP_ITERATION_5 229 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 230 && MSGPACK_PP_ITERATION_FINISH_5 >= 230 +# define MSGPACK_PP_ITERATION_5 230 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 231 && MSGPACK_PP_ITERATION_FINISH_5 >= 231 +# define MSGPACK_PP_ITERATION_5 231 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 232 && MSGPACK_PP_ITERATION_FINISH_5 >= 232 +# define MSGPACK_PP_ITERATION_5 232 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 233 && MSGPACK_PP_ITERATION_FINISH_5 >= 233 +# define MSGPACK_PP_ITERATION_5 233 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 234 && MSGPACK_PP_ITERATION_FINISH_5 >= 234 +# define MSGPACK_PP_ITERATION_5 234 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 235 && MSGPACK_PP_ITERATION_FINISH_5 >= 235 +# define MSGPACK_PP_ITERATION_5 235 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 236 && MSGPACK_PP_ITERATION_FINISH_5 >= 236 +# define MSGPACK_PP_ITERATION_5 236 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 237 && MSGPACK_PP_ITERATION_FINISH_5 >= 237 +# define MSGPACK_PP_ITERATION_5 237 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 238 && MSGPACK_PP_ITERATION_FINISH_5 >= 238 +# define MSGPACK_PP_ITERATION_5 238 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 239 && MSGPACK_PP_ITERATION_FINISH_5 >= 239 +# define MSGPACK_PP_ITERATION_5 239 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 240 && MSGPACK_PP_ITERATION_FINISH_5 >= 240 +# define MSGPACK_PP_ITERATION_5 240 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 241 && MSGPACK_PP_ITERATION_FINISH_5 >= 241 +# define MSGPACK_PP_ITERATION_5 241 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 242 && MSGPACK_PP_ITERATION_FINISH_5 >= 242 +# define MSGPACK_PP_ITERATION_5 242 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 243 && MSGPACK_PP_ITERATION_FINISH_5 >= 243 +# define MSGPACK_PP_ITERATION_5 243 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 244 && MSGPACK_PP_ITERATION_FINISH_5 >= 244 +# define MSGPACK_PP_ITERATION_5 244 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 245 && MSGPACK_PP_ITERATION_FINISH_5 >= 245 +# define MSGPACK_PP_ITERATION_5 245 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 246 && MSGPACK_PP_ITERATION_FINISH_5 >= 246 +# define MSGPACK_PP_ITERATION_5 246 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 247 && MSGPACK_PP_ITERATION_FINISH_5 >= 247 +# define MSGPACK_PP_ITERATION_5 247 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 248 && MSGPACK_PP_ITERATION_FINISH_5 >= 248 +# define MSGPACK_PP_ITERATION_5 248 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 249 && MSGPACK_PP_ITERATION_FINISH_5 >= 249 +# define MSGPACK_PP_ITERATION_5 249 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 250 && MSGPACK_PP_ITERATION_FINISH_5 >= 250 +# define MSGPACK_PP_ITERATION_5 250 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 251 && MSGPACK_PP_ITERATION_FINISH_5 >= 251 +# define MSGPACK_PP_ITERATION_5 251 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 252 && MSGPACK_PP_ITERATION_FINISH_5 >= 252 +# define MSGPACK_PP_ITERATION_5 252 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 253 && MSGPACK_PP_ITERATION_FINISH_5 >= 253 +# define MSGPACK_PP_ITERATION_5 253 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 254 && MSGPACK_PP_ITERATION_FINISH_5 >= 254 +# define MSGPACK_PP_ITERATION_5 254 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 255 && MSGPACK_PP_ITERATION_FINISH_5 >= 255 +# define MSGPACK_PP_ITERATION_5 255 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_START_5 <= 256 && MSGPACK_PP_ITERATION_FINISH_5 >= 256 +# define MSGPACK_PP_ITERATION_5 256 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# endif +# +# undef MSGPACK_PP_ITERATION_DEPTH +# define MSGPACK_PP_ITERATION_DEPTH() 4 +# +# undef MSGPACK_PP_ITERATION_START_5 +# undef MSGPACK_PP_ITERATION_FINISH_5 +# undef MSGPACK_PP_FILENAME_5 +# +# undef MSGPACK_PP_ITERATION_FLAGS_5 +# undef MSGPACK_PP_ITERATION_PARAMS_5 diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse1.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse1.hpp new file mode 100644 index 000000000000..fa838a7b78d4 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse1.hpp @@ -0,0 +1,1296 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# if MSGPACK_PP_ITERATION_FINISH_1 <= 256 && MSGPACK_PP_ITERATION_START_1 >= 256 +# define MSGPACK_PP_ITERATION_1 256 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 255 && MSGPACK_PP_ITERATION_START_1 >= 255 +# define MSGPACK_PP_ITERATION_1 255 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 254 && MSGPACK_PP_ITERATION_START_1 >= 254 +# define MSGPACK_PP_ITERATION_1 254 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 253 && MSGPACK_PP_ITERATION_START_1 >= 253 +# define MSGPACK_PP_ITERATION_1 253 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 252 && MSGPACK_PP_ITERATION_START_1 >= 252 +# define MSGPACK_PP_ITERATION_1 252 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 251 && MSGPACK_PP_ITERATION_START_1 >= 251 +# define MSGPACK_PP_ITERATION_1 251 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 250 && MSGPACK_PP_ITERATION_START_1 >= 250 +# define MSGPACK_PP_ITERATION_1 250 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 249 && MSGPACK_PP_ITERATION_START_1 >= 249 +# define MSGPACK_PP_ITERATION_1 249 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 248 && MSGPACK_PP_ITERATION_START_1 >= 248 +# define MSGPACK_PP_ITERATION_1 248 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 247 && MSGPACK_PP_ITERATION_START_1 >= 247 +# define MSGPACK_PP_ITERATION_1 247 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 246 && MSGPACK_PP_ITERATION_START_1 >= 246 +# define MSGPACK_PP_ITERATION_1 246 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 245 && MSGPACK_PP_ITERATION_START_1 >= 245 +# define MSGPACK_PP_ITERATION_1 245 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 244 && MSGPACK_PP_ITERATION_START_1 >= 244 +# define MSGPACK_PP_ITERATION_1 244 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 243 && MSGPACK_PP_ITERATION_START_1 >= 243 +# define MSGPACK_PP_ITERATION_1 243 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 242 && MSGPACK_PP_ITERATION_START_1 >= 242 +# define MSGPACK_PP_ITERATION_1 242 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 241 && MSGPACK_PP_ITERATION_START_1 >= 241 +# define MSGPACK_PP_ITERATION_1 241 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 240 && MSGPACK_PP_ITERATION_START_1 >= 240 +# define MSGPACK_PP_ITERATION_1 240 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 239 && MSGPACK_PP_ITERATION_START_1 >= 239 +# define MSGPACK_PP_ITERATION_1 239 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 238 && MSGPACK_PP_ITERATION_START_1 >= 238 +# define MSGPACK_PP_ITERATION_1 238 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 237 && MSGPACK_PP_ITERATION_START_1 >= 237 +# define MSGPACK_PP_ITERATION_1 237 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 236 && MSGPACK_PP_ITERATION_START_1 >= 236 +# define MSGPACK_PP_ITERATION_1 236 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 235 && MSGPACK_PP_ITERATION_START_1 >= 235 +# define MSGPACK_PP_ITERATION_1 235 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 234 && MSGPACK_PP_ITERATION_START_1 >= 234 +# define MSGPACK_PP_ITERATION_1 234 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 233 && MSGPACK_PP_ITERATION_START_1 >= 233 +# define MSGPACK_PP_ITERATION_1 233 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 232 && MSGPACK_PP_ITERATION_START_1 >= 232 +# define MSGPACK_PP_ITERATION_1 232 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 231 && MSGPACK_PP_ITERATION_START_1 >= 231 +# define MSGPACK_PP_ITERATION_1 231 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 230 && MSGPACK_PP_ITERATION_START_1 >= 230 +# define MSGPACK_PP_ITERATION_1 230 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 229 && MSGPACK_PP_ITERATION_START_1 >= 229 +# define MSGPACK_PP_ITERATION_1 229 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 228 && MSGPACK_PP_ITERATION_START_1 >= 228 +# define MSGPACK_PP_ITERATION_1 228 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 227 && MSGPACK_PP_ITERATION_START_1 >= 227 +# define MSGPACK_PP_ITERATION_1 227 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 226 && MSGPACK_PP_ITERATION_START_1 >= 226 +# define MSGPACK_PP_ITERATION_1 226 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 225 && MSGPACK_PP_ITERATION_START_1 >= 225 +# define MSGPACK_PP_ITERATION_1 225 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 224 && MSGPACK_PP_ITERATION_START_1 >= 224 +# define MSGPACK_PP_ITERATION_1 224 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 223 && MSGPACK_PP_ITERATION_START_1 >= 223 +# define MSGPACK_PP_ITERATION_1 223 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 222 && MSGPACK_PP_ITERATION_START_1 >= 222 +# define MSGPACK_PP_ITERATION_1 222 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 221 && MSGPACK_PP_ITERATION_START_1 >= 221 +# define MSGPACK_PP_ITERATION_1 221 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 220 && MSGPACK_PP_ITERATION_START_1 >= 220 +# define MSGPACK_PP_ITERATION_1 220 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 219 && MSGPACK_PP_ITERATION_START_1 >= 219 +# define MSGPACK_PP_ITERATION_1 219 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 218 && MSGPACK_PP_ITERATION_START_1 >= 218 +# define MSGPACK_PP_ITERATION_1 218 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 217 && MSGPACK_PP_ITERATION_START_1 >= 217 +# define MSGPACK_PP_ITERATION_1 217 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 216 && MSGPACK_PP_ITERATION_START_1 >= 216 +# define MSGPACK_PP_ITERATION_1 216 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 215 && MSGPACK_PP_ITERATION_START_1 >= 215 +# define MSGPACK_PP_ITERATION_1 215 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 214 && MSGPACK_PP_ITERATION_START_1 >= 214 +# define MSGPACK_PP_ITERATION_1 214 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 213 && MSGPACK_PP_ITERATION_START_1 >= 213 +# define MSGPACK_PP_ITERATION_1 213 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 212 && MSGPACK_PP_ITERATION_START_1 >= 212 +# define MSGPACK_PP_ITERATION_1 212 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 211 && MSGPACK_PP_ITERATION_START_1 >= 211 +# define MSGPACK_PP_ITERATION_1 211 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 210 && MSGPACK_PP_ITERATION_START_1 >= 210 +# define MSGPACK_PP_ITERATION_1 210 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 209 && MSGPACK_PP_ITERATION_START_1 >= 209 +# define MSGPACK_PP_ITERATION_1 209 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 208 && MSGPACK_PP_ITERATION_START_1 >= 208 +# define MSGPACK_PP_ITERATION_1 208 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 207 && MSGPACK_PP_ITERATION_START_1 >= 207 +# define MSGPACK_PP_ITERATION_1 207 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 206 && MSGPACK_PP_ITERATION_START_1 >= 206 +# define MSGPACK_PP_ITERATION_1 206 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 205 && MSGPACK_PP_ITERATION_START_1 >= 205 +# define MSGPACK_PP_ITERATION_1 205 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 204 && MSGPACK_PP_ITERATION_START_1 >= 204 +# define MSGPACK_PP_ITERATION_1 204 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 203 && MSGPACK_PP_ITERATION_START_1 >= 203 +# define MSGPACK_PP_ITERATION_1 203 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 202 && MSGPACK_PP_ITERATION_START_1 >= 202 +# define MSGPACK_PP_ITERATION_1 202 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 201 && MSGPACK_PP_ITERATION_START_1 >= 201 +# define MSGPACK_PP_ITERATION_1 201 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 200 && MSGPACK_PP_ITERATION_START_1 >= 200 +# define MSGPACK_PP_ITERATION_1 200 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 199 && MSGPACK_PP_ITERATION_START_1 >= 199 +# define MSGPACK_PP_ITERATION_1 199 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 198 && MSGPACK_PP_ITERATION_START_1 >= 198 +# define MSGPACK_PP_ITERATION_1 198 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 197 && MSGPACK_PP_ITERATION_START_1 >= 197 +# define MSGPACK_PP_ITERATION_1 197 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 196 && MSGPACK_PP_ITERATION_START_1 >= 196 +# define MSGPACK_PP_ITERATION_1 196 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 195 && MSGPACK_PP_ITERATION_START_1 >= 195 +# define MSGPACK_PP_ITERATION_1 195 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 194 && MSGPACK_PP_ITERATION_START_1 >= 194 +# define MSGPACK_PP_ITERATION_1 194 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 193 && MSGPACK_PP_ITERATION_START_1 >= 193 +# define MSGPACK_PP_ITERATION_1 193 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 192 && MSGPACK_PP_ITERATION_START_1 >= 192 +# define MSGPACK_PP_ITERATION_1 192 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 191 && MSGPACK_PP_ITERATION_START_1 >= 191 +# define MSGPACK_PP_ITERATION_1 191 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 190 && MSGPACK_PP_ITERATION_START_1 >= 190 +# define MSGPACK_PP_ITERATION_1 190 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 189 && MSGPACK_PP_ITERATION_START_1 >= 189 +# define MSGPACK_PP_ITERATION_1 189 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 188 && MSGPACK_PP_ITERATION_START_1 >= 188 +# define MSGPACK_PP_ITERATION_1 188 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 187 && MSGPACK_PP_ITERATION_START_1 >= 187 +# define MSGPACK_PP_ITERATION_1 187 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 186 && MSGPACK_PP_ITERATION_START_1 >= 186 +# define MSGPACK_PP_ITERATION_1 186 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 185 && MSGPACK_PP_ITERATION_START_1 >= 185 +# define MSGPACK_PP_ITERATION_1 185 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 184 && MSGPACK_PP_ITERATION_START_1 >= 184 +# define MSGPACK_PP_ITERATION_1 184 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 183 && MSGPACK_PP_ITERATION_START_1 >= 183 +# define MSGPACK_PP_ITERATION_1 183 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 182 && MSGPACK_PP_ITERATION_START_1 >= 182 +# define MSGPACK_PP_ITERATION_1 182 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 181 && MSGPACK_PP_ITERATION_START_1 >= 181 +# define MSGPACK_PP_ITERATION_1 181 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 180 && MSGPACK_PP_ITERATION_START_1 >= 180 +# define MSGPACK_PP_ITERATION_1 180 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 179 && MSGPACK_PP_ITERATION_START_1 >= 179 +# define MSGPACK_PP_ITERATION_1 179 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 178 && MSGPACK_PP_ITERATION_START_1 >= 178 +# define MSGPACK_PP_ITERATION_1 178 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 177 && MSGPACK_PP_ITERATION_START_1 >= 177 +# define MSGPACK_PP_ITERATION_1 177 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 176 && MSGPACK_PP_ITERATION_START_1 >= 176 +# define MSGPACK_PP_ITERATION_1 176 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 175 && MSGPACK_PP_ITERATION_START_1 >= 175 +# define MSGPACK_PP_ITERATION_1 175 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 174 && MSGPACK_PP_ITERATION_START_1 >= 174 +# define MSGPACK_PP_ITERATION_1 174 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 173 && MSGPACK_PP_ITERATION_START_1 >= 173 +# define MSGPACK_PP_ITERATION_1 173 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 172 && MSGPACK_PP_ITERATION_START_1 >= 172 +# define MSGPACK_PP_ITERATION_1 172 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 171 && MSGPACK_PP_ITERATION_START_1 >= 171 +# define MSGPACK_PP_ITERATION_1 171 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 170 && MSGPACK_PP_ITERATION_START_1 >= 170 +# define MSGPACK_PP_ITERATION_1 170 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 169 && MSGPACK_PP_ITERATION_START_1 >= 169 +# define MSGPACK_PP_ITERATION_1 169 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 168 && MSGPACK_PP_ITERATION_START_1 >= 168 +# define MSGPACK_PP_ITERATION_1 168 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 167 && MSGPACK_PP_ITERATION_START_1 >= 167 +# define MSGPACK_PP_ITERATION_1 167 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 166 && MSGPACK_PP_ITERATION_START_1 >= 166 +# define MSGPACK_PP_ITERATION_1 166 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 165 && MSGPACK_PP_ITERATION_START_1 >= 165 +# define MSGPACK_PP_ITERATION_1 165 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 164 && MSGPACK_PP_ITERATION_START_1 >= 164 +# define MSGPACK_PP_ITERATION_1 164 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 163 && MSGPACK_PP_ITERATION_START_1 >= 163 +# define MSGPACK_PP_ITERATION_1 163 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 162 && MSGPACK_PP_ITERATION_START_1 >= 162 +# define MSGPACK_PP_ITERATION_1 162 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 161 && MSGPACK_PP_ITERATION_START_1 >= 161 +# define MSGPACK_PP_ITERATION_1 161 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 160 && MSGPACK_PP_ITERATION_START_1 >= 160 +# define MSGPACK_PP_ITERATION_1 160 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 159 && MSGPACK_PP_ITERATION_START_1 >= 159 +# define MSGPACK_PP_ITERATION_1 159 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 158 && MSGPACK_PP_ITERATION_START_1 >= 158 +# define MSGPACK_PP_ITERATION_1 158 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 157 && MSGPACK_PP_ITERATION_START_1 >= 157 +# define MSGPACK_PP_ITERATION_1 157 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 156 && MSGPACK_PP_ITERATION_START_1 >= 156 +# define MSGPACK_PP_ITERATION_1 156 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 155 && MSGPACK_PP_ITERATION_START_1 >= 155 +# define MSGPACK_PP_ITERATION_1 155 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 154 && MSGPACK_PP_ITERATION_START_1 >= 154 +# define MSGPACK_PP_ITERATION_1 154 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 153 && MSGPACK_PP_ITERATION_START_1 >= 153 +# define MSGPACK_PP_ITERATION_1 153 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 152 && MSGPACK_PP_ITERATION_START_1 >= 152 +# define MSGPACK_PP_ITERATION_1 152 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 151 && MSGPACK_PP_ITERATION_START_1 >= 151 +# define MSGPACK_PP_ITERATION_1 151 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 150 && MSGPACK_PP_ITERATION_START_1 >= 150 +# define MSGPACK_PP_ITERATION_1 150 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 149 && MSGPACK_PP_ITERATION_START_1 >= 149 +# define MSGPACK_PP_ITERATION_1 149 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 148 && MSGPACK_PP_ITERATION_START_1 >= 148 +# define MSGPACK_PP_ITERATION_1 148 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 147 && MSGPACK_PP_ITERATION_START_1 >= 147 +# define MSGPACK_PP_ITERATION_1 147 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 146 && MSGPACK_PP_ITERATION_START_1 >= 146 +# define MSGPACK_PP_ITERATION_1 146 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 145 && MSGPACK_PP_ITERATION_START_1 >= 145 +# define MSGPACK_PP_ITERATION_1 145 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 144 && MSGPACK_PP_ITERATION_START_1 >= 144 +# define MSGPACK_PP_ITERATION_1 144 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 143 && MSGPACK_PP_ITERATION_START_1 >= 143 +# define MSGPACK_PP_ITERATION_1 143 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 142 && MSGPACK_PP_ITERATION_START_1 >= 142 +# define MSGPACK_PP_ITERATION_1 142 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 141 && MSGPACK_PP_ITERATION_START_1 >= 141 +# define MSGPACK_PP_ITERATION_1 141 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 140 && MSGPACK_PP_ITERATION_START_1 >= 140 +# define MSGPACK_PP_ITERATION_1 140 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 139 && MSGPACK_PP_ITERATION_START_1 >= 139 +# define MSGPACK_PP_ITERATION_1 139 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 138 && MSGPACK_PP_ITERATION_START_1 >= 138 +# define MSGPACK_PP_ITERATION_1 138 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 137 && MSGPACK_PP_ITERATION_START_1 >= 137 +# define MSGPACK_PP_ITERATION_1 137 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 136 && MSGPACK_PP_ITERATION_START_1 >= 136 +# define MSGPACK_PP_ITERATION_1 136 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 135 && MSGPACK_PP_ITERATION_START_1 >= 135 +# define MSGPACK_PP_ITERATION_1 135 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 134 && MSGPACK_PP_ITERATION_START_1 >= 134 +# define MSGPACK_PP_ITERATION_1 134 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 133 && MSGPACK_PP_ITERATION_START_1 >= 133 +# define MSGPACK_PP_ITERATION_1 133 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 132 && MSGPACK_PP_ITERATION_START_1 >= 132 +# define MSGPACK_PP_ITERATION_1 132 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 131 && MSGPACK_PP_ITERATION_START_1 >= 131 +# define MSGPACK_PP_ITERATION_1 131 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 130 && MSGPACK_PP_ITERATION_START_1 >= 130 +# define MSGPACK_PP_ITERATION_1 130 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 129 && MSGPACK_PP_ITERATION_START_1 >= 129 +# define MSGPACK_PP_ITERATION_1 129 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 128 && MSGPACK_PP_ITERATION_START_1 >= 128 +# define MSGPACK_PP_ITERATION_1 128 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 127 && MSGPACK_PP_ITERATION_START_1 >= 127 +# define MSGPACK_PP_ITERATION_1 127 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 126 && MSGPACK_PP_ITERATION_START_1 >= 126 +# define MSGPACK_PP_ITERATION_1 126 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 125 && MSGPACK_PP_ITERATION_START_1 >= 125 +# define MSGPACK_PP_ITERATION_1 125 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 124 && MSGPACK_PP_ITERATION_START_1 >= 124 +# define MSGPACK_PP_ITERATION_1 124 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 123 && MSGPACK_PP_ITERATION_START_1 >= 123 +# define MSGPACK_PP_ITERATION_1 123 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 122 && MSGPACK_PP_ITERATION_START_1 >= 122 +# define MSGPACK_PP_ITERATION_1 122 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 121 && MSGPACK_PP_ITERATION_START_1 >= 121 +# define MSGPACK_PP_ITERATION_1 121 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 120 && MSGPACK_PP_ITERATION_START_1 >= 120 +# define MSGPACK_PP_ITERATION_1 120 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 119 && MSGPACK_PP_ITERATION_START_1 >= 119 +# define MSGPACK_PP_ITERATION_1 119 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 118 && MSGPACK_PP_ITERATION_START_1 >= 118 +# define MSGPACK_PP_ITERATION_1 118 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 117 && MSGPACK_PP_ITERATION_START_1 >= 117 +# define MSGPACK_PP_ITERATION_1 117 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 116 && MSGPACK_PP_ITERATION_START_1 >= 116 +# define MSGPACK_PP_ITERATION_1 116 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 115 && MSGPACK_PP_ITERATION_START_1 >= 115 +# define MSGPACK_PP_ITERATION_1 115 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 114 && MSGPACK_PP_ITERATION_START_1 >= 114 +# define MSGPACK_PP_ITERATION_1 114 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 113 && MSGPACK_PP_ITERATION_START_1 >= 113 +# define MSGPACK_PP_ITERATION_1 113 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 112 && MSGPACK_PP_ITERATION_START_1 >= 112 +# define MSGPACK_PP_ITERATION_1 112 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 111 && MSGPACK_PP_ITERATION_START_1 >= 111 +# define MSGPACK_PP_ITERATION_1 111 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 110 && MSGPACK_PP_ITERATION_START_1 >= 110 +# define MSGPACK_PP_ITERATION_1 110 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 109 && MSGPACK_PP_ITERATION_START_1 >= 109 +# define MSGPACK_PP_ITERATION_1 109 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 108 && MSGPACK_PP_ITERATION_START_1 >= 108 +# define MSGPACK_PP_ITERATION_1 108 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 107 && MSGPACK_PP_ITERATION_START_1 >= 107 +# define MSGPACK_PP_ITERATION_1 107 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 106 && MSGPACK_PP_ITERATION_START_1 >= 106 +# define MSGPACK_PP_ITERATION_1 106 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 105 && MSGPACK_PP_ITERATION_START_1 >= 105 +# define MSGPACK_PP_ITERATION_1 105 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 104 && MSGPACK_PP_ITERATION_START_1 >= 104 +# define MSGPACK_PP_ITERATION_1 104 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 103 && MSGPACK_PP_ITERATION_START_1 >= 103 +# define MSGPACK_PP_ITERATION_1 103 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 102 && MSGPACK_PP_ITERATION_START_1 >= 102 +# define MSGPACK_PP_ITERATION_1 102 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 101 && MSGPACK_PP_ITERATION_START_1 >= 101 +# define MSGPACK_PP_ITERATION_1 101 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 100 && MSGPACK_PP_ITERATION_START_1 >= 100 +# define MSGPACK_PP_ITERATION_1 100 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 99 && MSGPACK_PP_ITERATION_START_1 >= 99 +# define MSGPACK_PP_ITERATION_1 99 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 98 && MSGPACK_PP_ITERATION_START_1 >= 98 +# define MSGPACK_PP_ITERATION_1 98 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 97 && MSGPACK_PP_ITERATION_START_1 >= 97 +# define MSGPACK_PP_ITERATION_1 97 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 96 && MSGPACK_PP_ITERATION_START_1 >= 96 +# define MSGPACK_PP_ITERATION_1 96 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 95 && MSGPACK_PP_ITERATION_START_1 >= 95 +# define MSGPACK_PP_ITERATION_1 95 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 94 && MSGPACK_PP_ITERATION_START_1 >= 94 +# define MSGPACK_PP_ITERATION_1 94 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 93 && MSGPACK_PP_ITERATION_START_1 >= 93 +# define MSGPACK_PP_ITERATION_1 93 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 92 && MSGPACK_PP_ITERATION_START_1 >= 92 +# define MSGPACK_PP_ITERATION_1 92 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 91 && MSGPACK_PP_ITERATION_START_1 >= 91 +# define MSGPACK_PP_ITERATION_1 91 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 90 && MSGPACK_PP_ITERATION_START_1 >= 90 +# define MSGPACK_PP_ITERATION_1 90 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 89 && MSGPACK_PP_ITERATION_START_1 >= 89 +# define MSGPACK_PP_ITERATION_1 89 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 88 && MSGPACK_PP_ITERATION_START_1 >= 88 +# define MSGPACK_PP_ITERATION_1 88 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 87 && MSGPACK_PP_ITERATION_START_1 >= 87 +# define MSGPACK_PP_ITERATION_1 87 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 86 && MSGPACK_PP_ITERATION_START_1 >= 86 +# define MSGPACK_PP_ITERATION_1 86 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 85 && MSGPACK_PP_ITERATION_START_1 >= 85 +# define MSGPACK_PP_ITERATION_1 85 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 84 && MSGPACK_PP_ITERATION_START_1 >= 84 +# define MSGPACK_PP_ITERATION_1 84 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 83 && MSGPACK_PP_ITERATION_START_1 >= 83 +# define MSGPACK_PP_ITERATION_1 83 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 82 && MSGPACK_PP_ITERATION_START_1 >= 82 +# define MSGPACK_PP_ITERATION_1 82 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 81 && MSGPACK_PP_ITERATION_START_1 >= 81 +# define MSGPACK_PP_ITERATION_1 81 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 80 && MSGPACK_PP_ITERATION_START_1 >= 80 +# define MSGPACK_PP_ITERATION_1 80 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 79 && MSGPACK_PP_ITERATION_START_1 >= 79 +# define MSGPACK_PP_ITERATION_1 79 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 78 && MSGPACK_PP_ITERATION_START_1 >= 78 +# define MSGPACK_PP_ITERATION_1 78 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 77 && MSGPACK_PP_ITERATION_START_1 >= 77 +# define MSGPACK_PP_ITERATION_1 77 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 76 && MSGPACK_PP_ITERATION_START_1 >= 76 +# define MSGPACK_PP_ITERATION_1 76 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 75 && MSGPACK_PP_ITERATION_START_1 >= 75 +# define MSGPACK_PP_ITERATION_1 75 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 74 && MSGPACK_PP_ITERATION_START_1 >= 74 +# define MSGPACK_PP_ITERATION_1 74 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 73 && MSGPACK_PP_ITERATION_START_1 >= 73 +# define MSGPACK_PP_ITERATION_1 73 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 72 && MSGPACK_PP_ITERATION_START_1 >= 72 +# define MSGPACK_PP_ITERATION_1 72 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 71 && MSGPACK_PP_ITERATION_START_1 >= 71 +# define MSGPACK_PP_ITERATION_1 71 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 70 && MSGPACK_PP_ITERATION_START_1 >= 70 +# define MSGPACK_PP_ITERATION_1 70 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 69 && MSGPACK_PP_ITERATION_START_1 >= 69 +# define MSGPACK_PP_ITERATION_1 69 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 68 && MSGPACK_PP_ITERATION_START_1 >= 68 +# define MSGPACK_PP_ITERATION_1 68 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 67 && MSGPACK_PP_ITERATION_START_1 >= 67 +# define MSGPACK_PP_ITERATION_1 67 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 66 && MSGPACK_PP_ITERATION_START_1 >= 66 +# define MSGPACK_PP_ITERATION_1 66 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 65 && MSGPACK_PP_ITERATION_START_1 >= 65 +# define MSGPACK_PP_ITERATION_1 65 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 64 && MSGPACK_PP_ITERATION_START_1 >= 64 +# define MSGPACK_PP_ITERATION_1 64 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 63 && MSGPACK_PP_ITERATION_START_1 >= 63 +# define MSGPACK_PP_ITERATION_1 63 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 62 && MSGPACK_PP_ITERATION_START_1 >= 62 +# define MSGPACK_PP_ITERATION_1 62 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 61 && MSGPACK_PP_ITERATION_START_1 >= 61 +# define MSGPACK_PP_ITERATION_1 61 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 60 && MSGPACK_PP_ITERATION_START_1 >= 60 +# define MSGPACK_PP_ITERATION_1 60 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 59 && MSGPACK_PP_ITERATION_START_1 >= 59 +# define MSGPACK_PP_ITERATION_1 59 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 58 && MSGPACK_PP_ITERATION_START_1 >= 58 +# define MSGPACK_PP_ITERATION_1 58 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 57 && MSGPACK_PP_ITERATION_START_1 >= 57 +# define MSGPACK_PP_ITERATION_1 57 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 56 && MSGPACK_PP_ITERATION_START_1 >= 56 +# define MSGPACK_PP_ITERATION_1 56 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 55 && MSGPACK_PP_ITERATION_START_1 >= 55 +# define MSGPACK_PP_ITERATION_1 55 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 54 && MSGPACK_PP_ITERATION_START_1 >= 54 +# define MSGPACK_PP_ITERATION_1 54 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 53 && MSGPACK_PP_ITERATION_START_1 >= 53 +# define MSGPACK_PP_ITERATION_1 53 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 52 && MSGPACK_PP_ITERATION_START_1 >= 52 +# define MSGPACK_PP_ITERATION_1 52 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 51 && MSGPACK_PP_ITERATION_START_1 >= 51 +# define MSGPACK_PP_ITERATION_1 51 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 50 && MSGPACK_PP_ITERATION_START_1 >= 50 +# define MSGPACK_PP_ITERATION_1 50 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 49 && MSGPACK_PP_ITERATION_START_1 >= 49 +# define MSGPACK_PP_ITERATION_1 49 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 48 && MSGPACK_PP_ITERATION_START_1 >= 48 +# define MSGPACK_PP_ITERATION_1 48 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 47 && MSGPACK_PP_ITERATION_START_1 >= 47 +# define MSGPACK_PP_ITERATION_1 47 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 46 && MSGPACK_PP_ITERATION_START_1 >= 46 +# define MSGPACK_PP_ITERATION_1 46 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 45 && MSGPACK_PP_ITERATION_START_1 >= 45 +# define MSGPACK_PP_ITERATION_1 45 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 44 && MSGPACK_PP_ITERATION_START_1 >= 44 +# define MSGPACK_PP_ITERATION_1 44 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 43 && MSGPACK_PP_ITERATION_START_1 >= 43 +# define MSGPACK_PP_ITERATION_1 43 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 42 && MSGPACK_PP_ITERATION_START_1 >= 42 +# define MSGPACK_PP_ITERATION_1 42 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 41 && MSGPACK_PP_ITERATION_START_1 >= 41 +# define MSGPACK_PP_ITERATION_1 41 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 40 && MSGPACK_PP_ITERATION_START_1 >= 40 +# define MSGPACK_PP_ITERATION_1 40 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 39 && MSGPACK_PP_ITERATION_START_1 >= 39 +# define MSGPACK_PP_ITERATION_1 39 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 38 && MSGPACK_PP_ITERATION_START_1 >= 38 +# define MSGPACK_PP_ITERATION_1 38 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 37 && MSGPACK_PP_ITERATION_START_1 >= 37 +# define MSGPACK_PP_ITERATION_1 37 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 36 && MSGPACK_PP_ITERATION_START_1 >= 36 +# define MSGPACK_PP_ITERATION_1 36 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 35 && MSGPACK_PP_ITERATION_START_1 >= 35 +# define MSGPACK_PP_ITERATION_1 35 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 34 && MSGPACK_PP_ITERATION_START_1 >= 34 +# define MSGPACK_PP_ITERATION_1 34 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 33 && MSGPACK_PP_ITERATION_START_1 >= 33 +# define MSGPACK_PP_ITERATION_1 33 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 32 && MSGPACK_PP_ITERATION_START_1 >= 32 +# define MSGPACK_PP_ITERATION_1 32 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 31 && MSGPACK_PP_ITERATION_START_1 >= 31 +# define MSGPACK_PP_ITERATION_1 31 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 30 && MSGPACK_PP_ITERATION_START_1 >= 30 +# define MSGPACK_PP_ITERATION_1 30 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 29 && MSGPACK_PP_ITERATION_START_1 >= 29 +# define MSGPACK_PP_ITERATION_1 29 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 28 && MSGPACK_PP_ITERATION_START_1 >= 28 +# define MSGPACK_PP_ITERATION_1 28 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 27 && MSGPACK_PP_ITERATION_START_1 >= 27 +# define MSGPACK_PP_ITERATION_1 27 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 26 && MSGPACK_PP_ITERATION_START_1 >= 26 +# define MSGPACK_PP_ITERATION_1 26 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 25 && MSGPACK_PP_ITERATION_START_1 >= 25 +# define MSGPACK_PP_ITERATION_1 25 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 24 && MSGPACK_PP_ITERATION_START_1 >= 24 +# define MSGPACK_PP_ITERATION_1 24 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 23 && MSGPACK_PP_ITERATION_START_1 >= 23 +# define MSGPACK_PP_ITERATION_1 23 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 22 && MSGPACK_PP_ITERATION_START_1 >= 22 +# define MSGPACK_PP_ITERATION_1 22 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 21 && MSGPACK_PP_ITERATION_START_1 >= 21 +# define MSGPACK_PP_ITERATION_1 21 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 20 && MSGPACK_PP_ITERATION_START_1 >= 20 +# define MSGPACK_PP_ITERATION_1 20 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 19 && MSGPACK_PP_ITERATION_START_1 >= 19 +# define MSGPACK_PP_ITERATION_1 19 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 18 && MSGPACK_PP_ITERATION_START_1 >= 18 +# define MSGPACK_PP_ITERATION_1 18 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 17 && MSGPACK_PP_ITERATION_START_1 >= 17 +# define MSGPACK_PP_ITERATION_1 17 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 16 && MSGPACK_PP_ITERATION_START_1 >= 16 +# define MSGPACK_PP_ITERATION_1 16 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 15 && MSGPACK_PP_ITERATION_START_1 >= 15 +# define MSGPACK_PP_ITERATION_1 15 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 14 && MSGPACK_PP_ITERATION_START_1 >= 14 +# define MSGPACK_PP_ITERATION_1 14 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 13 && MSGPACK_PP_ITERATION_START_1 >= 13 +# define MSGPACK_PP_ITERATION_1 13 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 12 && MSGPACK_PP_ITERATION_START_1 >= 12 +# define MSGPACK_PP_ITERATION_1 12 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 11 && MSGPACK_PP_ITERATION_START_1 >= 11 +# define MSGPACK_PP_ITERATION_1 11 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 10 && MSGPACK_PP_ITERATION_START_1 >= 10 +# define MSGPACK_PP_ITERATION_1 10 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 9 && MSGPACK_PP_ITERATION_START_1 >= 9 +# define MSGPACK_PP_ITERATION_1 9 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 8 && MSGPACK_PP_ITERATION_START_1 >= 8 +# define MSGPACK_PP_ITERATION_1 8 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 7 && MSGPACK_PP_ITERATION_START_1 >= 7 +# define MSGPACK_PP_ITERATION_1 7 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 6 && MSGPACK_PP_ITERATION_START_1 >= 6 +# define MSGPACK_PP_ITERATION_1 6 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 5 && MSGPACK_PP_ITERATION_START_1 >= 5 +# define MSGPACK_PP_ITERATION_1 5 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 4 && MSGPACK_PP_ITERATION_START_1 >= 4 +# define MSGPACK_PP_ITERATION_1 4 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 3 && MSGPACK_PP_ITERATION_START_1 >= 3 +# define MSGPACK_PP_ITERATION_1 3 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 2 && MSGPACK_PP_ITERATION_START_1 >= 2 +# define MSGPACK_PP_ITERATION_1 2 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 1 && MSGPACK_PP_ITERATION_START_1 >= 1 +# define MSGPACK_PP_ITERATION_1 1 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif +# if MSGPACK_PP_ITERATION_FINISH_1 <= 0 && MSGPACK_PP_ITERATION_START_1 >= 0 +# define MSGPACK_PP_ITERATION_1 0 +# include MSGPACK_PP_FILENAME_1 +# undef MSGPACK_PP_ITERATION_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse2.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse2.hpp new file mode 100644 index 000000000000..c5ad594b2bda --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse2.hpp @@ -0,0 +1,1296 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# if MSGPACK_PP_ITERATION_FINISH_2 <= 256 && MSGPACK_PP_ITERATION_START_2 >= 256 +# define MSGPACK_PP_ITERATION_2 256 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 255 && MSGPACK_PP_ITERATION_START_2 >= 255 +# define MSGPACK_PP_ITERATION_2 255 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 254 && MSGPACK_PP_ITERATION_START_2 >= 254 +# define MSGPACK_PP_ITERATION_2 254 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 253 && MSGPACK_PP_ITERATION_START_2 >= 253 +# define MSGPACK_PP_ITERATION_2 253 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 252 && MSGPACK_PP_ITERATION_START_2 >= 252 +# define MSGPACK_PP_ITERATION_2 252 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 251 && MSGPACK_PP_ITERATION_START_2 >= 251 +# define MSGPACK_PP_ITERATION_2 251 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 250 && MSGPACK_PP_ITERATION_START_2 >= 250 +# define MSGPACK_PP_ITERATION_2 250 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 249 && MSGPACK_PP_ITERATION_START_2 >= 249 +# define MSGPACK_PP_ITERATION_2 249 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 248 && MSGPACK_PP_ITERATION_START_2 >= 248 +# define MSGPACK_PP_ITERATION_2 248 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 247 && MSGPACK_PP_ITERATION_START_2 >= 247 +# define MSGPACK_PP_ITERATION_2 247 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 246 && MSGPACK_PP_ITERATION_START_2 >= 246 +# define MSGPACK_PP_ITERATION_2 246 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 245 && MSGPACK_PP_ITERATION_START_2 >= 245 +# define MSGPACK_PP_ITERATION_2 245 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 244 && MSGPACK_PP_ITERATION_START_2 >= 244 +# define MSGPACK_PP_ITERATION_2 244 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 243 && MSGPACK_PP_ITERATION_START_2 >= 243 +# define MSGPACK_PP_ITERATION_2 243 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 242 && MSGPACK_PP_ITERATION_START_2 >= 242 +# define MSGPACK_PP_ITERATION_2 242 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 241 && MSGPACK_PP_ITERATION_START_2 >= 241 +# define MSGPACK_PP_ITERATION_2 241 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 240 && MSGPACK_PP_ITERATION_START_2 >= 240 +# define MSGPACK_PP_ITERATION_2 240 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 239 && MSGPACK_PP_ITERATION_START_2 >= 239 +# define MSGPACK_PP_ITERATION_2 239 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 238 && MSGPACK_PP_ITERATION_START_2 >= 238 +# define MSGPACK_PP_ITERATION_2 238 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 237 && MSGPACK_PP_ITERATION_START_2 >= 237 +# define MSGPACK_PP_ITERATION_2 237 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 236 && MSGPACK_PP_ITERATION_START_2 >= 236 +# define MSGPACK_PP_ITERATION_2 236 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 235 && MSGPACK_PP_ITERATION_START_2 >= 235 +# define MSGPACK_PP_ITERATION_2 235 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 234 && MSGPACK_PP_ITERATION_START_2 >= 234 +# define MSGPACK_PP_ITERATION_2 234 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 233 && MSGPACK_PP_ITERATION_START_2 >= 233 +# define MSGPACK_PP_ITERATION_2 233 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 232 && MSGPACK_PP_ITERATION_START_2 >= 232 +# define MSGPACK_PP_ITERATION_2 232 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 231 && MSGPACK_PP_ITERATION_START_2 >= 231 +# define MSGPACK_PP_ITERATION_2 231 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 230 && MSGPACK_PP_ITERATION_START_2 >= 230 +# define MSGPACK_PP_ITERATION_2 230 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 229 && MSGPACK_PP_ITERATION_START_2 >= 229 +# define MSGPACK_PP_ITERATION_2 229 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 228 && MSGPACK_PP_ITERATION_START_2 >= 228 +# define MSGPACK_PP_ITERATION_2 228 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 227 && MSGPACK_PP_ITERATION_START_2 >= 227 +# define MSGPACK_PP_ITERATION_2 227 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 226 && MSGPACK_PP_ITERATION_START_2 >= 226 +# define MSGPACK_PP_ITERATION_2 226 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 225 && MSGPACK_PP_ITERATION_START_2 >= 225 +# define MSGPACK_PP_ITERATION_2 225 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 224 && MSGPACK_PP_ITERATION_START_2 >= 224 +# define MSGPACK_PP_ITERATION_2 224 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 223 && MSGPACK_PP_ITERATION_START_2 >= 223 +# define MSGPACK_PP_ITERATION_2 223 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 222 && MSGPACK_PP_ITERATION_START_2 >= 222 +# define MSGPACK_PP_ITERATION_2 222 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 221 && MSGPACK_PP_ITERATION_START_2 >= 221 +# define MSGPACK_PP_ITERATION_2 221 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 220 && MSGPACK_PP_ITERATION_START_2 >= 220 +# define MSGPACK_PP_ITERATION_2 220 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 219 && MSGPACK_PP_ITERATION_START_2 >= 219 +# define MSGPACK_PP_ITERATION_2 219 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 218 && MSGPACK_PP_ITERATION_START_2 >= 218 +# define MSGPACK_PP_ITERATION_2 218 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 217 && MSGPACK_PP_ITERATION_START_2 >= 217 +# define MSGPACK_PP_ITERATION_2 217 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 216 && MSGPACK_PP_ITERATION_START_2 >= 216 +# define MSGPACK_PP_ITERATION_2 216 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 215 && MSGPACK_PP_ITERATION_START_2 >= 215 +# define MSGPACK_PP_ITERATION_2 215 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 214 && MSGPACK_PP_ITERATION_START_2 >= 214 +# define MSGPACK_PP_ITERATION_2 214 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 213 && MSGPACK_PP_ITERATION_START_2 >= 213 +# define MSGPACK_PP_ITERATION_2 213 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 212 && MSGPACK_PP_ITERATION_START_2 >= 212 +# define MSGPACK_PP_ITERATION_2 212 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 211 && MSGPACK_PP_ITERATION_START_2 >= 211 +# define MSGPACK_PP_ITERATION_2 211 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 210 && MSGPACK_PP_ITERATION_START_2 >= 210 +# define MSGPACK_PP_ITERATION_2 210 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 209 && MSGPACK_PP_ITERATION_START_2 >= 209 +# define MSGPACK_PP_ITERATION_2 209 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 208 && MSGPACK_PP_ITERATION_START_2 >= 208 +# define MSGPACK_PP_ITERATION_2 208 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 207 && MSGPACK_PP_ITERATION_START_2 >= 207 +# define MSGPACK_PP_ITERATION_2 207 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 206 && MSGPACK_PP_ITERATION_START_2 >= 206 +# define MSGPACK_PP_ITERATION_2 206 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 205 && MSGPACK_PP_ITERATION_START_2 >= 205 +# define MSGPACK_PP_ITERATION_2 205 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 204 && MSGPACK_PP_ITERATION_START_2 >= 204 +# define MSGPACK_PP_ITERATION_2 204 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 203 && MSGPACK_PP_ITERATION_START_2 >= 203 +# define MSGPACK_PP_ITERATION_2 203 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 202 && MSGPACK_PP_ITERATION_START_2 >= 202 +# define MSGPACK_PP_ITERATION_2 202 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 201 && MSGPACK_PP_ITERATION_START_2 >= 201 +# define MSGPACK_PP_ITERATION_2 201 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 200 && MSGPACK_PP_ITERATION_START_2 >= 200 +# define MSGPACK_PP_ITERATION_2 200 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 199 && MSGPACK_PP_ITERATION_START_2 >= 199 +# define MSGPACK_PP_ITERATION_2 199 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 198 && MSGPACK_PP_ITERATION_START_2 >= 198 +# define MSGPACK_PP_ITERATION_2 198 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 197 && MSGPACK_PP_ITERATION_START_2 >= 197 +# define MSGPACK_PP_ITERATION_2 197 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 196 && MSGPACK_PP_ITERATION_START_2 >= 196 +# define MSGPACK_PP_ITERATION_2 196 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 195 && MSGPACK_PP_ITERATION_START_2 >= 195 +# define MSGPACK_PP_ITERATION_2 195 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 194 && MSGPACK_PP_ITERATION_START_2 >= 194 +# define MSGPACK_PP_ITERATION_2 194 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 193 && MSGPACK_PP_ITERATION_START_2 >= 193 +# define MSGPACK_PP_ITERATION_2 193 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 192 && MSGPACK_PP_ITERATION_START_2 >= 192 +# define MSGPACK_PP_ITERATION_2 192 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 191 && MSGPACK_PP_ITERATION_START_2 >= 191 +# define MSGPACK_PP_ITERATION_2 191 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 190 && MSGPACK_PP_ITERATION_START_2 >= 190 +# define MSGPACK_PP_ITERATION_2 190 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 189 && MSGPACK_PP_ITERATION_START_2 >= 189 +# define MSGPACK_PP_ITERATION_2 189 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 188 && MSGPACK_PP_ITERATION_START_2 >= 188 +# define MSGPACK_PP_ITERATION_2 188 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 187 && MSGPACK_PP_ITERATION_START_2 >= 187 +# define MSGPACK_PP_ITERATION_2 187 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 186 && MSGPACK_PP_ITERATION_START_2 >= 186 +# define MSGPACK_PP_ITERATION_2 186 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 185 && MSGPACK_PP_ITERATION_START_2 >= 185 +# define MSGPACK_PP_ITERATION_2 185 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 184 && MSGPACK_PP_ITERATION_START_2 >= 184 +# define MSGPACK_PP_ITERATION_2 184 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 183 && MSGPACK_PP_ITERATION_START_2 >= 183 +# define MSGPACK_PP_ITERATION_2 183 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 182 && MSGPACK_PP_ITERATION_START_2 >= 182 +# define MSGPACK_PP_ITERATION_2 182 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 181 && MSGPACK_PP_ITERATION_START_2 >= 181 +# define MSGPACK_PP_ITERATION_2 181 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 180 && MSGPACK_PP_ITERATION_START_2 >= 180 +# define MSGPACK_PP_ITERATION_2 180 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 179 && MSGPACK_PP_ITERATION_START_2 >= 179 +# define MSGPACK_PP_ITERATION_2 179 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 178 && MSGPACK_PP_ITERATION_START_2 >= 178 +# define MSGPACK_PP_ITERATION_2 178 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 177 && MSGPACK_PP_ITERATION_START_2 >= 177 +# define MSGPACK_PP_ITERATION_2 177 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 176 && MSGPACK_PP_ITERATION_START_2 >= 176 +# define MSGPACK_PP_ITERATION_2 176 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 175 && MSGPACK_PP_ITERATION_START_2 >= 175 +# define MSGPACK_PP_ITERATION_2 175 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 174 && MSGPACK_PP_ITERATION_START_2 >= 174 +# define MSGPACK_PP_ITERATION_2 174 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 173 && MSGPACK_PP_ITERATION_START_2 >= 173 +# define MSGPACK_PP_ITERATION_2 173 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 172 && MSGPACK_PP_ITERATION_START_2 >= 172 +# define MSGPACK_PP_ITERATION_2 172 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 171 && MSGPACK_PP_ITERATION_START_2 >= 171 +# define MSGPACK_PP_ITERATION_2 171 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 170 && MSGPACK_PP_ITERATION_START_2 >= 170 +# define MSGPACK_PP_ITERATION_2 170 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 169 && MSGPACK_PP_ITERATION_START_2 >= 169 +# define MSGPACK_PP_ITERATION_2 169 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 168 && MSGPACK_PP_ITERATION_START_2 >= 168 +# define MSGPACK_PP_ITERATION_2 168 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 167 && MSGPACK_PP_ITERATION_START_2 >= 167 +# define MSGPACK_PP_ITERATION_2 167 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 166 && MSGPACK_PP_ITERATION_START_2 >= 166 +# define MSGPACK_PP_ITERATION_2 166 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 165 && MSGPACK_PP_ITERATION_START_2 >= 165 +# define MSGPACK_PP_ITERATION_2 165 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 164 && MSGPACK_PP_ITERATION_START_2 >= 164 +# define MSGPACK_PP_ITERATION_2 164 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 163 && MSGPACK_PP_ITERATION_START_2 >= 163 +# define MSGPACK_PP_ITERATION_2 163 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 162 && MSGPACK_PP_ITERATION_START_2 >= 162 +# define MSGPACK_PP_ITERATION_2 162 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 161 && MSGPACK_PP_ITERATION_START_2 >= 161 +# define MSGPACK_PP_ITERATION_2 161 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 160 && MSGPACK_PP_ITERATION_START_2 >= 160 +# define MSGPACK_PP_ITERATION_2 160 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 159 && MSGPACK_PP_ITERATION_START_2 >= 159 +# define MSGPACK_PP_ITERATION_2 159 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 158 && MSGPACK_PP_ITERATION_START_2 >= 158 +# define MSGPACK_PP_ITERATION_2 158 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 157 && MSGPACK_PP_ITERATION_START_2 >= 157 +# define MSGPACK_PP_ITERATION_2 157 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 156 && MSGPACK_PP_ITERATION_START_2 >= 156 +# define MSGPACK_PP_ITERATION_2 156 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 155 && MSGPACK_PP_ITERATION_START_2 >= 155 +# define MSGPACK_PP_ITERATION_2 155 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 154 && MSGPACK_PP_ITERATION_START_2 >= 154 +# define MSGPACK_PP_ITERATION_2 154 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 153 && MSGPACK_PP_ITERATION_START_2 >= 153 +# define MSGPACK_PP_ITERATION_2 153 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 152 && MSGPACK_PP_ITERATION_START_2 >= 152 +# define MSGPACK_PP_ITERATION_2 152 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 151 && MSGPACK_PP_ITERATION_START_2 >= 151 +# define MSGPACK_PP_ITERATION_2 151 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 150 && MSGPACK_PP_ITERATION_START_2 >= 150 +# define MSGPACK_PP_ITERATION_2 150 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 149 && MSGPACK_PP_ITERATION_START_2 >= 149 +# define MSGPACK_PP_ITERATION_2 149 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 148 && MSGPACK_PP_ITERATION_START_2 >= 148 +# define MSGPACK_PP_ITERATION_2 148 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 147 && MSGPACK_PP_ITERATION_START_2 >= 147 +# define MSGPACK_PP_ITERATION_2 147 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 146 && MSGPACK_PP_ITERATION_START_2 >= 146 +# define MSGPACK_PP_ITERATION_2 146 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 145 && MSGPACK_PP_ITERATION_START_2 >= 145 +# define MSGPACK_PP_ITERATION_2 145 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 144 && MSGPACK_PP_ITERATION_START_2 >= 144 +# define MSGPACK_PP_ITERATION_2 144 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 143 && MSGPACK_PP_ITERATION_START_2 >= 143 +# define MSGPACK_PP_ITERATION_2 143 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 142 && MSGPACK_PP_ITERATION_START_2 >= 142 +# define MSGPACK_PP_ITERATION_2 142 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 141 && MSGPACK_PP_ITERATION_START_2 >= 141 +# define MSGPACK_PP_ITERATION_2 141 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 140 && MSGPACK_PP_ITERATION_START_2 >= 140 +# define MSGPACK_PP_ITERATION_2 140 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 139 && MSGPACK_PP_ITERATION_START_2 >= 139 +# define MSGPACK_PP_ITERATION_2 139 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 138 && MSGPACK_PP_ITERATION_START_2 >= 138 +# define MSGPACK_PP_ITERATION_2 138 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 137 && MSGPACK_PP_ITERATION_START_2 >= 137 +# define MSGPACK_PP_ITERATION_2 137 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 136 && MSGPACK_PP_ITERATION_START_2 >= 136 +# define MSGPACK_PP_ITERATION_2 136 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 135 && MSGPACK_PP_ITERATION_START_2 >= 135 +# define MSGPACK_PP_ITERATION_2 135 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 134 && MSGPACK_PP_ITERATION_START_2 >= 134 +# define MSGPACK_PP_ITERATION_2 134 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 133 && MSGPACK_PP_ITERATION_START_2 >= 133 +# define MSGPACK_PP_ITERATION_2 133 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 132 && MSGPACK_PP_ITERATION_START_2 >= 132 +# define MSGPACK_PP_ITERATION_2 132 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 131 && MSGPACK_PP_ITERATION_START_2 >= 131 +# define MSGPACK_PP_ITERATION_2 131 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 130 && MSGPACK_PP_ITERATION_START_2 >= 130 +# define MSGPACK_PP_ITERATION_2 130 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 129 && MSGPACK_PP_ITERATION_START_2 >= 129 +# define MSGPACK_PP_ITERATION_2 129 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 128 && MSGPACK_PP_ITERATION_START_2 >= 128 +# define MSGPACK_PP_ITERATION_2 128 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 127 && MSGPACK_PP_ITERATION_START_2 >= 127 +# define MSGPACK_PP_ITERATION_2 127 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 126 && MSGPACK_PP_ITERATION_START_2 >= 126 +# define MSGPACK_PP_ITERATION_2 126 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 125 && MSGPACK_PP_ITERATION_START_2 >= 125 +# define MSGPACK_PP_ITERATION_2 125 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 124 && MSGPACK_PP_ITERATION_START_2 >= 124 +# define MSGPACK_PP_ITERATION_2 124 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 123 && MSGPACK_PP_ITERATION_START_2 >= 123 +# define MSGPACK_PP_ITERATION_2 123 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 122 && MSGPACK_PP_ITERATION_START_2 >= 122 +# define MSGPACK_PP_ITERATION_2 122 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 121 && MSGPACK_PP_ITERATION_START_2 >= 121 +# define MSGPACK_PP_ITERATION_2 121 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 120 && MSGPACK_PP_ITERATION_START_2 >= 120 +# define MSGPACK_PP_ITERATION_2 120 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 119 && MSGPACK_PP_ITERATION_START_2 >= 119 +# define MSGPACK_PP_ITERATION_2 119 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 118 && MSGPACK_PP_ITERATION_START_2 >= 118 +# define MSGPACK_PP_ITERATION_2 118 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 117 && MSGPACK_PP_ITERATION_START_2 >= 117 +# define MSGPACK_PP_ITERATION_2 117 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 116 && MSGPACK_PP_ITERATION_START_2 >= 116 +# define MSGPACK_PP_ITERATION_2 116 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 115 && MSGPACK_PP_ITERATION_START_2 >= 115 +# define MSGPACK_PP_ITERATION_2 115 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 114 && MSGPACK_PP_ITERATION_START_2 >= 114 +# define MSGPACK_PP_ITERATION_2 114 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 113 && MSGPACK_PP_ITERATION_START_2 >= 113 +# define MSGPACK_PP_ITERATION_2 113 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 112 && MSGPACK_PP_ITERATION_START_2 >= 112 +# define MSGPACK_PP_ITERATION_2 112 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 111 && MSGPACK_PP_ITERATION_START_2 >= 111 +# define MSGPACK_PP_ITERATION_2 111 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 110 && MSGPACK_PP_ITERATION_START_2 >= 110 +# define MSGPACK_PP_ITERATION_2 110 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 109 && MSGPACK_PP_ITERATION_START_2 >= 109 +# define MSGPACK_PP_ITERATION_2 109 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 108 && MSGPACK_PP_ITERATION_START_2 >= 108 +# define MSGPACK_PP_ITERATION_2 108 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 107 && MSGPACK_PP_ITERATION_START_2 >= 107 +# define MSGPACK_PP_ITERATION_2 107 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 106 && MSGPACK_PP_ITERATION_START_2 >= 106 +# define MSGPACK_PP_ITERATION_2 106 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 105 && MSGPACK_PP_ITERATION_START_2 >= 105 +# define MSGPACK_PP_ITERATION_2 105 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 104 && MSGPACK_PP_ITERATION_START_2 >= 104 +# define MSGPACK_PP_ITERATION_2 104 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 103 && MSGPACK_PP_ITERATION_START_2 >= 103 +# define MSGPACK_PP_ITERATION_2 103 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 102 && MSGPACK_PP_ITERATION_START_2 >= 102 +# define MSGPACK_PP_ITERATION_2 102 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 101 && MSGPACK_PP_ITERATION_START_2 >= 101 +# define MSGPACK_PP_ITERATION_2 101 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 100 && MSGPACK_PP_ITERATION_START_2 >= 100 +# define MSGPACK_PP_ITERATION_2 100 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 99 && MSGPACK_PP_ITERATION_START_2 >= 99 +# define MSGPACK_PP_ITERATION_2 99 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 98 && MSGPACK_PP_ITERATION_START_2 >= 98 +# define MSGPACK_PP_ITERATION_2 98 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 97 && MSGPACK_PP_ITERATION_START_2 >= 97 +# define MSGPACK_PP_ITERATION_2 97 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 96 && MSGPACK_PP_ITERATION_START_2 >= 96 +# define MSGPACK_PP_ITERATION_2 96 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 95 && MSGPACK_PP_ITERATION_START_2 >= 95 +# define MSGPACK_PP_ITERATION_2 95 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 94 && MSGPACK_PP_ITERATION_START_2 >= 94 +# define MSGPACK_PP_ITERATION_2 94 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 93 && MSGPACK_PP_ITERATION_START_2 >= 93 +# define MSGPACK_PP_ITERATION_2 93 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 92 && MSGPACK_PP_ITERATION_START_2 >= 92 +# define MSGPACK_PP_ITERATION_2 92 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 91 && MSGPACK_PP_ITERATION_START_2 >= 91 +# define MSGPACK_PP_ITERATION_2 91 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 90 && MSGPACK_PP_ITERATION_START_2 >= 90 +# define MSGPACK_PP_ITERATION_2 90 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 89 && MSGPACK_PP_ITERATION_START_2 >= 89 +# define MSGPACK_PP_ITERATION_2 89 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 88 && MSGPACK_PP_ITERATION_START_2 >= 88 +# define MSGPACK_PP_ITERATION_2 88 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 87 && MSGPACK_PP_ITERATION_START_2 >= 87 +# define MSGPACK_PP_ITERATION_2 87 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 86 && MSGPACK_PP_ITERATION_START_2 >= 86 +# define MSGPACK_PP_ITERATION_2 86 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 85 && MSGPACK_PP_ITERATION_START_2 >= 85 +# define MSGPACK_PP_ITERATION_2 85 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 84 && MSGPACK_PP_ITERATION_START_2 >= 84 +# define MSGPACK_PP_ITERATION_2 84 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 83 && MSGPACK_PP_ITERATION_START_2 >= 83 +# define MSGPACK_PP_ITERATION_2 83 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 82 && MSGPACK_PP_ITERATION_START_2 >= 82 +# define MSGPACK_PP_ITERATION_2 82 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 81 && MSGPACK_PP_ITERATION_START_2 >= 81 +# define MSGPACK_PP_ITERATION_2 81 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 80 && MSGPACK_PP_ITERATION_START_2 >= 80 +# define MSGPACK_PP_ITERATION_2 80 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 79 && MSGPACK_PP_ITERATION_START_2 >= 79 +# define MSGPACK_PP_ITERATION_2 79 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 78 && MSGPACK_PP_ITERATION_START_2 >= 78 +# define MSGPACK_PP_ITERATION_2 78 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 77 && MSGPACK_PP_ITERATION_START_2 >= 77 +# define MSGPACK_PP_ITERATION_2 77 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 76 && MSGPACK_PP_ITERATION_START_2 >= 76 +# define MSGPACK_PP_ITERATION_2 76 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 75 && MSGPACK_PP_ITERATION_START_2 >= 75 +# define MSGPACK_PP_ITERATION_2 75 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 74 && MSGPACK_PP_ITERATION_START_2 >= 74 +# define MSGPACK_PP_ITERATION_2 74 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 73 && MSGPACK_PP_ITERATION_START_2 >= 73 +# define MSGPACK_PP_ITERATION_2 73 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 72 && MSGPACK_PP_ITERATION_START_2 >= 72 +# define MSGPACK_PP_ITERATION_2 72 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 71 && MSGPACK_PP_ITERATION_START_2 >= 71 +# define MSGPACK_PP_ITERATION_2 71 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 70 && MSGPACK_PP_ITERATION_START_2 >= 70 +# define MSGPACK_PP_ITERATION_2 70 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 69 && MSGPACK_PP_ITERATION_START_2 >= 69 +# define MSGPACK_PP_ITERATION_2 69 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 68 && MSGPACK_PP_ITERATION_START_2 >= 68 +# define MSGPACK_PP_ITERATION_2 68 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 67 && MSGPACK_PP_ITERATION_START_2 >= 67 +# define MSGPACK_PP_ITERATION_2 67 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 66 && MSGPACK_PP_ITERATION_START_2 >= 66 +# define MSGPACK_PP_ITERATION_2 66 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 65 && MSGPACK_PP_ITERATION_START_2 >= 65 +# define MSGPACK_PP_ITERATION_2 65 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 64 && MSGPACK_PP_ITERATION_START_2 >= 64 +# define MSGPACK_PP_ITERATION_2 64 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 63 && MSGPACK_PP_ITERATION_START_2 >= 63 +# define MSGPACK_PP_ITERATION_2 63 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 62 && MSGPACK_PP_ITERATION_START_2 >= 62 +# define MSGPACK_PP_ITERATION_2 62 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 61 && MSGPACK_PP_ITERATION_START_2 >= 61 +# define MSGPACK_PP_ITERATION_2 61 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 60 && MSGPACK_PP_ITERATION_START_2 >= 60 +# define MSGPACK_PP_ITERATION_2 60 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 59 && MSGPACK_PP_ITERATION_START_2 >= 59 +# define MSGPACK_PP_ITERATION_2 59 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 58 && MSGPACK_PP_ITERATION_START_2 >= 58 +# define MSGPACK_PP_ITERATION_2 58 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 57 && MSGPACK_PP_ITERATION_START_2 >= 57 +# define MSGPACK_PP_ITERATION_2 57 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 56 && MSGPACK_PP_ITERATION_START_2 >= 56 +# define MSGPACK_PP_ITERATION_2 56 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 55 && MSGPACK_PP_ITERATION_START_2 >= 55 +# define MSGPACK_PP_ITERATION_2 55 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 54 && MSGPACK_PP_ITERATION_START_2 >= 54 +# define MSGPACK_PP_ITERATION_2 54 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 53 && MSGPACK_PP_ITERATION_START_2 >= 53 +# define MSGPACK_PP_ITERATION_2 53 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 52 && MSGPACK_PP_ITERATION_START_2 >= 52 +# define MSGPACK_PP_ITERATION_2 52 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 51 && MSGPACK_PP_ITERATION_START_2 >= 51 +# define MSGPACK_PP_ITERATION_2 51 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 50 && MSGPACK_PP_ITERATION_START_2 >= 50 +# define MSGPACK_PP_ITERATION_2 50 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 49 && MSGPACK_PP_ITERATION_START_2 >= 49 +# define MSGPACK_PP_ITERATION_2 49 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 48 && MSGPACK_PP_ITERATION_START_2 >= 48 +# define MSGPACK_PP_ITERATION_2 48 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 47 && MSGPACK_PP_ITERATION_START_2 >= 47 +# define MSGPACK_PP_ITERATION_2 47 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 46 && MSGPACK_PP_ITERATION_START_2 >= 46 +# define MSGPACK_PP_ITERATION_2 46 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 45 && MSGPACK_PP_ITERATION_START_2 >= 45 +# define MSGPACK_PP_ITERATION_2 45 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 44 && MSGPACK_PP_ITERATION_START_2 >= 44 +# define MSGPACK_PP_ITERATION_2 44 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 43 && MSGPACK_PP_ITERATION_START_2 >= 43 +# define MSGPACK_PP_ITERATION_2 43 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 42 && MSGPACK_PP_ITERATION_START_2 >= 42 +# define MSGPACK_PP_ITERATION_2 42 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 41 && MSGPACK_PP_ITERATION_START_2 >= 41 +# define MSGPACK_PP_ITERATION_2 41 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 40 && MSGPACK_PP_ITERATION_START_2 >= 40 +# define MSGPACK_PP_ITERATION_2 40 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 39 && MSGPACK_PP_ITERATION_START_2 >= 39 +# define MSGPACK_PP_ITERATION_2 39 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 38 && MSGPACK_PP_ITERATION_START_2 >= 38 +# define MSGPACK_PP_ITERATION_2 38 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 37 && MSGPACK_PP_ITERATION_START_2 >= 37 +# define MSGPACK_PP_ITERATION_2 37 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 36 && MSGPACK_PP_ITERATION_START_2 >= 36 +# define MSGPACK_PP_ITERATION_2 36 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 35 && MSGPACK_PP_ITERATION_START_2 >= 35 +# define MSGPACK_PP_ITERATION_2 35 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 34 && MSGPACK_PP_ITERATION_START_2 >= 34 +# define MSGPACK_PP_ITERATION_2 34 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 33 && MSGPACK_PP_ITERATION_START_2 >= 33 +# define MSGPACK_PP_ITERATION_2 33 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 32 && MSGPACK_PP_ITERATION_START_2 >= 32 +# define MSGPACK_PP_ITERATION_2 32 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 31 && MSGPACK_PP_ITERATION_START_2 >= 31 +# define MSGPACK_PP_ITERATION_2 31 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 30 && MSGPACK_PP_ITERATION_START_2 >= 30 +# define MSGPACK_PP_ITERATION_2 30 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 29 && MSGPACK_PP_ITERATION_START_2 >= 29 +# define MSGPACK_PP_ITERATION_2 29 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 28 && MSGPACK_PP_ITERATION_START_2 >= 28 +# define MSGPACK_PP_ITERATION_2 28 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 27 && MSGPACK_PP_ITERATION_START_2 >= 27 +# define MSGPACK_PP_ITERATION_2 27 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 26 && MSGPACK_PP_ITERATION_START_2 >= 26 +# define MSGPACK_PP_ITERATION_2 26 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 25 && MSGPACK_PP_ITERATION_START_2 >= 25 +# define MSGPACK_PP_ITERATION_2 25 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 24 && MSGPACK_PP_ITERATION_START_2 >= 24 +# define MSGPACK_PP_ITERATION_2 24 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 23 && MSGPACK_PP_ITERATION_START_2 >= 23 +# define MSGPACK_PP_ITERATION_2 23 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 22 && MSGPACK_PP_ITERATION_START_2 >= 22 +# define MSGPACK_PP_ITERATION_2 22 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 21 && MSGPACK_PP_ITERATION_START_2 >= 21 +# define MSGPACK_PP_ITERATION_2 21 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 20 && MSGPACK_PP_ITERATION_START_2 >= 20 +# define MSGPACK_PP_ITERATION_2 20 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 19 && MSGPACK_PP_ITERATION_START_2 >= 19 +# define MSGPACK_PP_ITERATION_2 19 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 18 && MSGPACK_PP_ITERATION_START_2 >= 18 +# define MSGPACK_PP_ITERATION_2 18 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 17 && MSGPACK_PP_ITERATION_START_2 >= 17 +# define MSGPACK_PP_ITERATION_2 17 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 16 && MSGPACK_PP_ITERATION_START_2 >= 16 +# define MSGPACK_PP_ITERATION_2 16 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 15 && MSGPACK_PP_ITERATION_START_2 >= 15 +# define MSGPACK_PP_ITERATION_2 15 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 14 && MSGPACK_PP_ITERATION_START_2 >= 14 +# define MSGPACK_PP_ITERATION_2 14 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 13 && MSGPACK_PP_ITERATION_START_2 >= 13 +# define MSGPACK_PP_ITERATION_2 13 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 12 && MSGPACK_PP_ITERATION_START_2 >= 12 +# define MSGPACK_PP_ITERATION_2 12 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 11 && MSGPACK_PP_ITERATION_START_2 >= 11 +# define MSGPACK_PP_ITERATION_2 11 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 10 && MSGPACK_PP_ITERATION_START_2 >= 10 +# define MSGPACK_PP_ITERATION_2 10 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 9 && MSGPACK_PP_ITERATION_START_2 >= 9 +# define MSGPACK_PP_ITERATION_2 9 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 8 && MSGPACK_PP_ITERATION_START_2 >= 8 +# define MSGPACK_PP_ITERATION_2 8 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 7 && MSGPACK_PP_ITERATION_START_2 >= 7 +# define MSGPACK_PP_ITERATION_2 7 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 6 && MSGPACK_PP_ITERATION_START_2 >= 6 +# define MSGPACK_PP_ITERATION_2 6 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 5 && MSGPACK_PP_ITERATION_START_2 >= 5 +# define MSGPACK_PP_ITERATION_2 5 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 4 && MSGPACK_PP_ITERATION_START_2 >= 4 +# define MSGPACK_PP_ITERATION_2 4 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 3 && MSGPACK_PP_ITERATION_START_2 >= 3 +# define MSGPACK_PP_ITERATION_2 3 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 2 && MSGPACK_PP_ITERATION_START_2 >= 2 +# define MSGPACK_PP_ITERATION_2 2 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 1 && MSGPACK_PP_ITERATION_START_2 >= 1 +# define MSGPACK_PP_ITERATION_2 1 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif +# if MSGPACK_PP_ITERATION_FINISH_2 <= 0 && MSGPACK_PP_ITERATION_START_2 >= 0 +# define MSGPACK_PP_ITERATION_2 0 +# include MSGPACK_PP_FILENAME_2 +# undef MSGPACK_PP_ITERATION_2 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse3.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse3.hpp new file mode 100644 index 000000000000..3b003742d951 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse3.hpp @@ -0,0 +1,1296 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# if MSGPACK_PP_ITERATION_FINISH_3 <= 256 && MSGPACK_PP_ITERATION_START_3 >= 256 +# define MSGPACK_PP_ITERATION_3 256 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 255 && MSGPACK_PP_ITERATION_START_3 >= 255 +# define MSGPACK_PP_ITERATION_3 255 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 254 && MSGPACK_PP_ITERATION_START_3 >= 254 +# define MSGPACK_PP_ITERATION_3 254 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 253 && MSGPACK_PP_ITERATION_START_3 >= 253 +# define MSGPACK_PP_ITERATION_3 253 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 252 && MSGPACK_PP_ITERATION_START_3 >= 252 +# define MSGPACK_PP_ITERATION_3 252 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 251 && MSGPACK_PP_ITERATION_START_3 >= 251 +# define MSGPACK_PP_ITERATION_3 251 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 250 && MSGPACK_PP_ITERATION_START_3 >= 250 +# define MSGPACK_PP_ITERATION_3 250 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 249 && MSGPACK_PP_ITERATION_START_3 >= 249 +# define MSGPACK_PP_ITERATION_3 249 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 248 && MSGPACK_PP_ITERATION_START_3 >= 248 +# define MSGPACK_PP_ITERATION_3 248 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 247 && MSGPACK_PP_ITERATION_START_3 >= 247 +# define MSGPACK_PP_ITERATION_3 247 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 246 && MSGPACK_PP_ITERATION_START_3 >= 246 +# define MSGPACK_PP_ITERATION_3 246 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 245 && MSGPACK_PP_ITERATION_START_3 >= 245 +# define MSGPACK_PP_ITERATION_3 245 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 244 && MSGPACK_PP_ITERATION_START_3 >= 244 +# define MSGPACK_PP_ITERATION_3 244 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 243 && MSGPACK_PP_ITERATION_START_3 >= 243 +# define MSGPACK_PP_ITERATION_3 243 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 242 && MSGPACK_PP_ITERATION_START_3 >= 242 +# define MSGPACK_PP_ITERATION_3 242 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 241 && MSGPACK_PP_ITERATION_START_3 >= 241 +# define MSGPACK_PP_ITERATION_3 241 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 240 && MSGPACK_PP_ITERATION_START_3 >= 240 +# define MSGPACK_PP_ITERATION_3 240 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 239 && MSGPACK_PP_ITERATION_START_3 >= 239 +# define MSGPACK_PP_ITERATION_3 239 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 238 && MSGPACK_PP_ITERATION_START_3 >= 238 +# define MSGPACK_PP_ITERATION_3 238 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 237 && MSGPACK_PP_ITERATION_START_3 >= 237 +# define MSGPACK_PP_ITERATION_3 237 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 236 && MSGPACK_PP_ITERATION_START_3 >= 236 +# define MSGPACK_PP_ITERATION_3 236 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 235 && MSGPACK_PP_ITERATION_START_3 >= 235 +# define MSGPACK_PP_ITERATION_3 235 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 234 && MSGPACK_PP_ITERATION_START_3 >= 234 +# define MSGPACK_PP_ITERATION_3 234 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 233 && MSGPACK_PP_ITERATION_START_3 >= 233 +# define MSGPACK_PP_ITERATION_3 233 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 232 && MSGPACK_PP_ITERATION_START_3 >= 232 +# define MSGPACK_PP_ITERATION_3 232 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 231 && MSGPACK_PP_ITERATION_START_3 >= 231 +# define MSGPACK_PP_ITERATION_3 231 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 230 && MSGPACK_PP_ITERATION_START_3 >= 230 +# define MSGPACK_PP_ITERATION_3 230 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 229 && MSGPACK_PP_ITERATION_START_3 >= 229 +# define MSGPACK_PP_ITERATION_3 229 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 228 && MSGPACK_PP_ITERATION_START_3 >= 228 +# define MSGPACK_PP_ITERATION_3 228 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 227 && MSGPACK_PP_ITERATION_START_3 >= 227 +# define MSGPACK_PP_ITERATION_3 227 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 226 && MSGPACK_PP_ITERATION_START_3 >= 226 +# define MSGPACK_PP_ITERATION_3 226 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 225 && MSGPACK_PP_ITERATION_START_3 >= 225 +# define MSGPACK_PP_ITERATION_3 225 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 224 && MSGPACK_PP_ITERATION_START_3 >= 224 +# define MSGPACK_PP_ITERATION_3 224 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 223 && MSGPACK_PP_ITERATION_START_3 >= 223 +# define MSGPACK_PP_ITERATION_3 223 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 222 && MSGPACK_PP_ITERATION_START_3 >= 222 +# define MSGPACK_PP_ITERATION_3 222 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 221 && MSGPACK_PP_ITERATION_START_3 >= 221 +# define MSGPACK_PP_ITERATION_3 221 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 220 && MSGPACK_PP_ITERATION_START_3 >= 220 +# define MSGPACK_PP_ITERATION_3 220 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 219 && MSGPACK_PP_ITERATION_START_3 >= 219 +# define MSGPACK_PP_ITERATION_3 219 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 218 && MSGPACK_PP_ITERATION_START_3 >= 218 +# define MSGPACK_PP_ITERATION_3 218 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 217 && MSGPACK_PP_ITERATION_START_3 >= 217 +# define MSGPACK_PP_ITERATION_3 217 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 216 && MSGPACK_PP_ITERATION_START_3 >= 216 +# define MSGPACK_PP_ITERATION_3 216 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 215 && MSGPACK_PP_ITERATION_START_3 >= 215 +# define MSGPACK_PP_ITERATION_3 215 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 214 && MSGPACK_PP_ITERATION_START_3 >= 214 +# define MSGPACK_PP_ITERATION_3 214 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 213 && MSGPACK_PP_ITERATION_START_3 >= 213 +# define MSGPACK_PP_ITERATION_3 213 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 212 && MSGPACK_PP_ITERATION_START_3 >= 212 +# define MSGPACK_PP_ITERATION_3 212 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 211 && MSGPACK_PP_ITERATION_START_3 >= 211 +# define MSGPACK_PP_ITERATION_3 211 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 210 && MSGPACK_PP_ITERATION_START_3 >= 210 +# define MSGPACK_PP_ITERATION_3 210 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 209 && MSGPACK_PP_ITERATION_START_3 >= 209 +# define MSGPACK_PP_ITERATION_3 209 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 208 && MSGPACK_PP_ITERATION_START_3 >= 208 +# define MSGPACK_PP_ITERATION_3 208 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 207 && MSGPACK_PP_ITERATION_START_3 >= 207 +# define MSGPACK_PP_ITERATION_3 207 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 206 && MSGPACK_PP_ITERATION_START_3 >= 206 +# define MSGPACK_PP_ITERATION_3 206 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 205 && MSGPACK_PP_ITERATION_START_3 >= 205 +# define MSGPACK_PP_ITERATION_3 205 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 204 && MSGPACK_PP_ITERATION_START_3 >= 204 +# define MSGPACK_PP_ITERATION_3 204 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 203 && MSGPACK_PP_ITERATION_START_3 >= 203 +# define MSGPACK_PP_ITERATION_3 203 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 202 && MSGPACK_PP_ITERATION_START_3 >= 202 +# define MSGPACK_PP_ITERATION_3 202 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 201 && MSGPACK_PP_ITERATION_START_3 >= 201 +# define MSGPACK_PP_ITERATION_3 201 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 200 && MSGPACK_PP_ITERATION_START_3 >= 200 +# define MSGPACK_PP_ITERATION_3 200 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 199 && MSGPACK_PP_ITERATION_START_3 >= 199 +# define MSGPACK_PP_ITERATION_3 199 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 198 && MSGPACK_PP_ITERATION_START_3 >= 198 +# define MSGPACK_PP_ITERATION_3 198 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 197 && MSGPACK_PP_ITERATION_START_3 >= 197 +# define MSGPACK_PP_ITERATION_3 197 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 196 && MSGPACK_PP_ITERATION_START_3 >= 196 +# define MSGPACK_PP_ITERATION_3 196 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 195 && MSGPACK_PP_ITERATION_START_3 >= 195 +# define MSGPACK_PP_ITERATION_3 195 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 194 && MSGPACK_PP_ITERATION_START_3 >= 194 +# define MSGPACK_PP_ITERATION_3 194 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 193 && MSGPACK_PP_ITERATION_START_3 >= 193 +# define MSGPACK_PP_ITERATION_3 193 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 192 && MSGPACK_PP_ITERATION_START_3 >= 192 +# define MSGPACK_PP_ITERATION_3 192 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 191 && MSGPACK_PP_ITERATION_START_3 >= 191 +# define MSGPACK_PP_ITERATION_3 191 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 190 && MSGPACK_PP_ITERATION_START_3 >= 190 +# define MSGPACK_PP_ITERATION_3 190 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 189 && MSGPACK_PP_ITERATION_START_3 >= 189 +# define MSGPACK_PP_ITERATION_3 189 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 188 && MSGPACK_PP_ITERATION_START_3 >= 188 +# define MSGPACK_PP_ITERATION_3 188 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 187 && MSGPACK_PP_ITERATION_START_3 >= 187 +# define MSGPACK_PP_ITERATION_3 187 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 186 && MSGPACK_PP_ITERATION_START_3 >= 186 +# define MSGPACK_PP_ITERATION_3 186 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 185 && MSGPACK_PP_ITERATION_START_3 >= 185 +# define MSGPACK_PP_ITERATION_3 185 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 184 && MSGPACK_PP_ITERATION_START_3 >= 184 +# define MSGPACK_PP_ITERATION_3 184 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 183 && MSGPACK_PP_ITERATION_START_3 >= 183 +# define MSGPACK_PP_ITERATION_3 183 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 182 && MSGPACK_PP_ITERATION_START_3 >= 182 +# define MSGPACK_PP_ITERATION_3 182 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 181 && MSGPACK_PP_ITERATION_START_3 >= 181 +# define MSGPACK_PP_ITERATION_3 181 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 180 && MSGPACK_PP_ITERATION_START_3 >= 180 +# define MSGPACK_PP_ITERATION_3 180 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 179 && MSGPACK_PP_ITERATION_START_3 >= 179 +# define MSGPACK_PP_ITERATION_3 179 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 178 && MSGPACK_PP_ITERATION_START_3 >= 178 +# define MSGPACK_PP_ITERATION_3 178 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 177 && MSGPACK_PP_ITERATION_START_3 >= 177 +# define MSGPACK_PP_ITERATION_3 177 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 176 && MSGPACK_PP_ITERATION_START_3 >= 176 +# define MSGPACK_PP_ITERATION_3 176 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 175 && MSGPACK_PP_ITERATION_START_3 >= 175 +# define MSGPACK_PP_ITERATION_3 175 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 174 && MSGPACK_PP_ITERATION_START_3 >= 174 +# define MSGPACK_PP_ITERATION_3 174 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 173 && MSGPACK_PP_ITERATION_START_3 >= 173 +# define MSGPACK_PP_ITERATION_3 173 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 172 && MSGPACK_PP_ITERATION_START_3 >= 172 +# define MSGPACK_PP_ITERATION_3 172 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 171 && MSGPACK_PP_ITERATION_START_3 >= 171 +# define MSGPACK_PP_ITERATION_3 171 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 170 && MSGPACK_PP_ITERATION_START_3 >= 170 +# define MSGPACK_PP_ITERATION_3 170 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 169 && MSGPACK_PP_ITERATION_START_3 >= 169 +# define MSGPACK_PP_ITERATION_3 169 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 168 && MSGPACK_PP_ITERATION_START_3 >= 168 +# define MSGPACK_PP_ITERATION_3 168 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 167 && MSGPACK_PP_ITERATION_START_3 >= 167 +# define MSGPACK_PP_ITERATION_3 167 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 166 && MSGPACK_PP_ITERATION_START_3 >= 166 +# define MSGPACK_PP_ITERATION_3 166 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 165 && MSGPACK_PP_ITERATION_START_3 >= 165 +# define MSGPACK_PP_ITERATION_3 165 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 164 && MSGPACK_PP_ITERATION_START_3 >= 164 +# define MSGPACK_PP_ITERATION_3 164 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 163 && MSGPACK_PP_ITERATION_START_3 >= 163 +# define MSGPACK_PP_ITERATION_3 163 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 162 && MSGPACK_PP_ITERATION_START_3 >= 162 +# define MSGPACK_PP_ITERATION_3 162 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 161 && MSGPACK_PP_ITERATION_START_3 >= 161 +# define MSGPACK_PP_ITERATION_3 161 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 160 && MSGPACK_PP_ITERATION_START_3 >= 160 +# define MSGPACK_PP_ITERATION_3 160 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 159 && MSGPACK_PP_ITERATION_START_3 >= 159 +# define MSGPACK_PP_ITERATION_3 159 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 158 && MSGPACK_PP_ITERATION_START_3 >= 158 +# define MSGPACK_PP_ITERATION_3 158 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 157 && MSGPACK_PP_ITERATION_START_3 >= 157 +# define MSGPACK_PP_ITERATION_3 157 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 156 && MSGPACK_PP_ITERATION_START_3 >= 156 +# define MSGPACK_PP_ITERATION_3 156 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 155 && MSGPACK_PP_ITERATION_START_3 >= 155 +# define MSGPACK_PP_ITERATION_3 155 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 154 && MSGPACK_PP_ITERATION_START_3 >= 154 +# define MSGPACK_PP_ITERATION_3 154 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 153 && MSGPACK_PP_ITERATION_START_3 >= 153 +# define MSGPACK_PP_ITERATION_3 153 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 152 && MSGPACK_PP_ITERATION_START_3 >= 152 +# define MSGPACK_PP_ITERATION_3 152 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 151 && MSGPACK_PP_ITERATION_START_3 >= 151 +# define MSGPACK_PP_ITERATION_3 151 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 150 && MSGPACK_PP_ITERATION_START_3 >= 150 +# define MSGPACK_PP_ITERATION_3 150 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 149 && MSGPACK_PP_ITERATION_START_3 >= 149 +# define MSGPACK_PP_ITERATION_3 149 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 148 && MSGPACK_PP_ITERATION_START_3 >= 148 +# define MSGPACK_PP_ITERATION_3 148 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 147 && MSGPACK_PP_ITERATION_START_3 >= 147 +# define MSGPACK_PP_ITERATION_3 147 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 146 && MSGPACK_PP_ITERATION_START_3 >= 146 +# define MSGPACK_PP_ITERATION_3 146 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 145 && MSGPACK_PP_ITERATION_START_3 >= 145 +# define MSGPACK_PP_ITERATION_3 145 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 144 && MSGPACK_PP_ITERATION_START_3 >= 144 +# define MSGPACK_PP_ITERATION_3 144 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 143 && MSGPACK_PP_ITERATION_START_3 >= 143 +# define MSGPACK_PP_ITERATION_3 143 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 142 && MSGPACK_PP_ITERATION_START_3 >= 142 +# define MSGPACK_PP_ITERATION_3 142 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 141 && MSGPACK_PP_ITERATION_START_3 >= 141 +# define MSGPACK_PP_ITERATION_3 141 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 140 && MSGPACK_PP_ITERATION_START_3 >= 140 +# define MSGPACK_PP_ITERATION_3 140 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 139 && MSGPACK_PP_ITERATION_START_3 >= 139 +# define MSGPACK_PP_ITERATION_3 139 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 138 && MSGPACK_PP_ITERATION_START_3 >= 138 +# define MSGPACK_PP_ITERATION_3 138 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 137 && MSGPACK_PP_ITERATION_START_3 >= 137 +# define MSGPACK_PP_ITERATION_3 137 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 136 && MSGPACK_PP_ITERATION_START_3 >= 136 +# define MSGPACK_PP_ITERATION_3 136 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 135 && MSGPACK_PP_ITERATION_START_3 >= 135 +# define MSGPACK_PP_ITERATION_3 135 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 134 && MSGPACK_PP_ITERATION_START_3 >= 134 +# define MSGPACK_PP_ITERATION_3 134 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 133 && MSGPACK_PP_ITERATION_START_3 >= 133 +# define MSGPACK_PP_ITERATION_3 133 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 132 && MSGPACK_PP_ITERATION_START_3 >= 132 +# define MSGPACK_PP_ITERATION_3 132 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 131 && MSGPACK_PP_ITERATION_START_3 >= 131 +# define MSGPACK_PP_ITERATION_3 131 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 130 && MSGPACK_PP_ITERATION_START_3 >= 130 +# define MSGPACK_PP_ITERATION_3 130 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 129 && MSGPACK_PP_ITERATION_START_3 >= 129 +# define MSGPACK_PP_ITERATION_3 129 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 128 && MSGPACK_PP_ITERATION_START_3 >= 128 +# define MSGPACK_PP_ITERATION_3 128 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 127 && MSGPACK_PP_ITERATION_START_3 >= 127 +# define MSGPACK_PP_ITERATION_3 127 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 126 && MSGPACK_PP_ITERATION_START_3 >= 126 +# define MSGPACK_PP_ITERATION_3 126 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 125 && MSGPACK_PP_ITERATION_START_3 >= 125 +# define MSGPACK_PP_ITERATION_3 125 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 124 && MSGPACK_PP_ITERATION_START_3 >= 124 +# define MSGPACK_PP_ITERATION_3 124 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 123 && MSGPACK_PP_ITERATION_START_3 >= 123 +# define MSGPACK_PP_ITERATION_3 123 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 122 && MSGPACK_PP_ITERATION_START_3 >= 122 +# define MSGPACK_PP_ITERATION_3 122 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 121 && MSGPACK_PP_ITERATION_START_3 >= 121 +# define MSGPACK_PP_ITERATION_3 121 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 120 && MSGPACK_PP_ITERATION_START_3 >= 120 +# define MSGPACK_PP_ITERATION_3 120 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 119 && MSGPACK_PP_ITERATION_START_3 >= 119 +# define MSGPACK_PP_ITERATION_3 119 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 118 && MSGPACK_PP_ITERATION_START_3 >= 118 +# define MSGPACK_PP_ITERATION_3 118 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 117 && MSGPACK_PP_ITERATION_START_3 >= 117 +# define MSGPACK_PP_ITERATION_3 117 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 116 && MSGPACK_PP_ITERATION_START_3 >= 116 +# define MSGPACK_PP_ITERATION_3 116 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 115 && MSGPACK_PP_ITERATION_START_3 >= 115 +# define MSGPACK_PP_ITERATION_3 115 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 114 && MSGPACK_PP_ITERATION_START_3 >= 114 +# define MSGPACK_PP_ITERATION_3 114 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 113 && MSGPACK_PP_ITERATION_START_3 >= 113 +# define MSGPACK_PP_ITERATION_3 113 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 112 && MSGPACK_PP_ITERATION_START_3 >= 112 +# define MSGPACK_PP_ITERATION_3 112 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 111 && MSGPACK_PP_ITERATION_START_3 >= 111 +# define MSGPACK_PP_ITERATION_3 111 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 110 && MSGPACK_PP_ITERATION_START_3 >= 110 +# define MSGPACK_PP_ITERATION_3 110 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 109 && MSGPACK_PP_ITERATION_START_3 >= 109 +# define MSGPACK_PP_ITERATION_3 109 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 108 && MSGPACK_PP_ITERATION_START_3 >= 108 +# define MSGPACK_PP_ITERATION_3 108 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 107 && MSGPACK_PP_ITERATION_START_3 >= 107 +# define MSGPACK_PP_ITERATION_3 107 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 106 && MSGPACK_PP_ITERATION_START_3 >= 106 +# define MSGPACK_PP_ITERATION_3 106 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 105 && MSGPACK_PP_ITERATION_START_3 >= 105 +# define MSGPACK_PP_ITERATION_3 105 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 104 && MSGPACK_PP_ITERATION_START_3 >= 104 +# define MSGPACK_PP_ITERATION_3 104 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 103 && MSGPACK_PP_ITERATION_START_3 >= 103 +# define MSGPACK_PP_ITERATION_3 103 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 102 && MSGPACK_PP_ITERATION_START_3 >= 102 +# define MSGPACK_PP_ITERATION_3 102 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 101 && MSGPACK_PP_ITERATION_START_3 >= 101 +# define MSGPACK_PP_ITERATION_3 101 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 100 && MSGPACK_PP_ITERATION_START_3 >= 100 +# define MSGPACK_PP_ITERATION_3 100 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 99 && MSGPACK_PP_ITERATION_START_3 >= 99 +# define MSGPACK_PP_ITERATION_3 99 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 98 && MSGPACK_PP_ITERATION_START_3 >= 98 +# define MSGPACK_PP_ITERATION_3 98 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 97 && MSGPACK_PP_ITERATION_START_3 >= 97 +# define MSGPACK_PP_ITERATION_3 97 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 96 && MSGPACK_PP_ITERATION_START_3 >= 96 +# define MSGPACK_PP_ITERATION_3 96 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 95 && MSGPACK_PP_ITERATION_START_3 >= 95 +# define MSGPACK_PP_ITERATION_3 95 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 94 && MSGPACK_PP_ITERATION_START_3 >= 94 +# define MSGPACK_PP_ITERATION_3 94 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 93 && MSGPACK_PP_ITERATION_START_3 >= 93 +# define MSGPACK_PP_ITERATION_3 93 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 92 && MSGPACK_PP_ITERATION_START_3 >= 92 +# define MSGPACK_PP_ITERATION_3 92 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 91 && MSGPACK_PP_ITERATION_START_3 >= 91 +# define MSGPACK_PP_ITERATION_3 91 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 90 && MSGPACK_PP_ITERATION_START_3 >= 90 +# define MSGPACK_PP_ITERATION_3 90 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 89 && MSGPACK_PP_ITERATION_START_3 >= 89 +# define MSGPACK_PP_ITERATION_3 89 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 88 && MSGPACK_PP_ITERATION_START_3 >= 88 +# define MSGPACK_PP_ITERATION_3 88 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 87 && MSGPACK_PP_ITERATION_START_3 >= 87 +# define MSGPACK_PP_ITERATION_3 87 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 86 && MSGPACK_PP_ITERATION_START_3 >= 86 +# define MSGPACK_PP_ITERATION_3 86 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 85 && MSGPACK_PP_ITERATION_START_3 >= 85 +# define MSGPACK_PP_ITERATION_3 85 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 84 && MSGPACK_PP_ITERATION_START_3 >= 84 +# define MSGPACK_PP_ITERATION_3 84 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 83 && MSGPACK_PP_ITERATION_START_3 >= 83 +# define MSGPACK_PP_ITERATION_3 83 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 82 && MSGPACK_PP_ITERATION_START_3 >= 82 +# define MSGPACK_PP_ITERATION_3 82 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 81 && MSGPACK_PP_ITERATION_START_3 >= 81 +# define MSGPACK_PP_ITERATION_3 81 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 80 && MSGPACK_PP_ITERATION_START_3 >= 80 +# define MSGPACK_PP_ITERATION_3 80 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 79 && MSGPACK_PP_ITERATION_START_3 >= 79 +# define MSGPACK_PP_ITERATION_3 79 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 78 && MSGPACK_PP_ITERATION_START_3 >= 78 +# define MSGPACK_PP_ITERATION_3 78 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 77 && MSGPACK_PP_ITERATION_START_3 >= 77 +# define MSGPACK_PP_ITERATION_3 77 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 76 && MSGPACK_PP_ITERATION_START_3 >= 76 +# define MSGPACK_PP_ITERATION_3 76 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 75 && MSGPACK_PP_ITERATION_START_3 >= 75 +# define MSGPACK_PP_ITERATION_3 75 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 74 && MSGPACK_PP_ITERATION_START_3 >= 74 +# define MSGPACK_PP_ITERATION_3 74 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 73 && MSGPACK_PP_ITERATION_START_3 >= 73 +# define MSGPACK_PP_ITERATION_3 73 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 72 && MSGPACK_PP_ITERATION_START_3 >= 72 +# define MSGPACK_PP_ITERATION_3 72 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 71 && MSGPACK_PP_ITERATION_START_3 >= 71 +# define MSGPACK_PP_ITERATION_3 71 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 70 && MSGPACK_PP_ITERATION_START_3 >= 70 +# define MSGPACK_PP_ITERATION_3 70 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 69 && MSGPACK_PP_ITERATION_START_3 >= 69 +# define MSGPACK_PP_ITERATION_3 69 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 68 && MSGPACK_PP_ITERATION_START_3 >= 68 +# define MSGPACK_PP_ITERATION_3 68 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 67 && MSGPACK_PP_ITERATION_START_3 >= 67 +# define MSGPACK_PP_ITERATION_3 67 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 66 && MSGPACK_PP_ITERATION_START_3 >= 66 +# define MSGPACK_PP_ITERATION_3 66 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 65 && MSGPACK_PP_ITERATION_START_3 >= 65 +# define MSGPACK_PP_ITERATION_3 65 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 64 && MSGPACK_PP_ITERATION_START_3 >= 64 +# define MSGPACK_PP_ITERATION_3 64 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 63 && MSGPACK_PP_ITERATION_START_3 >= 63 +# define MSGPACK_PP_ITERATION_3 63 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 62 && MSGPACK_PP_ITERATION_START_3 >= 62 +# define MSGPACK_PP_ITERATION_3 62 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 61 && MSGPACK_PP_ITERATION_START_3 >= 61 +# define MSGPACK_PP_ITERATION_3 61 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 60 && MSGPACK_PP_ITERATION_START_3 >= 60 +# define MSGPACK_PP_ITERATION_3 60 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 59 && MSGPACK_PP_ITERATION_START_3 >= 59 +# define MSGPACK_PP_ITERATION_3 59 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 58 && MSGPACK_PP_ITERATION_START_3 >= 58 +# define MSGPACK_PP_ITERATION_3 58 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 57 && MSGPACK_PP_ITERATION_START_3 >= 57 +# define MSGPACK_PP_ITERATION_3 57 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 56 && MSGPACK_PP_ITERATION_START_3 >= 56 +# define MSGPACK_PP_ITERATION_3 56 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 55 && MSGPACK_PP_ITERATION_START_3 >= 55 +# define MSGPACK_PP_ITERATION_3 55 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 54 && MSGPACK_PP_ITERATION_START_3 >= 54 +# define MSGPACK_PP_ITERATION_3 54 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 53 && MSGPACK_PP_ITERATION_START_3 >= 53 +# define MSGPACK_PP_ITERATION_3 53 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 52 && MSGPACK_PP_ITERATION_START_3 >= 52 +# define MSGPACK_PP_ITERATION_3 52 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 51 && MSGPACK_PP_ITERATION_START_3 >= 51 +# define MSGPACK_PP_ITERATION_3 51 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 50 && MSGPACK_PP_ITERATION_START_3 >= 50 +# define MSGPACK_PP_ITERATION_3 50 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 49 && MSGPACK_PP_ITERATION_START_3 >= 49 +# define MSGPACK_PP_ITERATION_3 49 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 48 && MSGPACK_PP_ITERATION_START_3 >= 48 +# define MSGPACK_PP_ITERATION_3 48 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 47 && MSGPACK_PP_ITERATION_START_3 >= 47 +# define MSGPACK_PP_ITERATION_3 47 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 46 && MSGPACK_PP_ITERATION_START_3 >= 46 +# define MSGPACK_PP_ITERATION_3 46 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 45 && MSGPACK_PP_ITERATION_START_3 >= 45 +# define MSGPACK_PP_ITERATION_3 45 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 44 && MSGPACK_PP_ITERATION_START_3 >= 44 +# define MSGPACK_PP_ITERATION_3 44 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 43 && MSGPACK_PP_ITERATION_START_3 >= 43 +# define MSGPACK_PP_ITERATION_3 43 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 42 && MSGPACK_PP_ITERATION_START_3 >= 42 +# define MSGPACK_PP_ITERATION_3 42 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 41 && MSGPACK_PP_ITERATION_START_3 >= 41 +# define MSGPACK_PP_ITERATION_3 41 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 40 && MSGPACK_PP_ITERATION_START_3 >= 40 +# define MSGPACK_PP_ITERATION_3 40 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 39 && MSGPACK_PP_ITERATION_START_3 >= 39 +# define MSGPACK_PP_ITERATION_3 39 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 38 && MSGPACK_PP_ITERATION_START_3 >= 38 +# define MSGPACK_PP_ITERATION_3 38 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 37 && MSGPACK_PP_ITERATION_START_3 >= 37 +# define MSGPACK_PP_ITERATION_3 37 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 36 && MSGPACK_PP_ITERATION_START_3 >= 36 +# define MSGPACK_PP_ITERATION_3 36 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 35 && MSGPACK_PP_ITERATION_START_3 >= 35 +# define MSGPACK_PP_ITERATION_3 35 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 34 && MSGPACK_PP_ITERATION_START_3 >= 34 +# define MSGPACK_PP_ITERATION_3 34 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 33 && MSGPACK_PP_ITERATION_START_3 >= 33 +# define MSGPACK_PP_ITERATION_3 33 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 32 && MSGPACK_PP_ITERATION_START_3 >= 32 +# define MSGPACK_PP_ITERATION_3 32 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 31 && MSGPACK_PP_ITERATION_START_3 >= 31 +# define MSGPACK_PP_ITERATION_3 31 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 30 && MSGPACK_PP_ITERATION_START_3 >= 30 +# define MSGPACK_PP_ITERATION_3 30 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 29 && MSGPACK_PP_ITERATION_START_3 >= 29 +# define MSGPACK_PP_ITERATION_3 29 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 28 && MSGPACK_PP_ITERATION_START_3 >= 28 +# define MSGPACK_PP_ITERATION_3 28 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 27 && MSGPACK_PP_ITERATION_START_3 >= 27 +# define MSGPACK_PP_ITERATION_3 27 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 26 && MSGPACK_PP_ITERATION_START_3 >= 26 +# define MSGPACK_PP_ITERATION_3 26 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 25 && MSGPACK_PP_ITERATION_START_3 >= 25 +# define MSGPACK_PP_ITERATION_3 25 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 24 && MSGPACK_PP_ITERATION_START_3 >= 24 +# define MSGPACK_PP_ITERATION_3 24 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 23 && MSGPACK_PP_ITERATION_START_3 >= 23 +# define MSGPACK_PP_ITERATION_3 23 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 22 && MSGPACK_PP_ITERATION_START_3 >= 22 +# define MSGPACK_PP_ITERATION_3 22 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 21 && MSGPACK_PP_ITERATION_START_3 >= 21 +# define MSGPACK_PP_ITERATION_3 21 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 20 && MSGPACK_PP_ITERATION_START_3 >= 20 +# define MSGPACK_PP_ITERATION_3 20 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 19 && MSGPACK_PP_ITERATION_START_3 >= 19 +# define MSGPACK_PP_ITERATION_3 19 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 18 && MSGPACK_PP_ITERATION_START_3 >= 18 +# define MSGPACK_PP_ITERATION_3 18 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 17 && MSGPACK_PP_ITERATION_START_3 >= 17 +# define MSGPACK_PP_ITERATION_3 17 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 16 && MSGPACK_PP_ITERATION_START_3 >= 16 +# define MSGPACK_PP_ITERATION_3 16 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 15 && MSGPACK_PP_ITERATION_START_3 >= 15 +# define MSGPACK_PP_ITERATION_3 15 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 14 && MSGPACK_PP_ITERATION_START_3 >= 14 +# define MSGPACK_PP_ITERATION_3 14 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 13 && MSGPACK_PP_ITERATION_START_3 >= 13 +# define MSGPACK_PP_ITERATION_3 13 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 12 && MSGPACK_PP_ITERATION_START_3 >= 12 +# define MSGPACK_PP_ITERATION_3 12 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 11 && MSGPACK_PP_ITERATION_START_3 >= 11 +# define MSGPACK_PP_ITERATION_3 11 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 10 && MSGPACK_PP_ITERATION_START_3 >= 10 +# define MSGPACK_PP_ITERATION_3 10 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 9 && MSGPACK_PP_ITERATION_START_3 >= 9 +# define MSGPACK_PP_ITERATION_3 9 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 8 && MSGPACK_PP_ITERATION_START_3 >= 8 +# define MSGPACK_PP_ITERATION_3 8 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 7 && MSGPACK_PP_ITERATION_START_3 >= 7 +# define MSGPACK_PP_ITERATION_3 7 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 6 && MSGPACK_PP_ITERATION_START_3 >= 6 +# define MSGPACK_PP_ITERATION_3 6 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 5 && MSGPACK_PP_ITERATION_START_3 >= 5 +# define MSGPACK_PP_ITERATION_3 5 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 4 && MSGPACK_PP_ITERATION_START_3 >= 4 +# define MSGPACK_PP_ITERATION_3 4 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 3 && MSGPACK_PP_ITERATION_START_3 >= 3 +# define MSGPACK_PP_ITERATION_3 3 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 2 && MSGPACK_PP_ITERATION_START_3 >= 2 +# define MSGPACK_PP_ITERATION_3 2 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 1 && MSGPACK_PP_ITERATION_START_3 >= 1 +# define MSGPACK_PP_ITERATION_3 1 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif +# if MSGPACK_PP_ITERATION_FINISH_3 <= 0 && MSGPACK_PP_ITERATION_START_3 >= 0 +# define MSGPACK_PP_ITERATION_3 0 +# include MSGPACK_PP_FILENAME_3 +# undef MSGPACK_PP_ITERATION_3 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse4.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse4.hpp new file mode 100644 index 000000000000..2a85d56fe9b0 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse4.hpp @@ -0,0 +1,1296 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# if MSGPACK_PP_ITERATION_FINISH_4 <= 256 && MSGPACK_PP_ITERATION_START_4 >= 256 +# define MSGPACK_PP_ITERATION_4 256 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 255 && MSGPACK_PP_ITERATION_START_4 >= 255 +# define MSGPACK_PP_ITERATION_4 255 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 254 && MSGPACK_PP_ITERATION_START_4 >= 254 +# define MSGPACK_PP_ITERATION_4 254 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 253 && MSGPACK_PP_ITERATION_START_4 >= 253 +# define MSGPACK_PP_ITERATION_4 253 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 252 && MSGPACK_PP_ITERATION_START_4 >= 252 +# define MSGPACK_PP_ITERATION_4 252 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 251 && MSGPACK_PP_ITERATION_START_4 >= 251 +# define MSGPACK_PP_ITERATION_4 251 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 250 && MSGPACK_PP_ITERATION_START_4 >= 250 +# define MSGPACK_PP_ITERATION_4 250 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 249 && MSGPACK_PP_ITERATION_START_4 >= 249 +# define MSGPACK_PP_ITERATION_4 249 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 248 && MSGPACK_PP_ITERATION_START_4 >= 248 +# define MSGPACK_PP_ITERATION_4 248 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 247 && MSGPACK_PP_ITERATION_START_4 >= 247 +# define MSGPACK_PP_ITERATION_4 247 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 246 && MSGPACK_PP_ITERATION_START_4 >= 246 +# define MSGPACK_PP_ITERATION_4 246 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 245 && MSGPACK_PP_ITERATION_START_4 >= 245 +# define MSGPACK_PP_ITERATION_4 245 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 244 && MSGPACK_PP_ITERATION_START_4 >= 244 +# define MSGPACK_PP_ITERATION_4 244 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 243 && MSGPACK_PP_ITERATION_START_4 >= 243 +# define MSGPACK_PP_ITERATION_4 243 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 242 && MSGPACK_PP_ITERATION_START_4 >= 242 +# define MSGPACK_PP_ITERATION_4 242 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 241 && MSGPACK_PP_ITERATION_START_4 >= 241 +# define MSGPACK_PP_ITERATION_4 241 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 240 && MSGPACK_PP_ITERATION_START_4 >= 240 +# define MSGPACK_PP_ITERATION_4 240 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 239 && MSGPACK_PP_ITERATION_START_4 >= 239 +# define MSGPACK_PP_ITERATION_4 239 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 238 && MSGPACK_PP_ITERATION_START_4 >= 238 +# define MSGPACK_PP_ITERATION_4 238 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 237 && MSGPACK_PP_ITERATION_START_4 >= 237 +# define MSGPACK_PP_ITERATION_4 237 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 236 && MSGPACK_PP_ITERATION_START_4 >= 236 +# define MSGPACK_PP_ITERATION_4 236 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 235 && MSGPACK_PP_ITERATION_START_4 >= 235 +# define MSGPACK_PP_ITERATION_4 235 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 234 && MSGPACK_PP_ITERATION_START_4 >= 234 +# define MSGPACK_PP_ITERATION_4 234 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 233 && MSGPACK_PP_ITERATION_START_4 >= 233 +# define MSGPACK_PP_ITERATION_4 233 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 232 && MSGPACK_PP_ITERATION_START_4 >= 232 +# define MSGPACK_PP_ITERATION_4 232 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 231 && MSGPACK_PP_ITERATION_START_4 >= 231 +# define MSGPACK_PP_ITERATION_4 231 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 230 && MSGPACK_PP_ITERATION_START_4 >= 230 +# define MSGPACK_PP_ITERATION_4 230 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 229 && MSGPACK_PP_ITERATION_START_4 >= 229 +# define MSGPACK_PP_ITERATION_4 229 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 228 && MSGPACK_PP_ITERATION_START_4 >= 228 +# define MSGPACK_PP_ITERATION_4 228 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 227 && MSGPACK_PP_ITERATION_START_4 >= 227 +# define MSGPACK_PP_ITERATION_4 227 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 226 && MSGPACK_PP_ITERATION_START_4 >= 226 +# define MSGPACK_PP_ITERATION_4 226 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 225 && MSGPACK_PP_ITERATION_START_4 >= 225 +# define MSGPACK_PP_ITERATION_4 225 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 224 && MSGPACK_PP_ITERATION_START_4 >= 224 +# define MSGPACK_PP_ITERATION_4 224 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 223 && MSGPACK_PP_ITERATION_START_4 >= 223 +# define MSGPACK_PP_ITERATION_4 223 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 222 && MSGPACK_PP_ITERATION_START_4 >= 222 +# define MSGPACK_PP_ITERATION_4 222 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 221 && MSGPACK_PP_ITERATION_START_4 >= 221 +# define MSGPACK_PP_ITERATION_4 221 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 220 && MSGPACK_PP_ITERATION_START_4 >= 220 +# define MSGPACK_PP_ITERATION_4 220 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 219 && MSGPACK_PP_ITERATION_START_4 >= 219 +# define MSGPACK_PP_ITERATION_4 219 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 218 && MSGPACK_PP_ITERATION_START_4 >= 218 +# define MSGPACK_PP_ITERATION_4 218 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 217 && MSGPACK_PP_ITERATION_START_4 >= 217 +# define MSGPACK_PP_ITERATION_4 217 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 216 && MSGPACK_PP_ITERATION_START_4 >= 216 +# define MSGPACK_PP_ITERATION_4 216 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 215 && MSGPACK_PP_ITERATION_START_4 >= 215 +# define MSGPACK_PP_ITERATION_4 215 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 214 && MSGPACK_PP_ITERATION_START_4 >= 214 +# define MSGPACK_PP_ITERATION_4 214 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 213 && MSGPACK_PP_ITERATION_START_4 >= 213 +# define MSGPACK_PP_ITERATION_4 213 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 212 && MSGPACK_PP_ITERATION_START_4 >= 212 +# define MSGPACK_PP_ITERATION_4 212 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 211 && MSGPACK_PP_ITERATION_START_4 >= 211 +# define MSGPACK_PP_ITERATION_4 211 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 210 && MSGPACK_PP_ITERATION_START_4 >= 210 +# define MSGPACK_PP_ITERATION_4 210 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 209 && MSGPACK_PP_ITERATION_START_4 >= 209 +# define MSGPACK_PP_ITERATION_4 209 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 208 && MSGPACK_PP_ITERATION_START_4 >= 208 +# define MSGPACK_PP_ITERATION_4 208 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 207 && MSGPACK_PP_ITERATION_START_4 >= 207 +# define MSGPACK_PP_ITERATION_4 207 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 206 && MSGPACK_PP_ITERATION_START_4 >= 206 +# define MSGPACK_PP_ITERATION_4 206 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 205 && MSGPACK_PP_ITERATION_START_4 >= 205 +# define MSGPACK_PP_ITERATION_4 205 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 204 && MSGPACK_PP_ITERATION_START_4 >= 204 +# define MSGPACK_PP_ITERATION_4 204 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 203 && MSGPACK_PP_ITERATION_START_4 >= 203 +# define MSGPACK_PP_ITERATION_4 203 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 202 && MSGPACK_PP_ITERATION_START_4 >= 202 +# define MSGPACK_PP_ITERATION_4 202 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 201 && MSGPACK_PP_ITERATION_START_4 >= 201 +# define MSGPACK_PP_ITERATION_4 201 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 200 && MSGPACK_PP_ITERATION_START_4 >= 200 +# define MSGPACK_PP_ITERATION_4 200 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 199 && MSGPACK_PP_ITERATION_START_4 >= 199 +# define MSGPACK_PP_ITERATION_4 199 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 198 && MSGPACK_PP_ITERATION_START_4 >= 198 +# define MSGPACK_PP_ITERATION_4 198 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 197 && MSGPACK_PP_ITERATION_START_4 >= 197 +# define MSGPACK_PP_ITERATION_4 197 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 196 && MSGPACK_PP_ITERATION_START_4 >= 196 +# define MSGPACK_PP_ITERATION_4 196 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 195 && MSGPACK_PP_ITERATION_START_4 >= 195 +# define MSGPACK_PP_ITERATION_4 195 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 194 && MSGPACK_PP_ITERATION_START_4 >= 194 +# define MSGPACK_PP_ITERATION_4 194 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 193 && MSGPACK_PP_ITERATION_START_4 >= 193 +# define MSGPACK_PP_ITERATION_4 193 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 192 && MSGPACK_PP_ITERATION_START_4 >= 192 +# define MSGPACK_PP_ITERATION_4 192 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 191 && MSGPACK_PP_ITERATION_START_4 >= 191 +# define MSGPACK_PP_ITERATION_4 191 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 190 && MSGPACK_PP_ITERATION_START_4 >= 190 +# define MSGPACK_PP_ITERATION_4 190 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 189 && MSGPACK_PP_ITERATION_START_4 >= 189 +# define MSGPACK_PP_ITERATION_4 189 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 188 && MSGPACK_PP_ITERATION_START_4 >= 188 +# define MSGPACK_PP_ITERATION_4 188 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 187 && MSGPACK_PP_ITERATION_START_4 >= 187 +# define MSGPACK_PP_ITERATION_4 187 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 186 && MSGPACK_PP_ITERATION_START_4 >= 186 +# define MSGPACK_PP_ITERATION_4 186 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 185 && MSGPACK_PP_ITERATION_START_4 >= 185 +# define MSGPACK_PP_ITERATION_4 185 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 184 && MSGPACK_PP_ITERATION_START_4 >= 184 +# define MSGPACK_PP_ITERATION_4 184 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 183 && MSGPACK_PP_ITERATION_START_4 >= 183 +# define MSGPACK_PP_ITERATION_4 183 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 182 && MSGPACK_PP_ITERATION_START_4 >= 182 +# define MSGPACK_PP_ITERATION_4 182 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 181 && MSGPACK_PP_ITERATION_START_4 >= 181 +# define MSGPACK_PP_ITERATION_4 181 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 180 && MSGPACK_PP_ITERATION_START_4 >= 180 +# define MSGPACK_PP_ITERATION_4 180 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 179 && MSGPACK_PP_ITERATION_START_4 >= 179 +# define MSGPACK_PP_ITERATION_4 179 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 178 && MSGPACK_PP_ITERATION_START_4 >= 178 +# define MSGPACK_PP_ITERATION_4 178 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 177 && MSGPACK_PP_ITERATION_START_4 >= 177 +# define MSGPACK_PP_ITERATION_4 177 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 176 && MSGPACK_PP_ITERATION_START_4 >= 176 +# define MSGPACK_PP_ITERATION_4 176 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 175 && MSGPACK_PP_ITERATION_START_4 >= 175 +# define MSGPACK_PP_ITERATION_4 175 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 174 && MSGPACK_PP_ITERATION_START_4 >= 174 +# define MSGPACK_PP_ITERATION_4 174 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 173 && MSGPACK_PP_ITERATION_START_4 >= 173 +# define MSGPACK_PP_ITERATION_4 173 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 172 && MSGPACK_PP_ITERATION_START_4 >= 172 +# define MSGPACK_PP_ITERATION_4 172 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 171 && MSGPACK_PP_ITERATION_START_4 >= 171 +# define MSGPACK_PP_ITERATION_4 171 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 170 && MSGPACK_PP_ITERATION_START_4 >= 170 +# define MSGPACK_PP_ITERATION_4 170 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 169 && MSGPACK_PP_ITERATION_START_4 >= 169 +# define MSGPACK_PP_ITERATION_4 169 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 168 && MSGPACK_PP_ITERATION_START_4 >= 168 +# define MSGPACK_PP_ITERATION_4 168 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 167 && MSGPACK_PP_ITERATION_START_4 >= 167 +# define MSGPACK_PP_ITERATION_4 167 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 166 && MSGPACK_PP_ITERATION_START_4 >= 166 +# define MSGPACK_PP_ITERATION_4 166 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 165 && MSGPACK_PP_ITERATION_START_4 >= 165 +# define MSGPACK_PP_ITERATION_4 165 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 164 && MSGPACK_PP_ITERATION_START_4 >= 164 +# define MSGPACK_PP_ITERATION_4 164 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 163 && MSGPACK_PP_ITERATION_START_4 >= 163 +# define MSGPACK_PP_ITERATION_4 163 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 162 && MSGPACK_PP_ITERATION_START_4 >= 162 +# define MSGPACK_PP_ITERATION_4 162 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 161 && MSGPACK_PP_ITERATION_START_4 >= 161 +# define MSGPACK_PP_ITERATION_4 161 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 160 && MSGPACK_PP_ITERATION_START_4 >= 160 +# define MSGPACK_PP_ITERATION_4 160 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 159 && MSGPACK_PP_ITERATION_START_4 >= 159 +# define MSGPACK_PP_ITERATION_4 159 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 158 && MSGPACK_PP_ITERATION_START_4 >= 158 +# define MSGPACK_PP_ITERATION_4 158 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 157 && MSGPACK_PP_ITERATION_START_4 >= 157 +# define MSGPACK_PP_ITERATION_4 157 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 156 && MSGPACK_PP_ITERATION_START_4 >= 156 +# define MSGPACK_PP_ITERATION_4 156 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 155 && MSGPACK_PP_ITERATION_START_4 >= 155 +# define MSGPACK_PP_ITERATION_4 155 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 154 && MSGPACK_PP_ITERATION_START_4 >= 154 +# define MSGPACK_PP_ITERATION_4 154 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 153 && MSGPACK_PP_ITERATION_START_4 >= 153 +# define MSGPACK_PP_ITERATION_4 153 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 152 && MSGPACK_PP_ITERATION_START_4 >= 152 +# define MSGPACK_PP_ITERATION_4 152 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 151 && MSGPACK_PP_ITERATION_START_4 >= 151 +# define MSGPACK_PP_ITERATION_4 151 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 150 && MSGPACK_PP_ITERATION_START_4 >= 150 +# define MSGPACK_PP_ITERATION_4 150 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 149 && MSGPACK_PP_ITERATION_START_4 >= 149 +# define MSGPACK_PP_ITERATION_4 149 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 148 && MSGPACK_PP_ITERATION_START_4 >= 148 +# define MSGPACK_PP_ITERATION_4 148 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 147 && MSGPACK_PP_ITERATION_START_4 >= 147 +# define MSGPACK_PP_ITERATION_4 147 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 146 && MSGPACK_PP_ITERATION_START_4 >= 146 +# define MSGPACK_PP_ITERATION_4 146 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 145 && MSGPACK_PP_ITERATION_START_4 >= 145 +# define MSGPACK_PP_ITERATION_4 145 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 144 && MSGPACK_PP_ITERATION_START_4 >= 144 +# define MSGPACK_PP_ITERATION_4 144 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 143 && MSGPACK_PP_ITERATION_START_4 >= 143 +# define MSGPACK_PP_ITERATION_4 143 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 142 && MSGPACK_PP_ITERATION_START_4 >= 142 +# define MSGPACK_PP_ITERATION_4 142 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 141 && MSGPACK_PP_ITERATION_START_4 >= 141 +# define MSGPACK_PP_ITERATION_4 141 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 140 && MSGPACK_PP_ITERATION_START_4 >= 140 +# define MSGPACK_PP_ITERATION_4 140 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 139 && MSGPACK_PP_ITERATION_START_4 >= 139 +# define MSGPACK_PP_ITERATION_4 139 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 138 && MSGPACK_PP_ITERATION_START_4 >= 138 +# define MSGPACK_PP_ITERATION_4 138 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 137 && MSGPACK_PP_ITERATION_START_4 >= 137 +# define MSGPACK_PP_ITERATION_4 137 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 136 && MSGPACK_PP_ITERATION_START_4 >= 136 +# define MSGPACK_PP_ITERATION_4 136 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 135 && MSGPACK_PP_ITERATION_START_4 >= 135 +# define MSGPACK_PP_ITERATION_4 135 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 134 && MSGPACK_PP_ITERATION_START_4 >= 134 +# define MSGPACK_PP_ITERATION_4 134 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 133 && MSGPACK_PP_ITERATION_START_4 >= 133 +# define MSGPACK_PP_ITERATION_4 133 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 132 && MSGPACK_PP_ITERATION_START_4 >= 132 +# define MSGPACK_PP_ITERATION_4 132 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 131 && MSGPACK_PP_ITERATION_START_4 >= 131 +# define MSGPACK_PP_ITERATION_4 131 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 130 && MSGPACK_PP_ITERATION_START_4 >= 130 +# define MSGPACK_PP_ITERATION_4 130 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 129 && MSGPACK_PP_ITERATION_START_4 >= 129 +# define MSGPACK_PP_ITERATION_4 129 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 128 && MSGPACK_PP_ITERATION_START_4 >= 128 +# define MSGPACK_PP_ITERATION_4 128 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 127 && MSGPACK_PP_ITERATION_START_4 >= 127 +# define MSGPACK_PP_ITERATION_4 127 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 126 && MSGPACK_PP_ITERATION_START_4 >= 126 +# define MSGPACK_PP_ITERATION_4 126 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 125 && MSGPACK_PP_ITERATION_START_4 >= 125 +# define MSGPACK_PP_ITERATION_4 125 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 124 && MSGPACK_PP_ITERATION_START_4 >= 124 +# define MSGPACK_PP_ITERATION_4 124 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 123 && MSGPACK_PP_ITERATION_START_4 >= 123 +# define MSGPACK_PP_ITERATION_4 123 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 122 && MSGPACK_PP_ITERATION_START_4 >= 122 +# define MSGPACK_PP_ITERATION_4 122 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 121 && MSGPACK_PP_ITERATION_START_4 >= 121 +# define MSGPACK_PP_ITERATION_4 121 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 120 && MSGPACK_PP_ITERATION_START_4 >= 120 +# define MSGPACK_PP_ITERATION_4 120 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 119 && MSGPACK_PP_ITERATION_START_4 >= 119 +# define MSGPACK_PP_ITERATION_4 119 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 118 && MSGPACK_PP_ITERATION_START_4 >= 118 +# define MSGPACK_PP_ITERATION_4 118 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 117 && MSGPACK_PP_ITERATION_START_4 >= 117 +# define MSGPACK_PP_ITERATION_4 117 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 116 && MSGPACK_PP_ITERATION_START_4 >= 116 +# define MSGPACK_PP_ITERATION_4 116 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 115 && MSGPACK_PP_ITERATION_START_4 >= 115 +# define MSGPACK_PP_ITERATION_4 115 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 114 && MSGPACK_PP_ITERATION_START_4 >= 114 +# define MSGPACK_PP_ITERATION_4 114 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 113 && MSGPACK_PP_ITERATION_START_4 >= 113 +# define MSGPACK_PP_ITERATION_4 113 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 112 && MSGPACK_PP_ITERATION_START_4 >= 112 +# define MSGPACK_PP_ITERATION_4 112 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 111 && MSGPACK_PP_ITERATION_START_4 >= 111 +# define MSGPACK_PP_ITERATION_4 111 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 110 && MSGPACK_PP_ITERATION_START_4 >= 110 +# define MSGPACK_PP_ITERATION_4 110 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 109 && MSGPACK_PP_ITERATION_START_4 >= 109 +# define MSGPACK_PP_ITERATION_4 109 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 108 && MSGPACK_PP_ITERATION_START_4 >= 108 +# define MSGPACK_PP_ITERATION_4 108 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 107 && MSGPACK_PP_ITERATION_START_4 >= 107 +# define MSGPACK_PP_ITERATION_4 107 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 106 && MSGPACK_PP_ITERATION_START_4 >= 106 +# define MSGPACK_PP_ITERATION_4 106 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 105 && MSGPACK_PP_ITERATION_START_4 >= 105 +# define MSGPACK_PP_ITERATION_4 105 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 104 && MSGPACK_PP_ITERATION_START_4 >= 104 +# define MSGPACK_PP_ITERATION_4 104 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 103 && MSGPACK_PP_ITERATION_START_4 >= 103 +# define MSGPACK_PP_ITERATION_4 103 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 102 && MSGPACK_PP_ITERATION_START_4 >= 102 +# define MSGPACK_PP_ITERATION_4 102 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 101 && MSGPACK_PP_ITERATION_START_4 >= 101 +# define MSGPACK_PP_ITERATION_4 101 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 100 && MSGPACK_PP_ITERATION_START_4 >= 100 +# define MSGPACK_PP_ITERATION_4 100 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 99 && MSGPACK_PP_ITERATION_START_4 >= 99 +# define MSGPACK_PP_ITERATION_4 99 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 98 && MSGPACK_PP_ITERATION_START_4 >= 98 +# define MSGPACK_PP_ITERATION_4 98 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 97 && MSGPACK_PP_ITERATION_START_4 >= 97 +# define MSGPACK_PP_ITERATION_4 97 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 96 && MSGPACK_PP_ITERATION_START_4 >= 96 +# define MSGPACK_PP_ITERATION_4 96 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 95 && MSGPACK_PP_ITERATION_START_4 >= 95 +# define MSGPACK_PP_ITERATION_4 95 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 94 && MSGPACK_PP_ITERATION_START_4 >= 94 +# define MSGPACK_PP_ITERATION_4 94 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 93 && MSGPACK_PP_ITERATION_START_4 >= 93 +# define MSGPACK_PP_ITERATION_4 93 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 92 && MSGPACK_PP_ITERATION_START_4 >= 92 +# define MSGPACK_PP_ITERATION_4 92 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 91 && MSGPACK_PP_ITERATION_START_4 >= 91 +# define MSGPACK_PP_ITERATION_4 91 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 90 && MSGPACK_PP_ITERATION_START_4 >= 90 +# define MSGPACK_PP_ITERATION_4 90 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 89 && MSGPACK_PP_ITERATION_START_4 >= 89 +# define MSGPACK_PP_ITERATION_4 89 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 88 && MSGPACK_PP_ITERATION_START_4 >= 88 +# define MSGPACK_PP_ITERATION_4 88 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 87 && MSGPACK_PP_ITERATION_START_4 >= 87 +# define MSGPACK_PP_ITERATION_4 87 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 86 && MSGPACK_PP_ITERATION_START_4 >= 86 +# define MSGPACK_PP_ITERATION_4 86 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 85 && MSGPACK_PP_ITERATION_START_4 >= 85 +# define MSGPACK_PP_ITERATION_4 85 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 84 && MSGPACK_PP_ITERATION_START_4 >= 84 +# define MSGPACK_PP_ITERATION_4 84 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 83 && MSGPACK_PP_ITERATION_START_4 >= 83 +# define MSGPACK_PP_ITERATION_4 83 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 82 && MSGPACK_PP_ITERATION_START_4 >= 82 +# define MSGPACK_PP_ITERATION_4 82 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 81 && MSGPACK_PP_ITERATION_START_4 >= 81 +# define MSGPACK_PP_ITERATION_4 81 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 80 && MSGPACK_PP_ITERATION_START_4 >= 80 +# define MSGPACK_PP_ITERATION_4 80 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 79 && MSGPACK_PP_ITERATION_START_4 >= 79 +# define MSGPACK_PP_ITERATION_4 79 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 78 && MSGPACK_PP_ITERATION_START_4 >= 78 +# define MSGPACK_PP_ITERATION_4 78 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 77 && MSGPACK_PP_ITERATION_START_4 >= 77 +# define MSGPACK_PP_ITERATION_4 77 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 76 && MSGPACK_PP_ITERATION_START_4 >= 76 +# define MSGPACK_PP_ITERATION_4 76 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 75 && MSGPACK_PP_ITERATION_START_4 >= 75 +# define MSGPACK_PP_ITERATION_4 75 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 74 && MSGPACK_PP_ITERATION_START_4 >= 74 +# define MSGPACK_PP_ITERATION_4 74 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 73 && MSGPACK_PP_ITERATION_START_4 >= 73 +# define MSGPACK_PP_ITERATION_4 73 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 72 && MSGPACK_PP_ITERATION_START_4 >= 72 +# define MSGPACK_PP_ITERATION_4 72 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 71 && MSGPACK_PP_ITERATION_START_4 >= 71 +# define MSGPACK_PP_ITERATION_4 71 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 70 && MSGPACK_PP_ITERATION_START_4 >= 70 +# define MSGPACK_PP_ITERATION_4 70 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 69 && MSGPACK_PP_ITERATION_START_4 >= 69 +# define MSGPACK_PP_ITERATION_4 69 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 68 && MSGPACK_PP_ITERATION_START_4 >= 68 +# define MSGPACK_PP_ITERATION_4 68 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 67 && MSGPACK_PP_ITERATION_START_4 >= 67 +# define MSGPACK_PP_ITERATION_4 67 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 66 && MSGPACK_PP_ITERATION_START_4 >= 66 +# define MSGPACK_PP_ITERATION_4 66 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 65 && MSGPACK_PP_ITERATION_START_4 >= 65 +# define MSGPACK_PP_ITERATION_4 65 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 64 && MSGPACK_PP_ITERATION_START_4 >= 64 +# define MSGPACK_PP_ITERATION_4 64 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 63 && MSGPACK_PP_ITERATION_START_4 >= 63 +# define MSGPACK_PP_ITERATION_4 63 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 62 && MSGPACK_PP_ITERATION_START_4 >= 62 +# define MSGPACK_PP_ITERATION_4 62 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 61 && MSGPACK_PP_ITERATION_START_4 >= 61 +# define MSGPACK_PP_ITERATION_4 61 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 60 && MSGPACK_PP_ITERATION_START_4 >= 60 +# define MSGPACK_PP_ITERATION_4 60 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 59 && MSGPACK_PP_ITERATION_START_4 >= 59 +# define MSGPACK_PP_ITERATION_4 59 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 58 && MSGPACK_PP_ITERATION_START_4 >= 58 +# define MSGPACK_PP_ITERATION_4 58 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 57 && MSGPACK_PP_ITERATION_START_4 >= 57 +# define MSGPACK_PP_ITERATION_4 57 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 56 && MSGPACK_PP_ITERATION_START_4 >= 56 +# define MSGPACK_PP_ITERATION_4 56 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 55 && MSGPACK_PP_ITERATION_START_4 >= 55 +# define MSGPACK_PP_ITERATION_4 55 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 54 && MSGPACK_PP_ITERATION_START_4 >= 54 +# define MSGPACK_PP_ITERATION_4 54 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 53 && MSGPACK_PP_ITERATION_START_4 >= 53 +# define MSGPACK_PP_ITERATION_4 53 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 52 && MSGPACK_PP_ITERATION_START_4 >= 52 +# define MSGPACK_PP_ITERATION_4 52 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 51 && MSGPACK_PP_ITERATION_START_4 >= 51 +# define MSGPACK_PP_ITERATION_4 51 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 50 && MSGPACK_PP_ITERATION_START_4 >= 50 +# define MSGPACK_PP_ITERATION_4 50 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 49 && MSGPACK_PP_ITERATION_START_4 >= 49 +# define MSGPACK_PP_ITERATION_4 49 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 48 && MSGPACK_PP_ITERATION_START_4 >= 48 +# define MSGPACK_PP_ITERATION_4 48 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 47 && MSGPACK_PP_ITERATION_START_4 >= 47 +# define MSGPACK_PP_ITERATION_4 47 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 46 && MSGPACK_PP_ITERATION_START_4 >= 46 +# define MSGPACK_PP_ITERATION_4 46 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 45 && MSGPACK_PP_ITERATION_START_4 >= 45 +# define MSGPACK_PP_ITERATION_4 45 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 44 && MSGPACK_PP_ITERATION_START_4 >= 44 +# define MSGPACK_PP_ITERATION_4 44 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 43 && MSGPACK_PP_ITERATION_START_4 >= 43 +# define MSGPACK_PP_ITERATION_4 43 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 42 && MSGPACK_PP_ITERATION_START_4 >= 42 +# define MSGPACK_PP_ITERATION_4 42 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 41 && MSGPACK_PP_ITERATION_START_4 >= 41 +# define MSGPACK_PP_ITERATION_4 41 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 40 && MSGPACK_PP_ITERATION_START_4 >= 40 +# define MSGPACK_PP_ITERATION_4 40 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 39 && MSGPACK_PP_ITERATION_START_4 >= 39 +# define MSGPACK_PP_ITERATION_4 39 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 38 && MSGPACK_PP_ITERATION_START_4 >= 38 +# define MSGPACK_PP_ITERATION_4 38 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 37 && MSGPACK_PP_ITERATION_START_4 >= 37 +# define MSGPACK_PP_ITERATION_4 37 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 36 && MSGPACK_PP_ITERATION_START_4 >= 36 +# define MSGPACK_PP_ITERATION_4 36 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 35 && MSGPACK_PP_ITERATION_START_4 >= 35 +# define MSGPACK_PP_ITERATION_4 35 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 34 && MSGPACK_PP_ITERATION_START_4 >= 34 +# define MSGPACK_PP_ITERATION_4 34 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 33 && MSGPACK_PP_ITERATION_START_4 >= 33 +# define MSGPACK_PP_ITERATION_4 33 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 32 && MSGPACK_PP_ITERATION_START_4 >= 32 +# define MSGPACK_PP_ITERATION_4 32 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 31 && MSGPACK_PP_ITERATION_START_4 >= 31 +# define MSGPACK_PP_ITERATION_4 31 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 30 && MSGPACK_PP_ITERATION_START_4 >= 30 +# define MSGPACK_PP_ITERATION_4 30 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 29 && MSGPACK_PP_ITERATION_START_4 >= 29 +# define MSGPACK_PP_ITERATION_4 29 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 28 && MSGPACK_PP_ITERATION_START_4 >= 28 +# define MSGPACK_PP_ITERATION_4 28 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 27 && MSGPACK_PP_ITERATION_START_4 >= 27 +# define MSGPACK_PP_ITERATION_4 27 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 26 && MSGPACK_PP_ITERATION_START_4 >= 26 +# define MSGPACK_PP_ITERATION_4 26 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 25 && MSGPACK_PP_ITERATION_START_4 >= 25 +# define MSGPACK_PP_ITERATION_4 25 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 24 && MSGPACK_PP_ITERATION_START_4 >= 24 +# define MSGPACK_PP_ITERATION_4 24 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 23 && MSGPACK_PP_ITERATION_START_4 >= 23 +# define MSGPACK_PP_ITERATION_4 23 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 22 && MSGPACK_PP_ITERATION_START_4 >= 22 +# define MSGPACK_PP_ITERATION_4 22 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 21 && MSGPACK_PP_ITERATION_START_4 >= 21 +# define MSGPACK_PP_ITERATION_4 21 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 20 && MSGPACK_PP_ITERATION_START_4 >= 20 +# define MSGPACK_PP_ITERATION_4 20 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 19 && MSGPACK_PP_ITERATION_START_4 >= 19 +# define MSGPACK_PP_ITERATION_4 19 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 18 && MSGPACK_PP_ITERATION_START_4 >= 18 +# define MSGPACK_PP_ITERATION_4 18 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 17 && MSGPACK_PP_ITERATION_START_4 >= 17 +# define MSGPACK_PP_ITERATION_4 17 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 16 && MSGPACK_PP_ITERATION_START_4 >= 16 +# define MSGPACK_PP_ITERATION_4 16 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 15 && MSGPACK_PP_ITERATION_START_4 >= 15 +# define MSGPACK_PP_ITERATION_4 15 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 14 && MSGPACK_PP_ITERATION_START_4 >= 14 +# define MSGPACK_PP_ITERATION_4 14 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 13 && MSGPACK_PP_ITERATION_START_4 >= 13 +# define MSGPACK_PP_ITERATION_4 13 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 12 && MSGPACK_PP_ITERATION_START_4 >= 12 +# define MSGPACK_PP_ITERATION_4 12 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 11 && MSGPACK_PP_ITERATION_START_4 >= 11 +# define MSGPACK_PP_ITERATION_4 11 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 10 && MSGPACK_PP_ITERATION_START_4 >= 10 +# define MSGPACK_PP_ITERATION_4 10 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 9 && MSGPACK_PP_ITERATION_START_4 >= 9 +# define MSGPACK_PP_ITERATION_4 9 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 8 && MSGPACK_PP_ITERATION_START_4 >= 8 +# define MSGPACK_PP_ITERATION_4 8 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 7 && MSGPACK_PP_ITERATION_START_4 >= 7 +# define MSGPACK_PP_ITERATION_4 7 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 6 && MSGPACK_PP_ITERATION_START_4 >= 6 +# define MSGPACK_PP_ITERATION_4 6 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 5 && MSGPACK_PP_ITERATION_START_4 >= 5 +# define MSGPACK_PP_ITERATION_4 5 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 4 && MSGPACK_PP_ITERATION_START_4 >= 4 +# define MSGPACK_PP_ITERATION_4 4 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 3 && MSGPACK_PP_ITERATION_START_4 >= 3 +# define MSGPACK_PP_ITERATION_4 3 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 2 && MSGPACK_PP_ITERATION_START_4 >= 2 +# define MSGPACK_PP_ITERATION_4 2 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 1 && MSGPACK_PP_ITERATION_START_4 >= 1 +# define MSGPACK_PP_ITERATION_4 1 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif +# if MSGPACK_PP_ITERATION_FINISH_4 <= 0 && MSGPACK_PP_ITERATION_START_4 >= 0 +# define MSGPACK_PP_ITERATION_4 0 +# include MSGPACK_PP_FILENAME_4 +# undef MSGPACK_PP_ITERATION_4 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse5.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse5.hpp new file mode 100644 index 000000000000..6cee24d99690 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/iter/reverse5.hpp @@ -0,0 +1,1296 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# if MSGPACK_PP_ITERATION_FINISH_5 <= 256 && MSGPACK_PP_ITERATION_START_5 >= 256 +# define MSGPACK_PP_ITERATION_5 256 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 255 && MSGPACK_PP_ITERATION_START_5 >= 255 +# define MSGPACK_PP_ITERATION_5 255 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 254 && MSGPACK_PP_ITERATION_START_5 >= 254 +# define MSGPACK_PP_ITERATION_5 254 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 253 && MSGPACK_PP_ITERATION_START_5 >= 253 +# define MSGPACK_PP_ITERATION_5 253 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 252 && MSGPACK_PP_ITERATION_START_5 >= 252 +# define MSGPACK_PP_ITERATION_5 252 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 251 && MSGPACK_PP_ITERATION_START_5 >= 251 +# define MSGPACK_PP_ITERATION_5 251 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 250 && MSGPACK_PP_ITERATION_START_5 >= 250 +# define MSGPACK_PP_ITERATION_5 250 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 249 && MSGPACK_PP_ITERATION_START_5 >= 249 +# define MSGPACK_PP_ITERATION_5 249 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 248 && MSGPACK_PP_ITERATION_START_5 >= 248 +# define MSGPACK_PP_ITERATION_5 248 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 247 && MSGPACK_PP_ITERATION_START_5 >= 247 +# define MSGPACK_PP_ITERATION_5 247 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 246 && MSGPACK_PP_ITERATION_START_5 >= 246 +# define MSGPACK_PP_ITERATION_5 246 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 245 && MSGPACK_PP_ITERATION_START_5 >= 245 +# define MSGPACK_PP_ITERATION_5 245 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 244 && MSGPACK_PP_ITERATION_START_5 >= 244 +# define MSGPACK_PP_ITERATION_5 244 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 243 && MSGPACK_PP_ITERATION_START_5 >= 243 +# define MSGPACK_PP_ITERATION_5 243 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 242 && MSGPACK_PP_ITERATION_START_5 >= 242 +# define MSGPACK_PP_ITERATION_5 242 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 241 && MSGPACK_PP_ITERATION_START_5 >= 241 +# define MSGPACK_PP_ITERATION_5 241 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 240 && MSGPACK_PP_ITERATION_START_5 >= 240 +# define MSGPACK_PP_ITERATION_5 240 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 239 && MSGPACK_PP_ITERATION_START_5 >= 239 +# define MSGPACK_PP_ITERATION_5 239 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 238 && MSGPACK_PP_ITERATION_START_5 >= 238 +# define MSGPACK_PP_ITERATION_5 238 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 237 && MSGPACK_PP_ITERATION_START_5 >= 237 +# define MSGPACK_PP_ITERATION_5 237 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 236 && MSGPACK_PP_ITERATION_START_5 >= 236 +# define MSGPACK_PP_ITERATION_5 236 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 235 && MSGPACK_PP_ITERATION_START_5 >= 235 +# define MSGPACK_PP_ITERATION_5 235 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 234 && MSGPACK_PP_ITERATION_START_5 >= 234 +# define MSGPACK_PP_ITERATION_5 234 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 233 && MSGPACK_PP_ITERATION_START_5 >= 233 +# define MSGPACK_PP_ITERATION_5 233 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 232 && MSGPACK_PP_ITERATION_START_5 >= 232 +# define MSGPACK_PP_ITERATION_5 232 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 231 && MSGPACK_PP_ITERATION_START_5 >= 231 +# define MSGPACK_PP_ITERATION_5 231 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 230 && MSGPACK_PP_ITERATION_START_5 >= 230 +# define MSGPACK_PP_ITERATION_5 230 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 229 && MSGPACK_PP_ITERATION_START_5 >= 229 +# define MSGPACK_PP_ITERATION_5 229 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 228 && MSGPACK_PP_ITERATION_START_5 >= 228 +# define MSGPACK_PP_ITERATION_5 228 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 227 && MSGPACK_PP_ITERATION_START_5 >= 227 +# define MSGPACK_PP_ITERATION_5 227 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 226 && MSGPACK_PP_ITERATION_START_5 >= 226 +# define MSGPACK_PP_ITERATION_5 226 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 225 && MSGPACK_PP_ITERATION_START_5 >= 225 +# define MSGPACK_PP_ITERATION_5 225 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 224 && MSGPACK_PP_ITERATION_START_5 >= 224 +# define MSGPACK_PP_ITERATION_5 224 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 223 && MSGPACK_PP_ITERATION_START_5 >= 223 +# define MSGPACK_PP_ITERATION_5 223 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 222 && MSGPACK_PP_ITERATION_START_5 >= 222 +# define MSGPACK_PP_ITERATION_5 222 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 221 && MSGPACK_PP_ITERATION_START_5 >= 221 +# define MSGPACK_PP_ITERATION_5 221 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 220 && MSGPACK_PP_ITERATION_START_5 >= 220 +# define MSGPACK_PP_ITERATION_5 220 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 219 && MSGPACK_PP_ITERATION_START_5 >= 219 +# define MSGPACK_PP_ITERATION_5 219 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 218 && MSGPACK_PP_ITERATION_START_5 >= 218 +# define MSGPACK_PP_ITERATION_5 218 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 217 && MSGPACK_PP_ITERATION_START_5 >= 217 +# define MSGPACK_PP_ITERATION_5 217 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 216 && MSGPACK_PP_ITERATION_START_5 >= 216 +# define MSGPACK_PP_ITERATION_5 216 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 215 && MSGPACK_PP_ITERATION_START_5 >= 215 +# define MSGPACK_PP_ITERATION_5 215 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 214 && MSGPACK_PP_ITERATION_START_5 >= 214 +# define MSGPACK_PP_ITERATION_5 214 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 213 && MSGPACK_PP_ITERATION_START_5 >= 213 +# define MSGPACK_PP_ITERATION_5 213 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 212 && MSGPACK_PP_ITERATION_START_5 >= 212 +# define MSGPACK_PP_ITERATION_5 212 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 211 && MSGPACK_PP_ITERATION_START_5 >= 211 +# define MSGPACK_PP_ITERATION_5 211 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 210 && MSGPACK_PP_ITERATION_START_5 >= 210 +# define MSGPACK_PP_ITERATION_5 210 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 209 && MSGPACK_PP_ITERATION_START_5 >= 209 +# define MSGPACK_PP_ITERATION_5 209 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 208 && MSGPACK_PP_ITERATION_START_5 >= 208 +# define MSGPACK_PP_ITERATION_5 208 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 207 && MSGPACK_PP_ITERATION_START_5 >= 207 +# define MSGPACK_PP_ITERATION_5 207 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 206 && MSGPACK_PP_ITERATION_START_5 >= 206 +# define MSGPACK_PP_ITERATION_5 206 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 205 && MSGPACK_PP_ITERATION_START_5 >= 205 +# define MSGPACK_PP_ITERATION_5 205 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 204 && MSGPACK_PP_ITERATION_START_5 >= 204 +# define MSGPACK_PP_ITERATION_5 204 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 203 && MSGPACK_PP_ITERATION_START_5 >= 203 +# define MSGPACK_PP_ITERATION_5 203 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 202 && MSGPACK_PP_ITERATION_START_5 >= 202 +# define MSGPACK_PP_ITERATION_5 202 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 201 && MSGPACK_PP_ITERATION_START_5 >= 201 +# define MSGPACK_PP_ITERATION_5 201 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 200 && MSGPACK_PP_ITERATION_START_5 >= 200 +# define MSGPACK_PP_ITERATION_5 200 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 199 && MSGPACK_PP_ITERATION_START_5 >= 199 +# define MSGPACK_PP_ITERATION_5 199 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 198 && MSGPACK_PP_ITERATION_START_5 >= 198 +# define MSGPACK_PP_ITERATION_5 198 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 197 && MSGPACK_PP_ITERATION_START_5 >= 197 +# define MSGPACK_PP_ITERATION_5 197 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 196 && MSGPACK_PP_ITERATION_START_5 >= 196 +# define MSGPACK_PP_ITERATION_5 196 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 195 && MSGPACK_PP_ITERATION_START_5 >= 195 +# define MSGPACK_PP_ITERATION_5 195 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 194 && MSGPACK_PP_ITERATION_START_5 >= 194 +# define MSGPACK_PP_ITERATION_5 194 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 193 && MSGPACK_PP_ITERATION_START_5 >= 193 +# define MSGPACK_PP_ITERATION_5 193 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 192 && MSGPACK_PP_ITERATION_START_5 >= 192 +# define MSGPACK_PP_ITERATION_5 192 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 191 && MSGPACK_PP_ITERATION_START_5 >= 191 +# define MSGPACK_PP_ITERATION_5 191 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 190 && MSGPACK_PP_ITERATION_START_5 >= 190 +# define MSGPACK_PP_ITERATION_5 190 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 189 && MSGPACK_PP_ITERATION_START_5 >= 189 +# define MSGPACK_PP_ITERATION_5 189 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 188 && MSGPACK_PP_ITERATION_START_5 >= 188 +# define MSGPACK_PP_ITERATION_5 188 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 187 && MSGPACK_PP_ITERATION_START_5 >= 187 +# define MSGPACK_PP_ITERATION_5 187 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 186 && MSGPACK_PP_ITERATION_START_5 >= 186 +# define MSGPACK_PP_ITERATION_5 186 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 185 && MSGPACK_PP_ITERATION_START_5 >= 185 +# define MSGPACK_PP_ITERATION_5 185 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 184 && MSGPACK_PP_ITERATION_START_5 >= 184 +# define MSGPACK_PP_ITERATION_5 184 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 183 && MSGPACK_PP_ITERATION_START_5 >= 183 +# define MSGPACK_PP_ITERATION_5 183 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 182 && MSGPACK_PP_ITERATION_START_5 >= 182 +# define MSGPACK_PP_ITERATION_5 182 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 181 && MSGPACK_PP_ITERATION_START_5 >= 181 +# define MSGPACK_PP_ITERATION_5 181 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 180 && MSGPACK_PP_ITERATION_START_5 >= 180 +# define MSGPACK_PP_ITERATION_5 180 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 179 && MSGPACK_PP_ITERATION_START_5 >= 179 +# define MSGPACK_PP_ITERATION_5 179 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 178 && MSGPACK_PP_ITERATION_START_5 >= 178 +# define MSGPACK_PP_ITERATION_5 178 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 177 && MSGPACK_PP_ITERATION_START_5 >= 177 +# define MSGPACK_PP_ITERATION_5 177 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 176 && MSGPACK_PP_ITERATION_START_5 >= 176 +# define MSGPACK_PP_ITERATION_5 176 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 175 && MSGPACK_PP_ITERATION_START_5 >= 175 +# define MSGPACK_PP_ITERATION_5 175 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 174 && MSGPACK_PP_ITERATION_START_5 >= 174 +# define MSGPACK_PP_ITERATION_5 174 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 173 && MSGPACK_PP_ITERATION_START_5 >= 173 +# define MSGPACK_PP_ITERATION_5 173 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 172 && MSGPACK_PP_ITERATION_START_5 >= 172 +# define MSGPACK_PP_ITERATION_5 172 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 171 && MSGPACK_PP_ITERATION_START_5 >= 171 +# define MSGPACK_PP_ITERATION_5 171 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 170 && MSGPACK_PP_ITERATION_START_5 >= 170 +# define MSGPACK_PP_ITERATION_5 170 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 169 && MSGPACK_PP_ITERATION_START_5 >= 169 +# define MSGPACK_PP_ITERATION_5 169 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 168 && MSGPACK_PP_ITERATION_START_5 >= 168 +# define MSGPACK_PP_ITERATION_5 168 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 167 && MSGPACK_PP_ITERATION_START_5 >= 167 +# define MSGPACK_PP_ITERATION_5 167 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 166 && MSGPACK_PP_ITERATION_START_5 >= 166 +# define MSGPACK_PP_ITERATION_5 166 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 165 && MSGPACK_PP_ITERATION_START_5 >= 165 +# define MSGPACK_PP_ITERATION_5 165 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 164 && MSGPACK_PP_ITERATION_START_5 >= 164 +# define MSGPACK_PP_ITERATION_5 164 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 163 && MSGPACK_PP_ITERATION_START_5 >= 163 +# define MSGPACK_PP_ITERATION_5 163 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 162 && MSGPACK_PP_ITERATION_START_5 >= 162 +# define MSGPACK_PP_ITERATION_5 162 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 161 && MSGPACK_PP_ITERATION_START_5 >= 161 +# define MSGPACK_PP_ITERATION_5 161 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 160 && MSGPACK_PP_ITERATION_START_5 >= 160 +# define MSGPACK_PP_ITERATION_5 160 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 159 && MSGPACK_PP_ITERATION_START_5 >= 159 +# define MSGPACK_PP_ITERATION_5 159 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 158 && MSGPACK_PP_ITERATION_START_5 >= 158 +# define MSGPACK_PP_ITERATION_5 158 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 157 && MSGPACK_PP_ITERATION_START_5 >= 157 +# define MSGPACK_PP_ITERATION_5 157 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 156 && MSGPACK_PP_ITERATION_START_5 >= 156 +# define MSGPACK_PP_ITERATION_5 156 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 155 && MSGPACK_PP_ITERATION_START_5 >= 155 +# define MSGPACK_PP_ITERATION_5 155 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 154 && MSGPACK_PP_ITERATION_START_5 >= 154 +# define MSGPACK_PP_ITERATION_5 154 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 153 && MSGPACK_PP_ITERATION_START_5 >= 153 +# define MSGPACK_PP_ITERATION_5 153 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 152 && MSGPACK_PP_ITERATION_START_5 >= 152 +# define MSGPACK_PP_ITERATION_5 152 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 151 && MSGPACK_PP_ITERATION_START_5 >= 151 +# define MSGPACK_PP_ITERATION_5 151 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 150 && MSGPACK_PP_ITERATION_START_5 >= 150 +# define MSGPACK_PP_ITERATION_5 150 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 149 && MSGPACK_PP_ITERATION_START_5 >= 149 +# define MSGPACK_PP_ITERATION_5 149 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 148 && MSGPACK_PP_ITERATION_START_5 >= 148 +# define MSGPACK_PP_ITERATION_5 148 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 147 && MSGPACK_PP_ITERATION_START_5 >= 147 +# define MSGPACK_PP_ITERATION_5 147 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 146 && MSGPACK_PP_ITERATION_START_5 >= 146 +# define MSGPACK_PP_ITERATION_5 146 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 145 && MSGPACK_PP_ITERATION_START_5 >= 145 +# define MSGPACK_PP_ITERATION_5 145 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 144 && MSGPACK_PP_ITERATION_START_5 >= 144 +# define MSGPACK_PP_ITERATION_5 144 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 143 && MSGPACK_PP_ITERATION_START_5 >= 143 +# define MSGPACK_PP_ITERATION_5 143 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 142 && MSGPACK_PP_ITERATION_START_5 >= 142 +# define MSGPACK_PP_ITERATION_5 142 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 141 && MSGPACK_PP_ITERATION_START_5 >= 141 +# define MSGPACK_PP_ITERATION_5 141 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 140 && MSGPACK_PP_ITERATION_START_5 >= 140 +# define MSGPACK_PP_ITERATION_5 140 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 139 && MSGPACK_PP_ITERATION_START_5 >= 139 +# define MSGPACK_PP_ITERATION_5 139 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 138 && MSGPACK_PP_ITERATION_START_5 >= 138 +# define MSGPACK_PP_ITERATION_5 138 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 137 && MSGPACK_PP_ITERATION_START_5 >= 137 +# define MSGPACK_PP_ITERATION_5 137 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 136 && MSGPACK_PP_ITERATION_START_5 >= 136 +# define MSGPACK_PP_ITERATION_5 136 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 135 && MSGPACK_PP_ITERATION_START_5 >= 135 +# define MSGPACK_PP_ITERATION_5 135 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 134 && MSGPACK_PP_ITERATION_START_5 >= 134 +# define MSGPACK_PP_ITERATION_5 134 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 133 && MSGPACK_PP_ITERATION_START_5 >= 133 +# define MSGPACK_PP_ITERATION_5 133 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 132 && MSGPACK_PP_ITERATION_START_5 >= 132 +# define MSGPACK_PP_ITERATION_5 132 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 131 && MSGPACK_PP_ITERATION_START_5 >= 131 +# define MSGPACK_PP_ITERATION_5 131 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 130 && MSGPACK_PP_ITERATION_START_5 >= 130 +# define MSGPACK_PP_ITERATION_5 130 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 129 && MSGPACK_PP_ITERATION_START_5 >= 129 +# define MSGPACK_PP_ITERATION_5 129 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 128 && MSGPACK_PP_ITERATION_START_5 >= 128 +# define MSGPACK_PP_ITERATION_5 128 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 127 && MSGPACK_PP_ITERATION_START_5 >= 127 +# define MSGPACK_PP_ITERATION_5 127 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 126 && MSGPACK_PP_ITERATION_START_5 >= 126 +# define MSGPACK_PP_ITERATION_5 126 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 125 && MSGPACK_PP_ITERATION_START_5 >= 125 +# define MSGPACK_PP_ITERATION_5 125 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 124 && MSGPACK_PP_ITERATION_START_5 >= 124 +# define MSGPACK_PP_ITERATION_5 124 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 123 && MSGPACK_PP_ITERATION_START_5 >= 123 +# define MSGPACK_PP_ITERATION_5 123 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 122 && MSGPACK_PP_ITERATION_START_5 >= 122 +# define MSGPACK_PP_ITERATION_5 122 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 121 && MSGPACK_PP_ITERATION_START_5 >= 121 +# define MSGPACK_PP_ITERATION_5 121 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 120 && MSGPACK_PP_ITERATION_START_5 >= 120 +# define MSGPACK_PP_ITERATION_5 120 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 119 && MSGPACK_PP_ITERATION_START_5 >= 119 +# define MSGPACK_PP_ITERATION_5 119 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 118 && MSGPACK_PP_ITERATION_START_5 >= 118 +# define MSGPACK_PP_ITERATION_5 118 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 117 && MSGPACK_PP_ITERATION_START_5 >= 117 +# define MSGPACK_PP_ITERATION_5 117 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 116 && MSGPACK_PP_ITERATION_START_5 >= 116 +# define MSGPACK_PP_ITERATION_5 116 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 115 && MSGPACK_PP_ITERATION_START_5 >= 115 +# define MSGPACK_PP_ITERATION_5 115 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 114 && MSGPACK_PP_ITERATION_START_5 >= 114 +# define MSGPACK_PP_ITERATION_5 114 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 113 && MSGPACK_PP_ITERATION_START_5 >= 113 +# define MSGPACK_PP_ITERATION_5 113 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 112 && MSGPACK_PP_ITERATION_START_5 >= 112 +# define MSGPACK_PP_ITERATION_5 112 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 111 && MSGPACK_PP_ITERATION_START_5 >= 111 +# define MSGPACK_PP_ITERATION_5 111 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 110 && MSGPACK_PP_ITERATION_START_5 >= 110 +# define MSGPACK_PP_ITERATION_5 110 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 109 && MSGPACK_PP_ITERATION_START_5 >= 109 +# define MSGPACK_PP_ITERATION_5 109 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 108 && MSGPACK_PP_ITERATION_START_5 >= 108 +# define MSGPACK_PP_ITERATION_5 108 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 107 && MSGPACK_PP_ITERATION_START_5 >= 107 +# define MSGPACK_PP_ITERATION_5 107 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 106 && MSGPACK_PP_ITERATION_START_5 >= 106 +# define MSGPACK_PP_ITERATION_5 106 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 105 && MSGPACK_PP_ITERATION_START_5 >= 105 +# define MSGPACK_PP_ITERATION_5 105 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 104 && MSGPACK_PP_ITERATION_START_5 >= 104 +# define MSGPACK_PP_ITERATION_5 104 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 103 && MSGPACK_PP_ITERATION_START_5 >= 103 +# define MSGPACK_PP_ITERATION_5 103 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 102 && MSGPACK_PP_ITERATION_START_5 >= 102 +# define MSGPACK_PP_ITERATION_5 102 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 101 && MSGPACK_PP_ITERATION_START_5 >= 101 +# define MSGPACK_PP_ITERATION_5 101 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 100 && MSGPACK_PP_ITERATION_START_5 >= 100 +# define MSGPACK_PP_ITERATION_5 100 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 99 && MSGPACK_PP_ITERATION_START_5 >= 99 +# define MSGPACK_PP_ITERATION_5 99 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 98 && MSGPACK_PP_ITERATION_START_5 >= 98 +# define MSGPACK_PP_ITERATION_5 98 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 97 && MSGPACK_PP_ITERATION_START_5 >= 97 +# define MSGPACK_PP_ITERATION_5 97 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 96 && MSGPACK_PP_ITERATION_START_5 >= 96 +# define MSGPACK_PP_ITERATION_5 96 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 95 && MSGPACK_PP_ITERATION_START_5 >= 95 +# define MSGPACK_PP_ITERATION_5 95 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 94 && MSGPACK_PP_ITERATION_START_5 >= 94 +# define MSGPACK_PP_ITERATION_5 94 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 93 && MSGPACK_PP_ITERATION_START_5 >= 93 +# define MSGPACK_PP_ITERATION_5 93 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 92 && MSGPACK_PP_ITERATION_START_5 >= 92 +# define MSGPACK_PP_ITERATION_5 92 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 91 && MSGPACK_PP_ITERATION_START_5 >= 91 +# define MSGPACK_PP_ITERATION_5 91 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 90 && MSGPACK_PP_ITERATION_START_5 >= 90 +# define MSGPACK_PP_ITERATION_5 90 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 89 && MSGPACK_PP_ITERATION_START_5 >= 89 +# define MSGPACK_PP_ITERATION_5 89 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 88 && MSGPACK_PP_ITERATION_START_5 >= 88 +# define MSGPACK_PP_ITERATION_5 88 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 87 && MSGPACK_PP_ITERATION_START_5 >= 87 +# define MSGPACK_PP_ITERATION_5 87 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 86 && MSGPACK_PP_ITERATION_START_5 >= 86 +# define MSGPACK_PP_ITERATION_5 86 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 85 && MSGPACK_PP_ITERATION_START_5 >= 85 +# define MSGPACK_PP_ITERATION_5 85 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 84 && MSGPACK_PP_ITERATION_START_5 >= 84 +# define MSGPACK_PP_ITERATION_5 84 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 83 && MSGPACK_PP_ITERATION_START_5 >= 83 +# define MSGPACK_PP_ITERATION_5 83 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 82 && MSGPACK_PP_ITERATION_START_5 >= 82 +# define MSGPACK_PP_ITERATION_5 82 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 81 && MSGPACK_PP_ITERATION_START_5 >= 81 +# define MSGPACK_PP_ITERATION_5 81 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 80 && MSGPACK_PP_ITERATION_START_5 >= 80 +# define MSGPACK_PP_ITERATION_5 80 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 79 && MSGPACK_PP_ITERATION_START_5 >= 79 +# define MSGPACK_PP_ITERATION_5 79 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 78 && MSGPACK_PP_ITERATION_START_5 >= 78 +# define MSGPACK_PP_ITERATION_5 78 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 77 && MSGPACK_PP_ITERATION_START_5 >= 77 +# define MSGPACK_PP_ITERATION_5 77 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 76 && MSGPACK_PP_ITERATION_START_5 >= 76 +# define MSGPACK_PP_ITERATION_5 76 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 75 && MSGPACK_PP_ITERATION_START_5 >= 75 +# define MSGPACK_PP_ITERATION_5 75 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 74 && MSGPACK_PP_ITERATION_START_5 >= 74 +# define MSGPACK_PP_ITERATION_5 74 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 73 && MSGPACK_PP_ITERATION_START_5 >= 73 +# define MSGPACK_PP_ITERATION_5 73 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 72 && MSGPACK_PP_ITERATION_START_5 >= 72 +# define MSGPACK_PP_ITERATION_5 72 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 71 && MSGPACK_PP_ITERATION_START_5 >= 71 +# define MSGPACK_PP_ITERATION_5 71 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 70 && MSGPACK_PP_ITERATION_START_5 >= 70 +# define MSGPACK_PP_ITERATION_5 70 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 69 && MSGPACK_PP_ITERATION_START_5 >= 69 +# define MSGPACK_PP_ITERATION_5 69 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 68 && MSGPACK_PP_ITERATION_START_5 >= 68 +# define MSGPACK_PP_ITERATION_5 68 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 67 && MSGPACK_PP_ITERATION_START_5 >= 67 +# define MSGPACK_PP_ITERATION_5 67 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 66 && MSGPACK_PP_ITERATION_START_5 >= 66 +# define MSGPACK_PP_ITERATION_5 66 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 65 && MSGPACK_PP_ITERATION_START_5 >= 65 +# define MSGPACK_PP_ITERATION_5 65 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 64 && MSGPACK_PP_ITERATION_START_5 >= 64 +# define MSGPACK_PP_ITERATION_5 64 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 63 && MSGPACK_PP_ITERATION_START_5 >= 63 +# define MSGPACK_PP_ITERATION_5 63 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 62 && MSGPACK_PP_ITERATION_START_5 >= 62 +# define MSGPACK_PP_ITERATION_5 62 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 61 && MSGPACK_PP_ITERATION_START_5 >= 61 +# define MSGPACK_PP_ITERATION_5 61 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 60 && MSGPACK_PP_ITERATION_START_5 >= 60 +# define MSGPACK_PP_ITERATION_5 60 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 59 && MSGPACK_PP_ITERATION_START_5 >= 59 +# define MSGPACK_PP_ITERATION_5 59 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 58 && MSGPACK_PP_ITERATION_START_5 >= 58 +# define MSGPACK_PP_ITERATION_5 58 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 57 && MSGPACK_PP_ITERATION_START_5 >= 57 +# define MSGPACK_PP_ITERATION_5 57 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 56 && MSGPACK_PP_ITERATION_START_5 >= 56 +# define MSGPACK_PP_ITERATION_5 56 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 55 && MSGPACK_PP_ITERATION_START_5 >= 55 +# define MSGPACK_PP_ITERATION_5 55 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 54 && MSGPACK_PP_ITERATION_START_5 >= 54 +# define MSGPACK_PP_ITERATION_5 54 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 53 && MSGPACK_PP_ITERATION_START_5 >= 53 +# define MSGPACK_PP_ITERATION_5 53 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 52 && MSGPACK_PP_ITERATION_START_5 >= 52 +# define MSGPACK_PP_ITERATION_5 52 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 51 && MSGPACK_PP_ITERATION_START_5 >= 51 +# define MSGPACK_PP_ITERATION_5 51 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 50 && MSGPACK_PP_ITERATION_START_5 >= 50 +# define MSGPACK_PP_ITERATION_5 50 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 49 && MSGPACK_PP_ITERATION_START_5 >= 49 +# define MSGPACK_PP_ITERATION_5 49 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 48 && MSGPACK_PP_ITERATION_START_5 >= 48 +# define MSGPACK_PP_ITERATION_5 48 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 47 && MSGPACK_PP_ITERATION_START_5 >= 47 +# define MSGPACK_PP_ITERATION_5 47 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 46 && MSGPACK_PP_ITERATION_START_5 >= 46 +# define MSGPACK_PP_ITERATION_5 46 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 45 && MSGPACK_PP_ITERATION_START_5 >= 45 +# define MSGPACK_PP_ITERATION_5 45 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 44 && MSGPACK_PP_ITERATION_START_5 >= 44 +# define MSGPACK_PP_ITERATION_5 44 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 43 && MSGPACK_PP_ITERATION_START_5 >= 43 +# define MSGPACK_PP_ITERATION_5 43 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 42 && MSGPACK_PP_ITERATION_START_5 >= 42 +# define MSGPACK_PP_ITERATION_5 42 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 41 && MSGPACK_PP_ITERATION_START_5 >= 41 +# define MSGPACK_PP_ITERATION_5 41 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 40 && MSGPACK_PP_ITERATION_START_5 >= 40 +# define MSGPACK_PP_ITERATION_5 40 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 39 && MSGPACK_PP_ITERATION_START_5 >= 39 +# define MSGPACK_PP_ITERATION_5 39 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 38 && MSGPACK_PP_ITERATION_START_5 >= 38 +# define MSGPACK_PP_ITERATION_5 38 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 37 && MSGPACK_PP_ITERATION_START_5 >= 37 +# define MSGPACK_PP_ITERATION_5 37 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 36 && MSGPACK_PP_ITERATION_START_5 >= 36 +# define MSGPACK_PP_ITERATION_5 36 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 35 && MSGPACK_PP_ITERATION_START_5 >= 35 +# define MSGPACK_PP_ITERATION_5 35 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 34 && MSGPACK_PP_ITERATION_START_5 >= 34 +# define MSGPACK_PP_ITERATION_5 34 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 33 && MSGPACK_PP_ITERATION_START_5 >= 33 +# define MSGPACK_PP_ITERATION_5 33 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 32 && MSGPACK_PP_ITERATION_START_5 >= 32 +# define MSGPACK_PP_ITERATION_5 32 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 31 && MSGPACK_PP_ITERATION_START_5 >= 31 +# define MSGPACK_PP_ITERATION_5 31 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 30 && MSGPACK_PP_ITERATION_START_5 >= 30 +# define MSGPACK_PP_ITERATION_5 30 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 29 && MSGPACK_PP_ITERATION_START_5 >= 29 +# define MSGPACK_PP_ITERATION_5 29 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 28 && MSGPACK_PP_ITERATION_START_5 >= 28 +# define MSGPACK_PP_ITERATION_5 28 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 27 && MSGPACK_PP_ITERATION_START_5 >= 27 +# define MSGPACK_PP_ITERATION_5 27 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 26 && MSGPACK_PP_ITERATION_START_5 >= 26 +# define MSGPACK_PP_ITERATION_5 26 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 25 && MSGPACK_PP_ITERATION_START_5 >= 25 +# define MSGPACK_PP_ITERATION_5 25 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 24 && MSGPACK_PP_ITERATION_START_5 >= 24 +# define MSGPACK_PP_ITERATION_5 24 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 23 && MSGPACK_PP_ITERATION_START_5 >= 23 +# define MSGPACK_PP_ITERATION_5 23 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 22 && MSGPACK_PP_ITERATION_START_5 >= 22 +# define MSGPACK_PP_ITERATION_5 22 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 21 && MSGPACK_PP_ITERATION_START_5 >= 21 +# define MSGPACK_PP_ITERATION_5 21 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 20 && MSGPACK_PP_ITERATION_START_5 >= 20 +# define MSGPACK_PP_ITERATION_5 20 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 19 && MSGPACK_PP_ITERATION_START_5 >= 19 +# define MSGPACK_PP_ITERATION_5 19 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 18 && MSGPACK_PP_ITERATION_START_5 >= 18 +# define MSGPACK_PP_ITERATION_5 18 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 17 && MSGPACK_PP_ITERATION_START_5 >= 17 +# define MSGPACK_PP_ITERATION_5 17 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 16 && MSGPACK_PP_ITERATION_START_5 >= 16 +# define MSGPACK_PP_ITERATION_5 16 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 15 && MSGPACK_PP_ITERATION_START_5 >= 15 +# define MSGPACK_PP_ITERATION_5 15 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 14 && MSGPACK_PP_ITERATION_START_5 >= 14 +# define MSGPACK_PP_ITERATION_5 14 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 13 && MSGPACK_PP_ITERATION_START_5 >= 13 +# define MSGPACK_PP_ITERATION_5 13 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 12 && MSGPACK_PP_ITERATION_START_5 >= 12 +# define MSGPACK_PP_ITERATION_5 12 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 11 && MSGPACK_PP_ITERATION_START_5 >= 11 +# define MSGPACK_PP_ITERATION_5 11 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 10 && MSGPACK_PP_ITERATION_START_5 >= 10 +# define MSGPACK_PP_ITERATION_5 10 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 9 && MSGPACK_PP_ITERATION_START_5 >= 9 +# define MSGPACK_PP_ITERATION_5 9 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 8 && MSGPACK_PP_ITERATION_START_5 >= 8 +# define MSGPACK_PP_ITERATION_5 8 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 7 && MSGPACK_PP_ITERATION_START_5 >= 7 +# define MSGPACK_PP_ITERATION_5 7 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 6 && MSGPACK_PP_ITERATION_START_5 >= 6 +# define MSGPACK_PP_ITERATION_5 6 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 5 && MSGPACK_PP_ITERATION_START_5 >= 5 +# define MSGPACK_PP_ITERATION_5 5 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 4 && MSGPACK_PP_ITERATION_START_5 >= 4 +# define MSGPACK_PP_ITERATION_5 4 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 3 && MSGPACK_PP_ITERATION_START_5 >= 3 +# define MSGPACK_PP_ITERATION_5 3 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 2 && MSGPACK_PP_ITERATION_START_5 >= 2 +# define MSGPACK_PP_ITERATION_5 2 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 1 && MSGPACK_PP_ITERATION_START_5 >= 1 +# define MSGPACK_PP_ITERATION_5 1 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif +# if MSGPACK_PP_ITERATION_FINISH_5 <= 0 && MSGPACK_PP_ITERATION_START_5 >= 0 +# define MSGPACK_PP_ITERATION_5 0 +# include MSGPACK_PP_FILENAME_5 +# undef MSGPACK_PP_ITERATION_5 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/local.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/local.hpp new file mode 100644 index 000000000000..9629199be1a4 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/local.hpp @@ -0,0 +1,812 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# if !defined(MSGPACK_PP_LOCAL_LIMITS) +# error MSGPACK_PP_ERROR: local iteration boundaries are not defined +# elif !defined(MSGPACK_PP_LOCAL_MACRO) +# error MSGPACK_PP_ERROR: local iteration target macro is not defined +# else +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LOCAL_S MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_LOCAL_LIMITS) +# define MSGPACK_PP_LOCAL_F MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_LOCAL_LIMITS) +# else +# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_LOCAL_LIMITS) +# include +# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_LOCAL_LIMITS) +# include +# define MSGPACK_PP_LOCAL_S MSGPACK_PP_LOCAL_SE() +# define MSGPACK_PP_LOCAL_F MSGPACK_PP_LOCAL_FE() +# endif +# endif +# +# if (MSGPACK_PP_LOCAL_S) > (MSGPACK_PP_LOCAL_F) +# include +# else +# if MSGPACK_PP_LOCAL_C(0) + MSGPACK_PP_LOCAL_MACRO(0) +# endif +# if MSGPACK_PP_LOCAL_C(1) + MSGPACK_PP_LOCAL_MACRO(1) +# endif +# if MSGPACK_PP_LOCAL_C(2) + MSGPACK_PP_LOCAL_MACRO(2) +# endif +# if MSGPACK_PP_LOCAL_C(3) + MSGPACK_PP_LOCAL_MACRO(3) +# endif +# if MSGPACK_PP_LOCAL_C(4) + MSGPACK_PP_LOCAL_MACRO(4) +# endif +# if MSGPACK_PP_LOCAL_C(5) + MSGPACK_PP_LOCAL_MACRO(5) +# endif +# if MSGPACK_PP_LOCAL_C(6) + MSGPACK_PP_LOCAL_MACRO(6) +# endif +# if MSGPACK_PP_LOCAL_C(7) + MSGPACK_PP_LOCAL_MACRO(7) +# endif +# if MSGPACK_PP_LOCAL_C(8) + MSGPACK_PP_LOCAL_MACRO(8) +# endif +# if MSGPACK_PP_LOCAL_C(9) + MSGPACK_PP_LOCAL_MACRO(9) +# endif +# if MSGPACK_PP_LOCAL_C(10) + MSGPACK_PP_LOCAL_MACRO(10) +# endif +# if MSGPACK_PP_LOCAL_C(11) + MSGPACK_PP_LOCAL_MACRO(11) +# endif +# if MSGPACK_PP_LOCAL_C(12) + MSGPACK_PP_LOCAL_MACRO(12) +# endif +# if MSGPACK_PP_LOCAL_C(13) + MSGPACK_PP_LOCAL_MACRO(13) +# endif +# if MSGPACK_PP_LOCAL_C(14) + MSGPACK_PP_LOCAL_MACRO(14) +# endif +# if MSGPACK_PP_LOCAL_C(15) + MSGPACK_PP_LOCAL_MACRO(15) +# endif +# if MSGPACK_PP_LOCAL_C(16) + MSGPACK_PP_LOCAL_MACRO(16) +# endif +# if MSGPACK_PP_LOCAL_C(17) + MSGPACK_PP_LOCAL_MACRO(17) +# endif +# if MSGPACK_PP_LOCAL_C(18) + MSGPACK_PP_LOCAL_MACRO(18) +# endif +# if MSGPACK_PP_LOCAL_C(19) + MSGPACK_PP_LOCAL_MACRO(19) +# endif +# if MSGPACK_PP_LOCAL_C(20) + MSGPACK_PP_LOCAL_MACRO(20) +# endif +# if MSGPACK_PP_LOCAL_C(21) + MSGPACK_PP_LOCAL_MACRO(21) +# endif +# if MSGPACK_PP_LOCAL_C(22) + MSGPACK_PP_LOCAL_MACRO(22) +# endif +# if MSGPACK_PP_LOCAL_C(23) + MSGPACK_PP_LOCAL_MACRO(23) +# endif +# if MSGPACK_PP_LOCAL_C(24) + MSGPACK_PP_LOCAL_MACRO(24) +# endif +# if MSGPACK_PP_LOCAL_C(25) + MSGPACK_PP_LOCAL_MACRO(25) +# endif +# if MSGPACK_PP_LOCAL_C(26) + MSGPACK_PP_LOCAL_MACRO(26) +# endif +# if MSGPACK_PP_LOCAL_C(27) + MSGPACK_PP_LOCAL_MACRO(27) +# endif +# if MSGPACK_PP_LOCAL_C(28) + MSGPACK_PP_LOCAL_MACRO(28) +# endif +# if MSGPACK_PP_LOCAL_C(29) + MSGPACK_PP_LOCAL_MACRO(29) +# endif +# if MSGPACK_PP_LOCAL_C(30) + MSGPACK_PP_LOCAL_MACRO(30) +# endif +# if MSGPACK_PP_LOCAL_C(31) + MSGPACK_PP_LOCAL_MACRO(31) +# endif +# if MSGPACK_PP_LOCAL_C(32) + MSGPACK_PP_LOCAL_MACRO(32) +# endif +# if MSGPACK_PP_LOCAL_C(33) + MSGPACK_PP_LOCAL_MACRO(33) +# endif +# if MSGPACK_PP_LOCAL_C(34) + MSGPACK_PP_LOCAL_MACRO(34) +# endif +# if MSGPACK_PP_LOCAL_C(35) + MSGPACK_PP_LOCAL_MACRO(35) +# endif +# if MSGPACK_PP_LOCAL_C(36) + MSGPACK_PP_LOCAL_MACRO(36) +# endif +# if MSGPACK_PP_LOCAL_C(37) + MSGPACK_PP_LOCAL_MACRO(37) +# endif +# if MSGPACK_PP_LOCAL_C(38) + MSGPACK_PP_LOCAL_MACRO(38) +# endif +# if MSGPACK_PP_LOCAL_C(39) + MSGPACK_PP_LOCAL_MACRO(39) +# endif +# if MSGPACK_PP_LOCAL_C(40) + MSGPACK_PP_LOCAL_MACRO(40) +# endif +# if MSGPACK_PP_LOCAL_C(41) + MSGPACK_PP_LOCAL_MACRO(41) +# endif +# if MSGPACK_PP_LOCAL_C(42) + MSGPACK_PP_LOCAL_MACRO(42) +# endif +# if MSGPACK_PP_LOCAL_C(43) + MSGPACK_PP_LOCAL_MACRO(43) +# endif +# if MSGPACK_PP_LOCAL_C(44) + MSGPACK_PP_LOCAL_MACRO(44) +# endif +# if MSGPACK_PP_LOCAL_C(45) + MSGPACK_PP_LOCAL_MACRO(45) +# endif +# if MSGPACK_PP_LOCAL_C(46) + MSGPACK_PP_LOCAL_MACRO(46) +# endif +# if MSGPACK_PP_LOCAL_C(47) + MSGPACK_PP_LOCAL_MACRO(47) +# endif +# if MSGPACK_PP_LOCAL_C(48) + MSGPACK_PP_LOCAL_MACRO(48) +# endif +# if MSGPACK_PP_LOCAL_C(49) + MSGPACK_PP_LOCAL_MACRO(49) +# endif +# if MSGPACK_PP_LOCAL_C(50) + MSGPACK_PP_LOCAL_MACRO(50) +# endif +# if MSGPACK_PP_LOCAL_C(51) + MSGPACK_PP_LOCAL_MACRO(51) +# endif +# if MSGPACK_PP_LOCAL_C(52) + MSGPACK_PP_LOCAL_MACRO(52) +# endif +# if MSGPACK_PP_LOCAL_C(53) + MSGPACK_PP_LOCAL_MACRO(53) +# endif +# if MSGPACK_PP_LOCAL_C(54) + MSGPACK_PP_LOCAL_MACRO(54) +# endif +# if MSGPACK_PP_LOCAL_C(55) + MSGPACK_PP_LOCAL_MACRO(55) +# endif +# if MSGPACK_PP_LOCAL_C(56) + MSGPACK_PP_LOCAL_MACRO(56) +# endif +# if MSGPACK_PP_LOCAL_C(57) + MSGPACK_PP_LOCAL_MACRO(57) +# endif +# if MSGPACK_PP_LOCAL_C(58) + MSGPACK_PP_LOCAL_MACRO(58) +# endif +# if MSGPACK_PP_LOCAL_C(59) + MSGPACK_PP_LOCAL_MACRO(59) +# endif +# if MSGPACK_PP_LOCAL_C(60) + MSGPACK_PP_LOCAL_MACRO(60) +# endif +# if MSGPACK_PP_LOCAL_C(61) + MSGPACK_PP_LOCAL_MACRO(61) +# endif +# if MSGPACK_PP_LOCAL_C(62) + MSGPACK_PP_LOCAL_MACRO(62) +# endif +# if MSGPACK_PP_LOCAL_C(63) + MSGPACK_PP_LOCAL_MACRO(63) +# endif +# if MSGPACK_PP_LOCAL_C(64) + MSGPACK_PP_LOCAL_MACRO(64) +# endif +# if MSGPACK_PP_LOCAL_C(65) + MSGPACK_PP_LOCAL_MACRO(65) +# endif +# if MSGPACK_PP_LOCAL_C(66) + MSGPACK_PP_LOCAL_MACRO(66) +# endif +# if MSGPACK_PP_LOCAL_C(67) + MSGPACK_PP_LOCAL_MACRO(67) +# endif +# if MSGPACK_PP_LOCAL_C(68) + MSGPACK_PP_LOCAL_MACRO(68) +# endif +# if MSGPACK_PP_LOCAL_C(69) + MSGPACK_PP_LOCAL_MACRO(69) +# endif +# if MSGPACK_PP_LOCAL_C(70) + MSGPACK_PP_LOCAL_MACRO(70) +# endif +# if MSGPACK_PP_LOCAL_C(71) + MSGPACK_PP_LOCAL_MACRO(71) +# endif +# if MSGPACK_PP_LOCAL_C(72) + MSGPACK_PP_LOCAL_MACRO(72) +# endif +# if MSGPACK_PP_LOCAL_C(73) + MSGPACK_PP_LOCAL_MACRO(73) +# endif +# if MSGPACK_PP_LOCAL_C(74) + MSGPACK_PP_LOCAL_MACRO(74) +# endif +# if MSGPACK_PP_LOCAL_C(75) + MSGPACK_PP_LOCAL_MACRO(75) +# endif +# if MSGPACK_PP_LOCAL_C(76) + MSGPACK_PP_LOCAL_MACRO(76) +# endif +# if MSGPACK_PP_LOCAL_C(77) + MSGPACK_PP_LOCAL_MACRO(77) +# endif +# if MSGPACK_PP_LOCAL_C(78) + MSGPACK_PP_LOCAL_MACRO(78) +# endif +# if MSGPACK_PP_LOCAL_C(79) + MSGPACK_PP_LOCAL_MACRO(79) +# endif +# if MSGPACK_PP_LOCAL_C(80) + MSGPACK_PP_LOCAL_MACRO(80) +# endif +# if MSGPACK_PP_LOCAL_C(81) + MSGPACK_PP_LOCAL_MACRO(81) +# endif +# if MSGPACK_PP_LOCAL_C(82) + MSGPACK_PP_LOCAL_MACRO(82) +# endif +# if MSGPACK_PP_LOCAL_C(83) + MSGPACK_PP_LOCAL_MACRO(83) +# endif +# if MSGPACK_PP_LOCAL_C(84) + MSGPACK_PP_LOCAL_MACRO(84) +# endif +# if MSGPACK_PP_LOCAL_C(85) + MSGPACK_PP_LOCAL_MACRO(85) +# endif +# if MSGPACK_PP_LOCAL_C(86) + MSGPACK_PP_LOCAL_MACRO(86) +# endif +# if MSGPACK_PP_LOCAL_C(87) + MSGPACK_PP_LOCAL_MACRO(87) +# endif +# if MSGPACK_PP_LOCAL_C(88) + MSGPACK_PP_LOCAL_MACRO(88) +# endif +# if MSGPACK_PP_LOCAL_C(89) + MSGPACK_PP_LOCAL_MACRO(89) +# endif +# if MSGPACK_PP_LOCAL_C(90) + MSGPACK_PP_LOCAL_MACRO(90) +# endif +# if MSGPACK_PP_LOCAL_C(91) + MSGPACK_PP_LOCAL_MACRO(91) +# endif +# if MSGPACK_PP_LOCAL_C(92) + MSGPACK_PP_LOCAL_MACRO(92) +# endif +# if MSGPACK_PP_LOCAL_C(93) + MSGPACK_PP_LOCAL_MACRO(93) +# endif +# if MSGPACK_PP_LOCAL_C(94) + MSGPACK_PP_LOCAL_MACRO(94) +# endif +# if MSGPACK_PP_LOCAL_C(95) + MSGPACK_PP_LOCAL_MACRO(95) +# endif +# if MSGPACK_PP_LOCAL_C(96) + MSGPACK_PP_LOCAL_MACRO(96) +# endif +# if MSGPACK_PP_LOCAL_C(97) + MSGPACK_PP_LOCAL_MACRO(97) +# endif +# if MSGPACK_PP_LOCAL_C(98) + MSGPACK_PP_LOCAL_MACRO(98) +# endif +# if MSGPACK_PP_LOCAL_C(99) + MSGPACK_PP_LOCAL_MACRO(99) +# endif +# if MSGPACK_PP_LOCAL_C(100) + MSGPACK_PP_LOCAL_MACRO(100) +# endif +# if MSGPACK_PP_LOCAL_C(101) + MSGPACK_PP_LOCAL_MACRO(101) +# endif +# if MSGPACK_PP_LOCAL_C(102) + MSGPACK_PP_LOCAL_MACRO(102) +# endif +# if MSGPACK_PP_LOCAL_C(103) + MSGPACK_PP_LOCAL_MACRO(103) +# endif +# if MSGPACK_PP_LOCAL_C(104) + MSGPACK_PP_LOCAL_MACRO(104) +# endif +# if MSGPACK_PP_LOCAL_C(105) + MSGPACK_PP_LOCAL_MACRO(105) +# endif +# if MSGPACK_PP_LOCAL_C(106) + MSGPACK_PP_LOCAL_MACRO(106) +# endif +# if MSGPACK_PP_LOCAL_C(107) + MSGPACK_PP_LOCAL_MACRO(107) +# endif +# if MSGPACK_PP_LOCAL_C(108) + MSGPACK_PP_LOCAL_MACRO(108) +# endif +# if MSGPACK_PP_LOCAL_C(109) + MSGPACK_PP_LOCAL_MACRO(109) +# endif +# if MSGPACK_PP_LOCAL_C(110) + MSGPACK_PP_LOCAL_MACRO(110) +# endif +# if MSGPACK_PP_LOCAL_C(111) + MSGPACK_PP_LOCAL_MACRO(111) +# endif +# if MSGPACK_PP_LOCAL_C(112) + MSGPACK_PP_LOCAL_MACRO(112) +# endif +# if MSGPACK_PP_LOCAL_C(113) + MSGPACK_PP_LOCAL_MACRO(113) +# endif +# if MSGPACK_PP_LOCAL_C(114) + MSGPACK_PP_LOCAL_MACRO(114) +# endif +# if MSGPACK_PP_LOCAL_C(115) + MSGPACK_PP_LOCAL_MACRO(115) +# endif +# if MSGPACK_PP_LOCAL_C(116) + MSGPACK_PP_LOCAL_MACRO(116) +# endif +# if MSGPACK_PP_LOCAL_C(117) + MSGPACK_PP_LOCAL_MACRO(117) +# endif +# if MSGPACK_PP_LOCAL_C(118) + MSGPACK_PP_LOCAL_MACRO(118) +# endif +# if MSGPACK_PP_LOCAL_C(119) + MSGPACK_PP_LOCAL_MACRO(119) +# endif +# if MSGPACK_PP_LOCAL_C(120) + MSGPACK_PP_LOCAL_MACRO(120) +# endif +# if MSGPACK_PP_LOCAL_C(121) + MSGPACK_PP_LOCAL_MACRO(121) +# endif +# if MSGPACK_PP_LOCAL_C(122) + MSGPACK_PP_LOCAL_MACRO(122) +# endif +# if MSGPACK_PP_LOCAL_C(123) + MSGPACK_PP_LOCAL_MACRO(123) +# endif +# if MSGPACK_PP_LOCAL_C(124) + MSGPACK_PP_LOCAL_MACRO(124) +# endif +# if MSGPACK_PP_LOCAL_C(125) + MSGPACK_PP_LOCAL_MACRO(125) +# endif +# if MSGPACK_PP_LOCAL_C(126) + MSGPACK_PP_LOCAL_MACRO(126) +# endif +# if MSGPACK_PP_LOCAL_C(127) + MSGPACK_PP_LOCAL_MACRO(127) +# endif +# if MSGPACK_PP_LOCAL_C(128) + MSGPACK_PP_LOCAL_MACRO(128) +# endif +# if MSGPACK_PP_LOCAL_C(129) + MSGPACK_PP_LOCAL_MACRO(129) +# endif +# if MSGPACK_PP_LOCAL_C(130) + MSGPACK_PP_LOCAL_MACRO(130) +# endif +# if MSGPACK_PP_LOCAL_C(131) + MSGPACK_PP_LOCAL_MACRO(131) +# endif +# if MSGPACK_PP_LOCAL_C(132) + MSGPACK_PP_LOCAL_MACRO(132) +# endif +# if MSGPACK_PP_LOCAL_C(133) + MSGPACK_PP_LOCAL_MACRO(133) +# endif +# if MSGPACK_PP_LOCAL_C(134) + MSGPACK_PP_LOCAL_MACRO(134) +# endif +# if MSGPACK_PP_LOCAL_C(135) + MSGPACK_PP_LOCAL_MACRO(135) +# endif +# if MSGPACK_PP_LOCAL_C(136) + MSGPACK_PP_LOCAL_MACRO(136) +# endif +# if MSGPACK_PP_LOCAL_C(137) + MSGPACK_PP_LOCAL_MACRO(137) +# endif +# if MSGPACK_PP_LOCAL_C(138) + MSGPACK_PP_LOCAL_MACRO(138) +# endif +# if MSGPACK_PP_LOCAL_C(139) + MSGPACK_PP_LOCAL_MACRO(139) +# endif +# if MSGPACK_PP_LOCAL_C(140) + MSGPACK_PP_LOCAL_MACRO(140) +# endif +# if MSGPACK_PP_LOCAL_C(141) + MSGPACK_PP_LOCAL_MACRO(141) +# endif +# if MSGPACK_PP_LOCAL_C(142) + MSGPACK_PP_LOCAL_MACRO(142) +# endif +# if MSGPACK_PP_LOCAL_C(143) + MSGPACK_PP_LOCAL_MACRO(143) +# endif +# if MSGPACK_PP_LOCAL_C(144) + MSGPACK_PP_LOCAL_MACRO(144) +# endif +# if MSGPACK_PP_LOCAL_C(145) + MSGPACK_PP_LOCAL_MACRO(145) +# endif +# if MSGPACK_PP_LOCAL_C(146) + MSGPACK_PP_LOCAL_MACRO(146) +# endif +# if MSGPACK_PP_LOCAL_C(147) + MSGPACK_PP_LOCAL_MACRO(147) +# endif +# if MSGPACK_PP_LOCAL_C(148) + MSGPACK_PP_LOCAL_MACRO(148) +# endif +# if MSGPACK_PP_LOCAL_C(149) + MSGPACK_PP_LOCAL_MACRO(149) +# endif +# if MSGPACK_PP_LOCAL_C(150) + MSGPACK_PP_LOCAL_MACRO(150) +# endif +# if MSGPACK_PP_LOCAL_C(151) + MSGPACK_PP_LOCAL_MACRO(151) +# endif +# if MSGPACK_PP_LOCAL_C(152) + MSGPACK_PP_LOCAL_MACRO(152) +# endif +# if MSGPACK_PP_LOCAL_C(153) + MSGPACK_PP_LOCAL_MACRO(153) +# endif +# if MSGPACK_PP_LOCAL_C(154) + MSGPACK_PP_LOCAL_MACRO(154) +# endif +# if MSGPACK_PP_LOCAL_C(155) + MSGPACK_PP_LOCAL_MACRO(155) +# endif +# if MSGPACK_PP_LOCAL_C(156) + MSGPACK_PP_LOCAL_MACRO(156) +# endif +# if MSGPACK_PP_LOCAL_C(157) + MSGPACK_PP_LOCAL_MACRO(157) +# endif +# if MSGPACK_PP_LOCAL_C(158) + MSGPACK_PP_LOCAL_MACRO(158) +# endif +# if MSGPACK_PP_LOCAL_C(159) + MSGPACK_PP_LOCAL_MACRO(159) +# endif +# if MSGPACK_PP_LOCAL_C(160) + MSGPACK_PP_LOCAL_MACRO(160) +# endif +# if MSGPACK_PP_LOCAL_C(161) + MSGPACK_PP_LOCAL_MACRO(161) +# endif +# if MSGPACK_PP_LOCAL_C(162) + MSGPACK_PP_LOCAL_MACRO(162) +# endif +# if MSGPACK_PP_LOCAL_C(163) + MSGPACK_PP_LOCAL_MACRO(163) +# endif +# if MSGPACK_PP_LOCAL_C(164) + MSGPACK_PP_LOCAL_MACRO(164) +# endif +# if MSGPACK_PP_LOCAL_C(165) + MSGPACK_PP_LOCAL_MACRO(165) +# endif +# if MSGPACK_PP_LOCAL_C(166) + MSGPACK_PP_LOCAL_MACRO(166) +# endif +# if MSGPACK_PP_LOCAL_C(167) + MSGPACK_PP_LOCAL_MACRO(167) +# endif +# if MSGPACK_PP_LOCAL_C(168) + MSGPACK_PP_LOCAL_MACRO(168) +# endif +# if MSGPACK_PP_LOCAL_C(169) + MSGPACK_PP_LOCAL_MACRO(169) +# endif +# if MSGPACK_PP_LOCAL_C(170) + MSGPACK_PP_LOCAL_MACRO(170) +# endif +# if MSGPACK_PP_LOCAL_C(171) + MSGPACK_PP_LOCAL_MACRO(171) +# endif +# if MSGPACK_PP_LOCAL_C(172) + MSGPACK_PP_LOCAL_MACRO(172) +# endif +# if MSGPACK_PP_LOCAL_C(173) + MSGPACK_PP_LOCAL_MACRO(173) +# endif +# if MSGPACK_PP_LOCAL_C(174) + MSGPACK_PP_LOCAL_MACRO(174) +# endif +# if MSGPACK_PP_LOCAL_C(175) + MSGPACK_PP_LOCAL_MACRO(175) +# endif +# if MSGPACK_PP_LOCAL_C(176) + MSGPACK_PP_LOCAL_MACRO(176) +# endif +# if MSGPACK_PP_LOCAL_C(177) + MSGPACK_PP_LOCAL_MACRO(177) +# endif +# if MSGPACK_PP_LOCAL_C(178) + MSGPACK_PP_LOCAL_MACRO(178) +# endif +# if MSGPACK_PP_LOCAL_C(179) + MSGPACK_PP_LOCAL_MACRO(179) +# endif +# if MSGPACK_PP_LOCAL_C(180) + MSGPACK_PP_LOCAL_MACRO(180) +# endif +# if MSGPACK_PP_LOCAL_C(181) + MSGPACK_PP_LOCAL_MACRO(181) +# endif +# if MSGPACK_PP_LOCAL_C(182) + MSGPACK_PP_LOCAL_MACRO(182) +# endif +# if MSGPACK_PP_LOCAL_C(183) + MSGPACK_PP_LOCAL_MACRO(183) +# endif +# if MSGPACK_PP_LOCAL_C(184) + MSGPACK_PP_LOCAL_MACRO(184) +# endif +# if MSGPACK_PP_LOCAL_C(185) + MSGPACK_PP_LOCAL_MACRO(185) +# endif +# if MSGPACK_PP_LOCAL_C(186) + MSGPACK_PP_LOCAL_MACRO(186) +# endif +# if MSGPACK_PP_LOCAL_C(187) + MSGPACK_PP_LOCAL_MACRO(187) +# endif +# if MSGPACK_PP_LOCAL_C(188) + MSGPACK_PP_LOCAL_MACRO(188) +# endif +# if MSGPACK_PP_LOCAL_C(189) + MSGPACK_PP_LOCAL_MACRO(189) +# endif +# if MSGPACK_PP_LOCAL_C(190) + MSGPACK_PP_LOCAL_MACRO(190) +# endif +# if MSGPACK_PP_LOCAL_C(191) + MSGPACK_PP_LOCAL_MACRO(191) +# endif +# if MSGPACK_PP_LOCAL_C(192) + MSGPACK_PP_LOCAL_MACRO(192) +# endif +# if MSGPACK_PP_LOCAL_C(193) + MSGPACK_PP_LOCAL_MACRO(193) +# endif +# if MSGPACK_PP_LOCAL_C(194) + MSGPACK_PP_LOCAL_MACRO(194) +# endif +# if MSGPACK_PP_LOCAL_C(195) + MSGPACK_PP_LOCAL_MACRO(195) +# endif +# if MSGPACK_PP_LOCAL_C(196) + MSGPACK_PP_LOCAL_MACRO(196) +# endif +# if MSGPACK_PP_LOCAL_C(197) + MSGPACK_PP_LOCAL_MACRO(197) +# endif +# if MSGPACK_PP_LOCAL_C(198) + MSGPACK_PP_LOCAL_MACRO(198) +# endif +# if MSGPACK_PP_LOCAL_C(199) + MSGPACK_PP_LOCAL_MACRO(199) +# endif +# if MSGPACK_PP_LOCAL_C(200) + MSGPACK_PP_LOCAL_MACRO(200) +# endif +# if MSGPACK_PP_LOCAL_C(201) + MSGPACK_PP_LOCAL_MACRO(201) +# endif +# if MSGPACK_PP_LOCAL_C(202) + MSGPACK_PP_LOCAL_MACRO(202) +# endif +# if MSGPACK_PP_LOCAL_C(203) + MSGPACK_PP_LOCAL_MACRO(203) +# endif +# if MSGPACK_PP_LOCAL_C(204) + MSGPACK_PP_LOCAL_MACRO(204) +# endif +# if MSGPACK_PP_LOCAL_C(205) + MSGPACK_PP_LOCAL_MACRO(205) +# endif +# if MSGPACK_PP_LOCAL_C(206) + MSGPACK_PP_LOCAL_MACRO(206) +# endif +# if MSGPACK_PP_LOCAL_C(207) + MSGPACK_PP_LOCAL_MACRO(207) +# endif +# if MSGPACK_PP_LOCAL_C(208) + MSGPACK_PP_LOCAL_MACRO(208) +# endif +# if MSGPACK_PP_LOCAL_C(209) + MSGPACK_PP_LOCAL_MACRO(209) +# endif +# if MSGPACK_PP_LOCAL_C(210) + MSGPACK_PP_LOCAL_MACRO(210) +# endif +# if MSGPACK_PP_LOCAL_C(211) + MSGPACK_PP_LOCAL_MACRO(211) +# endif +# if MSGPACK_PP_LOCAL_C(212) + MSGPACK_PP_LOCAL_MACRO(212) +# endif +# if MSGPACK_PP_LOCAL_C(213) + MSGPACK_PP_LOCAL_MACRO(213) +# endif +# if MSGPACK_PP_LOCAL_C(214) + MSGPACK_PP_LOCAL_MACRO(214) +# endif +# if MSGPACK_PP_LOCAL_C(215) + MSGPACK_PP_LOCAL_MACRO(215) +# endif +# if MSGPACK_PP_LOCAL_C(216) + MSGPACK_PP_LOCAL_MACRO(216) +# endif +# if MSGPACK_PP_LOCAL_C(217) + MSGPACK_PP_LOCAL_MACRO(217) +# endif +# if MSGPACK_PP_LOCAL_C(218) + MSGPACK_PP_LOCAL_MACRO(218) +# endif +# if MSGPACK_PP_LOCAL_C(219) + MSGPACK_PP_LOCAL_MACRO(219) +# endif +# if MSGPACK_PP_LOCAL_C(220) + MSGPACK_PP_LOCAL_MACRO(220) +# endif +# if MSGPACK_PP_LOCAL_C(221) + MSGPACK_PP_LOCAL_MACRO(221) +# endif +# if MSGPACK_PP_LOCAL_C(222) + MSGPACK_PP_LOCAL_MACRO(222) +# endif +# if MSGPACK_PP_LOCAL_C(223) + MSGPACK_PP_LOCAL_MACRO(223) +# endif +# if MSGPACK_PP_LOCAL_C(224) + MSGPACK_PP_LOCAL_MACRO(224) +# endif +# if MSGPACK_PP_LOCAL_C(225) + MSGPACK_PP_LOCAL_MACRO(225) +# endif +# if MSGPACK_PP_LOCAL_C(226) + MSGPACK_PP_LOCAL_MACRO(226) +# endif +# if MSGPACK_PP_LOCAL_C(227) + MSGPACK_PP_LOCAL_MACRO(227) +# endif +# if MSGPACK_PP_LOCAL_C(228) + MSGPACK_PP_LOCAL_MACRO(228) +# endif +# if MSGPACK_PP_LOCAL_C(229) + MSGPACK_PP_LOCAL_MACRO(229) +# endif +# if MSGPACK_PP_LOCAL_C(230) + MSGPACK_PP_LOCAL_MACRO(230) +# endif +# if MSGPACK_PP_LOCAL_C(231) + MSGPACK_PP_LOCAL_MACRO(231) +# endif +# if MSGPACK_PP_LOCAL_C(232) + MSGPACK_PP_LOCAL_MACRO(232) +# endif +# if MSGPACK_PP_LOCAL_C(233) + MSGPACK_PP_LOCAL_MACRO(233) +# endif +# if MSGPACK_PP_LOCAL_C(234) + MSGPACK_PP_LOCAL_MACRO(234) +# endif +# if MSGPACK_PP_LOCAL_C(235) + MSGPACK_PP_LOCAL_MACRO(235) +# endif +# if MSGPACK_PP_LOCAL_C(236) + MSGPACK_PP_LOCAL_MACRO(236) +# endif + +# if MSGPACK_PP_LOCAL_C(237) + MSGPACK_PP_LOCAL_MACRO(237) +# endif +# if MSGPACK_PP_LOCAL_C(238) + MSGPACK_PP_LOCAL_MACRO(238) +# endif +# if MSGPACK_PP_LOCAL_C(239) + MSGPACK_PP_LOCAL_MACRO(239) +# endif +# if MSGPACK_PP_LOCAL_C(240) + MSGPACK_PP_LOCAL_MACRO(240) +# endif +# if MSGPACK_PP_LOCAL_C(241) + MSGPACK_PP_LOCAL_MACRO(241) +# endif +# if MSGPACK_PP_LOCAL_C(242) + MSGPACK_PP_LOCAL_MACRO(242) +# endif +# if MSGPACK_PP_LOCAL_C(243) + MSGPACK_PP_LOCAL_MACRO(243) +# endif +# if MSGPACK_PP_LOCAL_C(244) + MSGPACK_PP_LOCAL_MACRO(244) +# endif +# if MSGPACK_PP_LOCAL_C(245) + MSGPACK_PP_LOCAL_MACRO(245) +# endif +# if MSGPACK_PP_LOCAL_C(246) + MSGPACK_PP_LOCAL_MACRO(246) +# endif +# if MSGPACK_PP_LOCAL_C(247) + MSGPACK_PP_LOCAL_MACRO(247) +# endif +# if MSGPACK_PP_LOCAL_C(248) + MSGPACK_PP_LOCAL_MACRO(248) +# endif +# if MSGPACK_PP_LOCAL_C(249) + MSGPACK_PP_LOCAL_MACRO(249) +# endif +# if MSGPACK_PP_LOCAL_C(250) + MSGPACK_PP_LOCAL_MACRO(250) +# endif +# if MSGPACK_PP_LOCAL_C(251) + MSGPACK_PP_LOCAL_MACRO(251) +# endif +# if MSGPACK_PP_LOCAL_C(252) + MSGPACK_PP_LOCAL_MACRO(252) +# endif +# if MSGPACK_PP_LOCAL_C(253) + MSGPACK_PP_LOCAL_MACRO(253) +# endif +# if MSGPACK_PP_LOCAL_C(254) + MSGPACK_PP_LOCAL_MACRO(254) +# endif +# if MSGPACK_PP_LOCAL_C(255) + MSGPACK_PP_LOCAL_MACRO(255) +# endif +# if MSGPACK_PP_LOCAL_C(256) + MSGPACK_PP_LOCAL_MACRO(256) +# endif +# endif +# +# undef MSGPACK_PP_LOCAL_LIMITS +# +# undef MSGPACK_PP_LOCAL_S +# undef MSGPACK_PP_LOCAL_F +# +# undef MSGPACK_PP_LOCAL_MACRO diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/rlocal.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/rlocal.hpp new file mode 100644 index 000000000000..442ac0eecc29 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/rlocal.hpp @@ -0,0 +1,782 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# if MSGPACK_PP_LOCAL_R(256) + MSGPACK_PP_LOCAL_MACRO(256) +# endif +# if MSGPACK_PP_LOCAL_R(255) + MSGPACK_PP_LOCAL_MACRO(255) +# endif +# if MSGPACK_PP_LOCAL_R(254) + MSGPACK_PP_LOCAL_MACRO(254) +# endif +# if MSGPACK_PP_LOCAL_R(253) + MSGPACK_PP_LOCAL_MACRO(253) +# endif +# if MSGPACK_PP_LOCAL_R(252) + MSGPACK_PP_LOCAL_MACRO(252) +# endif +# if MSGPACK_PP_LOCAL_R(251) + MSGPACK_PP_LOCAL_MACRO(251) +# endif +# if MSGPACK_PP_LOCAL_R(250) + MSGPACK_PP_LOCAL_MACRO(250) +# endif +# if MSGPACK_PP_LOCAL_R(249) + MSGPACK_PP_LOCAL_MACRO(249) +# endif +# if MSGPACK_PP_LOCAL_R(248) + MSGPACK_PP_LOCAL_MACRO(248) +# endif +# if MSGPACK_PP_LOCAL_R(247) + MSGPACK_PP_LOCAL_MACRO(247) +# endif +# if MSGPACK_PP_LOCAL_R(246) + MSGPACK_PP_LOCAL_MACRO(246) +# endif +# if MSGPACK_PP_LOCAL_R(245) + MSGPACK_PP_LOCAL_MACRO(245) +# endif +# if MSGPACK_PP_LOCAL_R(244) + MSGPACK_PP_LOCAL_MACRO(244) +# endif +# if MSGPACK_PP_LOCAL_R(243) + MSGPACK_PP_LOCAL_MACRO(243) +# endif +# if MSGPACK_PP_LOCAL_R(242) + MSGPACK_PP_LOCAL_MACRO(242) +# endif +# if MSGPACK_PP_LOCAL_R(241) + MSGPACK_PP_LOCAL_MACRO(241) +# endif +# if MSGPACK_PP_LOCAL_R(240) + MSGPACK_PP_LOCAL_MACRO(240) +# endif +# if MSGPACK_PP_LOCAL_R(239) + MSGPACK_PP_LOCAL_MACRO(239) +# endif +# if MSGPACK_PP_LOCAL_R(238) + MSGPACK_PP_LOCAL_MACRO(238) +# endif +# if MSGPACK_PP_LOCAL_R(237) + MSGPACK_PP_LOCAL_MACRO(237) +# endif +# if MSGPACK_PP_LOCAL_R(236) + MSGPACK_PP_LOCAL_MACRO(236) +# endif +# if MSGPACK_PP_LOCAL_R(235) + MSGPACK_PP_LOCAL_MACRO(235) +# endif +# if MSGPACK_PP_LOCAL_R(234) + MSGPACK_PP_LOCAL_MACRO(234) +# endif +# if MSGPACK_PP_LOCAL_R(233) + MSGPACK_PP_LOCAL_MACRO(233) +# endif +# if MSGPACK_PP_LOCAL_R(232) + MSGPACK_PP_LOCAL_MACRO(232) +# endif +# if MSGPACK_PP_LOCAL_R(231) + MSGPACK_PP_LOCAL_MACRO(231) +# endif +# if MSGPACK_PP_LOCAL_R(230) + MSGPACK_PP_LOCAL_MACRO(230) +# endif +# if MSGPACK_PP_LOCAL_R(229) + MSGPACK_PP_LOCAL_MACRO(229) +# endif +# if MSGPACK_PP_LOCAL_R(228) + MSGPACK_PP_LOCAL_MACRO(228) +# endif +# if MSGPACK_PP_LOCAL_R(227) + MSGPACK_PP_LOCAL_MACRO(227) +# endif +# if MSGPACK_PP_LOCAL_R(226) + MSGPACK_PP_LOCAL_MACRO(226) +# endif +# if MSGPACK_PP_LOCAL_R(225) + MSGPACK_PP_LOCAL_MACRO(225) +# endif +# if MSGPACK_PP_LOCAL_R(224) + MSGPACK_PP_LOCAL_MACRO(224) +# endif +# if MSGPACK_PP_LOCAL_R(223) + MSGPACK_PP_LOCAL_MACRO(223) +# endif +# if MSGPACK_PP_LOCAL_R(222) + MSGPACK_PP_LOCAL_MACRO(222) +# endif +# if MSGPACK_PP_LOCAL_R(221) + MSGPACK_PP_LOCAL_MACRO(221) +# endif +# if MSGPACK_PP_LOCAL_R(220) + MSGPACK_PP_LOCAL_MACRO(220) +# endif +# if MSGPACK_PP_LOCAL_R(219) + MSGPACK_PP_LOCAL_MACRO(219) +# endif +# if MSGPACK_PP_LOCAL_R(218) + MSGPACK_PP_LOCAL_MACRO(218) +# endif +# if MSGPACK_PP_LOCAL_R(217) + MSGPACK_PP_LOCAL_MACRO(217) +# endif +# if MSGPACK_PP_LOCAL_R(216) + MSGPACK_PP_LOCAL_MACRO(216) +# endif +# if MSGPACK_PP_LOCAL_R(215) + MSGPACK_PP_LOCAL_MACRO(215) +# endif +# if MSGPACK_PP_LOCAL_R(214) + MSGPACK_PP_LOCAL_MACRO(214) +# endif +# if MSGPACK_PP_LOCAL_R(213) + MSGPACK_PP_LOCAL_MACRO(213) +# endif +# if MSGPACK_PP_LOCAL_R(212) + MSGPACK_PP_LOCAL_MACRO(212) +# endif +# if MSGPACK_PP_LOCAL_R(211) + MSGPACK_PP_LOCAL_MACRO(211) +# endif +# if MSGPACK_PP_LOCAL_R(210) + MSGPACK_PP_LOCAL_MACRO(210) +# endif +# if MSGPACK_PP_LOCAL_R(209) + MSGPACK_PP_LOCAL_MACRO(209) +# endif +# if MSGPACK_PP_LOCAL_R(208) + MSGPACK_PP_LOCAL_MACRO(208) +# endif +# if MSGPACK_PP_LOCAL_R(207) + MSGPACK_PP_LOCAL_MACRO(207) +# endif +# if MSGPACK_PP_LOCAL_R(206) + MSGPACK_PP_LOCAL_MACRO(206) +# endif +# if MSGPACK_PP_LOCAL_R(205) + MSGPACK_PP_LOCAL_MACRO(205) +# endif +# if MSGPACK_PP_LOCAL_R(204) + MSGPACK_PP_LOCAL_MACRO(204) +# endif +# if MSGPACK_PP_LOCAL_R(203) + MSGPACK_PP_LOCAL_MACRO(203) +# endif +# if MSGPACK_PP_LOCAL_R(202) + MSGPACK_PP_LOCAL_MACRO(202) +# endif +# if MSGPACK_PP_LOCAL_R(201) + MSGPACK_PP_LOCAL_MACRO(201) +# endif +# if MSGPACK_PP_LOCAL_R(200) + MSGPACK_PP_LOCAL_MACRO(200) +# endif +# if MSGPACK_PP_LOCAL_R(199) + MSGPACK_PP_LOCAL_MACRO(199) +# endif +# if MSGPACK_PP_LOCAL_R(198) + MSGPACK_PP_LOCAL_MACRO(198) +# endif +# if MSGPACK_PP_LOCAL_R(197) + MSGPACK_PP_LOCAL_MACRO(197) +# endif +# if MSGPACK_PP_LOCAL_R(196) + MSGPACK_PP_LOCAL_MACRO(196) +# endif +# if MSGPACK_PP_LOCAL_R(195) + MSGPACK_PP_LOCAL_MACRO(195) +# endif +# if MSGPACK_PP_LOCAL_R(194) + MSGPACK_PP_LOCAL_MACRO(194) +# endif +# if MSGPACK_PP_LOCAL_R(193) + MSGPACK_PP_LOCAL_MACRO(193) +# endif +# if MSGPACK_PP_LOCAL_R(192) + MSGPACK_PP_LOCAL_MACRO(192) +# endif +# if MSGPACK_PP_LOCAL_R(191) + MSGPACK_PP_LOCAL_MACRO(191) +# endif +# if MSGPACK_PP_LOCAL_R(190) + MSGPACK_PP_LOCAL_MACRO(190) +# endif +# if MSGPACK_PP_LOCAL_R(189) + MSGPACK_PP_LOCAL_MACRO(189) +# endif +# if MSGPACK_PP_LOCAL_R(188) + MSGPACK_PP_LOCAL_MACRO(188) +# endif +# if MSGPACK_PP_LOCAL_R(187) + MSGPACK_PP_LOCAL_MACRO(187) +# endif +# if MSGPACK_PP_LOCAL_R(186) + MSGPACK_PP_LOCAL_MACRO(186) +# endif +# if MSGPACK_PP_LOCAL_R(185) + MSGPACK_PP_LOCAL_MACRO(185) +# endif +# if MSGPACK_PP_LOCAL_R(184) + MSGPACK_PP_LOCAL_MACRO(184) +# endif +# if MSGPACK_PP_LOCAL_R(183) + MSGPACK_PP_LOCAL_MACRO(183) +# endif +# if MSGPACK_PP_LOCAL_R(182) + MSGPACK_PP_LOCAL_MACRO(182) +# endif +# if MSGPACK_PP_LOCAL_R(181) + MSGPACK_PP_LOCAL_MACRO(181) +# endif +# if MSGPACK_PP_LOCAL_R(180) + MSGPACK_PP_LOCAL_MACRO(180) +# endif +# if MSGPACK_PP_LOCAL_R(179) + MSGPACK_PP_LOCAL_MACRO(179) +# endif +# if MSGPACK_PP_LOCAL_R(178) + MSGPACK_PP_LOCAL_MACRO(178) +# endif +# if MSGPACK_PP_LOCAL_R(177) + MSGPACK_PP_LOCAL_MACRO(177) +# endif +# if MSGPACK_PP_LOCAL_R(176) + MSGPACK_PP_LOCAL_MACRO(176) +# endif +# if MSGPACK_PP_LOCAL_R(175) + MSGPACK_PP_LOCAL_MACRO(175) +# endif +# if MSGPACK_PP_LOCAL_R(174) + MSGPACK_PP_LOCAL_MACRO(174) +# endif +# if MSGPACK_PP_LOCAL_R(173) + MSGPACK_PP_LOCAL_MACRO(173) +# endif +# if MSGPACK_PP_LOCAL_R(172) + MSGPACK_PP_LOCAL_MACRO(172) +# endif +# if MSGPACK_PP_LOCAL_R(171) + MSGPACK_PP_LOCAL_MACRO(171) +# endif +# if MSGPACK_PP_LOCAL_R(170) + MSGPACK_PP_LOCAL_MACRO(170) +# endif +# if MSGPACK_PP_LOCAL_R(169) + MSGPACK_PP_LOCAL_MACRO(169) +# endif +# if MSGPACK_PP_LOCAL_R(168) + MSGPACK_PP_LOCAL_MACRO(168) +# endif +# if MSGPACK_PP_LOCAL_R(167) + MSGPACK_PP_LOCAL_MACRO(167) +# endif +# if MSGPACK_PP_LOCAL_R(166) + MSGPACK_PP_LOCAL_MACRO(166) +# endif +# if MSGPACK_PP_LOCAL_R(165) + MSGPACK_PP_LOCAL_MACRO(165) +# endif +# if MSGPACK_PP_LOCAL_R(164) + MSGPACK_PP_LOCAL_MACRO(164) +# endif +# if MSGPACK_PP_LOCAL_R(163) + MSGPACK_PP_LOCAL_MACRO(163) +# endif +# if MSGPACK_PP_LOCAL_R(162) + MSGPACK_PP_LOCAL_MACRO(162) +# endif +# if MSGPACK_PP_LOCAL_R(161) + MSGPACK_PP_LOCAL_MACRO(161) +# endif +# if MSGPACK_PP_LOCAL_R(160) + MSGPACK_PP_LOCAL_MACRO(160) +# endif +# if MSGPACK_PP_LOCAL_R(159) + MSGPACK_PP_LOCAL_MACRO(159) +# endif +# if MSGPACK_PP_LOCAL_R(158) + MSGPACK_PP_LOCAL_MACRO(158) +# endif +# if MSGPACK_PP_LOCAL_R(157) + MSGPACK_PP_LOCAL_MACRO(157) +# endif +# if MSGPACK_PP_LOCAL_R(156) + MSGPACK_PP_LOCAL_MACRO(156) +# endif +# if MSGPACK_PP_LOCAL_R(155) + MSGPACK_PP_LOCAL_MACRO(155) +# endif +# if MSGPACK_PP_LOCAL_R(154) + MSGPACK_PP_LOCAL_MACRO(154) +# endif +# if MSGPACK_PP_LOCAL_R(153) + MSGPACK_PP_LOCAL_MACRO(153) +# endif +# if MSGPACK_PP_LOCAL_R(152) + MSGPACK_PP_LOCAL_MACRO(152) +# endif +# if MSGPACK_PP_LOCAL_R(151) + MSGPACK_PP_LOCAL_MACRO(151) +# endif +# if MSGPACK_PP_LOCAL_R(150) + MSGPACK_PP_LOCAL_MACRO(150) +# endif +# if MSGPACK_PP_LOCAL_R(149) + MSGPACK_PP_LOCAL_MACRO(149) +# endif +# if MSGPACK_PP_LOCAL_R(148) + MSGPACK_PP_LOCAL_MACRO(148) +# endif +# if MSGPACK_PP_LOCAL_R(147) + MSGPACK_PP_LOCAL_MACRO(147) +# endif +# if MSGPACK_PP_LOCAL_R(146) + MSGPACK_PP_LOCAL_MACRO(146) +# endif +# if MSGPACK_PP_LOCAL_R(145) + MSGPACK_PP_LOCAL_MACRO(145) +# endif +# if MSGPACK_PP_LOCAL_R(144) + MSGPACK_PP_LOCAL_MACRO(144) +# endif +# if MSGPACK_PP_LOCAL_R(143) + MSGPACK_PP_LOCAL_MACRO(143) +# endif +# if MSGPACK_PP_LOCAL_R(142) + MSGPACK_PP_LOCAL_MACRO(142) +# endif +# if MSGPACK_PP_LOCAL_R(141) + MSGPACK_PP_LOCAL_MACRO(141) +# endif +# if MSGPACK_PP_LOCAL_R(140) + MSGPACK_PP_LOCAL_MACRO(140) +# endif +# if MSGPACK_PP_LOCAL_R(139) + MSGPACK_PP_LOCAL_MACRO(139) +# endif +# if MSGPACK_PP_LOCAL_R(138) + MSGPACK_PP_LOCAL_MACRO(138) +# endif +# if MSGPACK_PP_LOCAL_R(137) + MSGPACK_PP_LOCAL_MACRO(137) +# endif +# if MSGPACK_PP_LOCAL_R(136) + MSGPACK_PP_LOCAL_MACRO(136) +# endif +# if MSGPACK_PP_LOCAL_R(135) + MSGPACK_PP_LOCAL_MACRO(135) +# endif +# if MSGPACK_PP_LOCAL_R(134) + MSGPACK_PP_LOCAL_MACRO(134) +# endif +# if MSGPACK_PP_LOCAL_R(133) + MSGPACK_PP_LOCAL_MACRO(133) +# endif +# if MSGPACK_PP_LOCAL_R(132) + MSGPACK_PP_LOCAL_MACRO(132) +# endif +# if MSGPACK_PP_LOCAL_R(131) + MSGPACK_PP_LOCAL_MACRO(131) +# endif +# if MSGPACK_PP_LOCAL_R(130) + MSGPACK_PP_LOCAL_MACRO(130) +# endif +# if MSGPACK_PP_LOCAL_R(129) + MSGPACK_PP_LOCAL_MACRO(129) +# endif +# if MSGPACK_PP_LOCAL_R(128) + MSGPACK_PP_LOCAL_MACRO(128) +# endif +# if MSGPACK_PP_LOCAL_R(127) + MSGPACK_PP_LOCAL_MACRO(127) +# endif +# if MSGPACK_PP_LOCAL_R(126) + MSGPACK_PP_LOCAL_MACRO(126) +# endif +# if MSGPACK_PP_LOCAL_R(125) + MSGPACK_PP_LOCAL_MACRO(125) +# endif +# if MSGPACK_PP_LOCAL_R(124) + MSGPACK_PP_LOCAL_MACRO(124) +# endif +# if MSGPACK_PP_LOCAL_R(123) + MSGPACK_PP_LOCAL_MACRO(123) +# endif +# if MSGPACK_PP_LOCAL_R(122) + MSGPACK_PP_LOCAL_MACRO(122) +# endif +# if MSGPACK_PP_LOCAL_R(121) + MSGPACK_PP_LOCAL_MACRO(121) +# endif +# if MSGPACK_PP_LOCAL_R(120) + MSGPACK_PP_LOCAL_MACRO(120) +# endif +# if MSGPACK_PP_LOCAL_R(119) + MSGPACK_PP_LOCAL_MACRO(119) +# endif +# if MSGPACK_PP_LOCAL_R(118) + MSGPACK_PP_LOCAL_MACRO(118) +# endif +# if MSGPACK_PP_LOCAL_R(117) + MSGPACK_PP_LOCAL_MACRO(117) +# endif +# if MSGPACK_PP_LOCAL_R(116) + MSGPACK_PP_LOCAL_MACRO(116) +# endif +# if MSGPACK_PP_LOCAL_R(115) + MSGPACK_PP_LOCAL_MACRO(115) +# endif +# if MSGPACK_PP_LOCAL_R(114) + MSGPACK_PP_LOCAL_MACRO(114) +# endif +# if MSGPACK_PP_LOCAL_R(113) + MSGPACK_PP_LOCAL_MACRO(113) +# endif +# if MSGPACK_PP_LOCAL_R(112) + MSGPACK_PP_LOCAL_MACRO(112) +# endif +# if MSGPACK_PP_LOCAL_R(111) + MSGPACK_PP_LOCAL_MACRO(111) +# endif +# if MSGPACK_PP_LOCAL_R(110) + MSGPACK_PP_LOCAL_MACRO(110) +# endif +# if MSGPACK_PP_LOCAL_R(109) + MSGPACK_PP_LOCAL_MACRO(109) +# endif +# if MSGPACK_PP_LOCAL_R(108) + MSGPACK_PP_LOCAL_MACRO(108) +# endif +# if MSGPACK_PP_LOCAL_R(107) + MSGPACK_PP_LOCAL_MACRO(107) +# endif +# if MSGPACK_PP_LOCAL_R(106) + MSGPACK_PP_LOCAL_MACRO(106) +# endif +# if MSGPACK_PP_LOCAL_R(105) + MSGPACK_PP_LOCAL_MACRO(105) +# endif +# if MSGPACK_PP_LOCAL_R(104) + MSGPACK_PP_LOCAL_MACRO(104) +# endif +# if MSGPACK_PP_LOCAL_R(103) + MSGPACK_PP_LOCAL_MACRO(103) +# endif +# if MSGPACK_PP_LOCAL_R(102) + MSGPACK_PP_LOCAL_MACRO(102) +# endif +# if MSGPACK_PP_LOCAL_R(101) + MSGPACK_PP_LOCAL_MACRO(101) +# endif +# if MSGPACK_PP_LOCAL_R(100) + MSGPACK_PP_LOCAL_MACRO(100) +# endif +# if MSGPACK_PP_LOCAL_R(99) + MSGPACK_PP_LOCAL_MACRO(99) +# endif +# if MSGPACK_PP_LOCAL_R(98) + MSGPACK_PP_LOCAL_MACRO(98) +# endif +# if MSGPACK_PP_LOCAL_R(97) + MSGPACK_PP_LOCAL_MACRO(97) +# endif +# if MSGPACK_PP_LOCAL_R(96) + MSGPACK_PP_LOCAL_MACRO(96) +# endif +# if MSGPACK_PP_LOCAL_R(95) + MSGPACK_PP_LOCAL_MACRO(95) +# endif +# if MSGPACK_PP_LOCAL_R(94) + MSGPACK_PP_LOCAL_MACRO(94) +# endif +# if MSGPACK_PP_LOCAL_R(93) + MSGPACK_PP_LOCAL_MACRO(93) +# endif +# if MSGPACK_PP_LOCAL_R(92) + MSGPACK_PP_LOCAL_MACRO(92) +# endif +# if MSGPACK_PP_LOCAL_R(91) + MSGPACK_PP_LOCAL_MACRO(91) +# endif +# if MSGPACK_PP_LOCAL_R(90) + MSGPACK_PP_LOCAL_MACRO(90) +# endif +# if MSGPACK_PP_LOCAL_R(89) + MSGPACK_PP_LOCAL_MACRO(89) +# endif +# if MSGPACK_PP_LOCAL_R(88) + MSGPACK_PP_LOCAL_MACRO(88) +# endif +# if MSGPACK_PP_LOCAL_R(87) + MSGPACK_PP_LOCAL_MACRO(87) +# endif +# if MSGPACK_PP_LOCAL_R(86) + MSGPACK_PP_LOCAL_MACRO(86) +# endif +# if MSGPACK_PP_LOCAL_R(85) + MSGPACK_PP_LOCAL_MACRO(85) +# endif +# if MSGPACK_PP_LOCAL_R(84) + MSGPACK_PP_LOCAL_MACRO(84) +# endif +# if MSGPACK_PP_LOCAL_R(83) + MSGPACK_PP_LOCAL_MACRO(83) +# endif +# if MSGPACK_PP_LOCAL_R(82) + MSGPACK_PP_LOCAL_MACRO(82) +# endif +# if MSGPACK_PP_LOCAL_R(81) + MSGPACK_PP_LOCAL_MACRO(81) +# endif +# if MSGPACK_PP_LOCAL_R(80) + MSGPACK_PP_LOCAL_MACRO(80) +# endif +# if MSGPACK_PP_LOCAL_R(79) + MSGPACK_PP_LOCAL_MACRO(79) +# endif +# if MSGPACK_PP_LOCAL_R(78) + MSGPACK_PP_LOCAL_MACRO(78) +# endif +# if MSGPACK_PP_LOCAL_R(77) + MSGPACK_PP_LOCAL_MACRO(77) +# endif +# if MSGPACK_PP_LOCAL_R(76) + MSGPACK_PP_LOCAL_MACRO(76) +# endif +# if MSGPACK_PP_LOCAL_R(75) + MSGPACK_PP_LOCAL_MACRO(75) +# endif +# if MSGPACK_PP_LOCAL_R(74) + MSGPACK_PP_LOCAL_MACRO(74) +# endif +# if MSGPACK_PP_LOCAL_R(73) + MSGPACK_PP_LOCAL_MACRO(73) +# endif +# if MSGPACK_PP_LOCAL_R(72) + MSGPACK_PP_LOCAL_MACRO(72) +# endif +# if MSGPACK_PP_LOCAL_R(71) + MSGPACK_PP_LOCAL_MACRO(71) +# endif +# if MSGPACK_PP_LOCAL_R(70) + MSGPACK_PP_LOCAL_MACRO(70) +# endif +# if MSGPACK_PP_LOCAL_R(69) + MSGPACK_PP_LOCAL_MACRO(69) +# endif +# if MSGPACK_PP_LOCAL_R(68) + MSGPACK_PP_LOCAL_MACRO(68) +# endif +# if MSGPACK_PP_LOCAL_R(67) + MSGPACK_PP_LOCAL_MACRO(67) +# endif +# if MSGPACK_PP_LOCAL_R(66) + MSGPACK_PP_LOCAL_MACRO(66) +# endif +# if MSGPACK_PP_LOCAL_R(65) + MSGPACK_PP_LOCAL_MACRO(65) +# endif +# if MSGPACK_PP_LOCAL_R(64) + MSGPACK_PP_LOCAL_MACRO(64) +# endif +# if MSGPACK_PP_LOCAL_R(63) + MSGPACK_PP_LOCAL_MACRO(63) +# endif +# if MSGPACK_PP_LOCAL_R(62) + MSGPACK_PP_LOCAL_MACRO(62) +# endif +# if MSGPACK_PP_LOCAL_R(61) + MSGPACK_PP_LOCAL_MACRO(61) +# endif +# if MSGPACK_PP_LOCAL_R(60) + MSGPACK_PP_LOCAL_MACRO(60) +# endif +# if MSGPACK_PP_LOCAL_R(59) + MSGPACK_PP_LOCAL_MACRO(59) +# endif +# if MSGPACK_PP_LOCAL_R(58) + MSGPACK_PP_LOCAL_MACRO(58) +# endif +# if MSGPACK_PP_LOCAL_R(57) + MSGPACK_PP_LOCAL_MACRO(57) +# endif +# if MSGPACK_PP_LOCAL_R(56) + MSGPACK_PP_LOCAL_MACRO(56) +# endif +# if MSGPACK_PP_LOCAL_R(55) + MSGPACK_PP_LOCAL_MACRO(55) +# endif +# if MSGPACK_PP_LOCAL_R(54) + MSGPACK_PP_LOCAL_MACRO(54) +# endif +# if MSGPACK_PP_LOCAL_R(53) + MSGPACK_PP_LOCAL_MACRO(53) +# endif +# if MSGPACK_PP_LOCAL_R(52) + MSGPACK_PP_LOCAL_MACRO(52) +# endif +# if MSGPACK_PP_LOCAL_R(51) + MSGPACK_PP_LOCAL_MACRO(51) +# endif +# if MSGPACK_PP_LOCAL_R(50) + MSGPACK_PP_LOCAL_MACRO(50) +# endif +# if MSGPACK_PP_LOCAL_R(49) + MSGPACK_PP_LOCAL_MACRO(49) +# endif +# if MSGPACK_PP_LOCAL_R(48) + MSGPACK_PP_LOCAL_MACRO(48) +# endif +# if MSGPACK_PP_LOCAL_R(47) + MSGPACK_PP_LOCAL_MACRO(47) +# endif +# if MSGPACK_PP_LOCAL_R(46) + MSGPACK_PP_LOCAL_MACRO(46) +# endif +# if MSGPACK_PP_LOCAL_R(45) + MSGPACK_PP_LOCAL_MACRO(45) +# endif +# if MSGPACK_PP_LOCAL_R(44) + MSGPACK_PP_LOCAL_MACRO(44) +# endif +# if MSGPACK_PP_LOCAL_R(43) + MSGPACK_PP_LOCAL_MACRO(43) +# endif +# if MSGPACK_PP_LOCAL_R(42) + MSGPACK_PP_LOCAL_MACRO(42) +# endif +# if MSGPACK_PP_LOCAL_R(41) + MSGPACK_PP_LOCAL_MACRO(41) +# endif +# if MSGPACK_PP_LOCAL_R(40) + MSGPACK_PP_LOCAL_MACRO(40) +# endif +# if MSGPACK_PP_LOCAL_R(39) + MSGPACK_PP_LOCAL_MACRO(39) +# endif +# if MSGPACK_PP_LOCAL_R(38) + MSGPACK_PP_LOCAL_MACRO(38) +# endif +# if MSGPACK_PP_LOCAL_R(37) + MSGPACK_PP_LOCAL_MACRO(37) +# endif +# if MSGPACK_PP_LOCAL_R(36) + MSGPACK_PP_LOCAL_MACRO(36) +# endif +# if MSGPACK_PP_LOCAL_R(35) + MSGPACK_PP_LOCAL_MACRO(35) +# endif +# if MSGPACK_PP_LOCAL_R(34) + MSGPACK_PP_LOCAL_MACRO(34) +# endif +# if MSGPACK_PP_LOCAL_R(33) + MSGPACK_PP_LOCAL_MACRO(33) +# endif +# if MSGPACK_PP_LOCAL_R(32) + MSGPACK_PP_LOCAL_MACRO(32) +# endif +# if MSGPACK_PP_LOCAL_R(31) + MSGPACK_PP_LOCAL_MACRO(31) +# endif +# if MSGPACK_PP_LOCAL_R(30) + MSGPACK_PP_LOCAL_MACRO(30) +# endif +# if MSGPACK_PP_LOCAL_R(29) + MSGPACK_PP_LOCAL_MACRO(29) +# endif +# if MSGPACK_PP_LOCAL_R(28) + MSGPACK_PP_LOCAL_MACRO(28) +# endif +# if MSGPACK_PP_LOCAL_R(27) + MSGPACK_PP_LOCAL_MACRO(27) +# endif +# if MSGPACK_PP_LOCAL_R(26) + MSGPACK_PP_LOCAL_MACRO(26) +# endif +# if MSGPACK_PP_LOCAL_R(25) + MSGPACK_PP_LOCAL_MACRO(25) +# endif +# if MSGPACK_PP_LOCAL_R(24) + MSGPACK_PP_LOCAL_MACRO(24) +# endif +# if MSGPACK_PP_LOCAL_R(23) + MSGPACK_PP_LOCAL_MACRO(23) +# endif +# if MSGPACK_PP_LOCAL_R(22) + MSGPACK_PP_LOCAL_MACRO(22) +# endif +# if MSGPACK_PP_LOCAL_R(21) + MSGPACK_PP_LOCAL_MACRO(21) +# endif +# if MSGPACK_PP_LOCAL_R(20) + MSGPACK_PP_LOCAL_MACRO(20) +# endif +# if MSGPACK_PP_LOCAL_R(19) + MSGPACK_PP_LOCAL_MACRO(19) +# endif +# if MSGPACK_PP_LOCAL_R(18) + MSGPACK_PP_LOCAL_MACRO(18) +# endif +# if MSGPACK_PP_LOCAL_R(17) + MSGPACK_PP_LOCAL_MACRO(17) +# endif +# if MSGPACK_PP_LOCAL_R(16) + MSGPACK_PP_LOCAL_MACRO(16) +# endif +# if MSGPACK_PP_LOCAL_R(15) + MSGPACK_PP_LOCAL_MACRO(15) +# endif +# if MSGPACK_PP_LOCAL_R(14) + MSGPACK_PP_LOCAL_MACRO(14) +# endif +# if MSGPACK_PP_LOCAL_R(13) + MSGPACK_PP_LOCAL_MACRO(13) +# endif +# if MSGPACK_PP_LOCAL_R(12) + MSGPACK_PP_LOCAL_MACRO(12) +# endif +# if MSGPACK_PP_LOCAL_R(11) + MSGPACK_PP_LOCAL_MACRO(11) +# endif +# if MSGPACK_PP_LOCAL_R(10) + MSGPACK_PP_LOCAL_MACRO(10) +# endif +# if MSGPACK_PP_LOCAL_R(9) + MSGPACK_PP_LOCAL_MACRO(9) +# endif +# if MSGPACK_PP_LOCAL_R(8) + MSGPACK_PP_LOCAL_MACRO(8) +# endif +# if MSGPACK_PP_LOCAL_R(7) + MSGPACK_PP_LOCAL_MACRO(7) +# endif +# if MSGPACK_PP_LOCAL_R(6) + MSGPACK_PP_LOCAL_MACRO(6) +# endif +# if MSGPACK_PP_LOCAL_R(5) + MSGPACK_PP_LOCAL_MACRO(5) +# endif +# if MSGPACK_PP_LOCAL_R(4) + MSGPACK_PP_LOCAL_MACRO(4) +# endif +# if MSGPACK_PP_LOCAL_R(3) + MSGPACK_PP_LOCAL_MACRO(3) +# endif +# if MSGPACK_PP_LOCAL_R(2) + MSGPACK_PP_LOCAL_MACRO(2) +# endif +# if MSGPACK_PP_LOCAL_R(1) + MSGPACK_PP_LOCAL_MACRO(1) +# endif +# if MSGPACK_PP_LOCAL_R(0) + MSGPACK_PP_LOCAL_MACRO(0) +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/self.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/self.hpp new file mode 100644 index 000000000000..5564360313e8 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/self.hpp @@ -0,0 +1,21 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# if !defined(MSGPACK_PP_INDIRECT_SELF) +# error MSGPACK_PP_ERROR: no indirect file to include +# endif +# +# define MSGPACK_PP_IS_SELFISH 1 +# +# include MSGPACK_PP_INDIRECT_SELF +# +# undef MSGPACK_PP_IS_SELFISH +# undef MSGPACK_PP_INDIRECT_SELF diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/start.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/start.hpp new file mode 100644 index 000000000000..2aeb2600ef0b --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/detail/start.hpp @@ -0,0 +1,99 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_LOCAL_SE +# +# undef MSGPACK_PP_LOCAL_SE_DIGIT_1 +# undef MSGPACK_PP_LOCAL_SE_DIGIT_2 +# undef MSGPACK_PP_LOCAL_SE_DIGIT_3 +# undef MSGPACK_PP_LOCAL_SE_DIGIT_4 +# undef MSGPACK_PP_LOCAL_SE_DIGIT_5 +# undef MSGPACK_PP_LOCAL_SE_DIGIT_6 +# undef MSGPACK_PP_LOCAL_SE_DIGIT_7 +# undef MSGPACK_PP_LOCAL_SE_DIGIT_8 +# undef MSGPACK_PP_LOCAL_SE_DIGIT_9 +# undef MSGPACK_PP_LOCAL_SE_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_LOCAL_SE_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_LOCAL_SE_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_LOCAL_SE_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_LOCAL_SE_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_LOCAL_SE_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_LOCAL_SE_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_LOCAL_SE_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_LOCAL_SE_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_LOCAL_SE_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_LOCAL_SE_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_LOCAL_SE_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_LOCAL_SE_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_LOCAL_SE_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_LOCAL_SE_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_LOCAL_SE_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_LOCAL_SE_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_LOCAL_SE_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_LOCAL_SE_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_LOCAL_SE_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_LOCAL_SE_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_LOCAL_SE_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_LOCAL_SE_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_LOCAL_SE_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_LOCAL_SE_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_LOCAL_SE_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_LOCAL_SE_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_LOCAL_SE_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_LOCAL_SE_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_LOCAL_SE_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_LOCAL_SE_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_LOCAL_SE_DIGIT_3 +# define MSGPACK_PP_LOCAL_SE() MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_LOCAL_SE_DIGIT_3, MSGPACK_PP_LOCAL_SE_DIGIT_2, MSGPACK_PP_LOCAL_SE_DIGIT_1) +# elif MSGPACK_PP_LOCAL_SE_DIGIT_2 +# define MSGPACK_PP_LOCAL_SE() MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_LOCAL_SE_DIGIT_2, MSGPACK_PP_LOCAL_SE_DIGIT_1) +# else +# define MSGPACK_PP_LOCAL_SE() MSGPACK_PP_LOCAL_SE_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/iterate.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/iterate.hpp new file mode 100644 index 000000000000..a57eddfd9134 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/iterate.hpp @@ -0,0 +1,82 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ITERATION_ITERATE_HPP +# define MSGPACK_PREPROCESSOR_ITERATION_ITERATE_HPP +# +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ITERATION_DEPTH */ +# +# define MSGPACK_PP_ITERATION_DEPTH() 0 +# +# /* MSGPACK_PP_ITERATION */ +# +# define MSGPACK_PP_ITERATION() MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_, MSGPACK_PP_ITERATION_DEPTH()) +# +# /* MSGPACK_PP_ITERATION_START && MSGPACK_PP_ITERATION_FINISH */ +# +# define MSGPACK_PP_ITERATION_START() MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_START_, MSGPACK_PP_ITERATION_DEPTH()) +# define MSGPACK_PP_ITERATION_FINISH() MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_FINISH_, MSGPACK_PP_ITERATION_DEPTH()) +# +# /* MSGPACK_PP_ITERATION_FLAGS */ +# +# define MSGPACK_PP_ITERATION_FLAGS() (MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_FLAGS_, MSGPACK_PP_ITERATION_DEPTH())()) +# +# /* MSGPACK_PP_FRAME_ITERATION */ +# +# define MSGPACK_PP_FRAME_ITERATION(i) MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_, i) +# +# /* MSGPACK_PP_FRAME_START && MSGPACK_PP_FRAME_FINISH */ +# +# define MSGPACK_PP_FRAME_START(i) MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_START_, i) +# define MSGPACK_PP_FRAME_FINISH(i) MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_FINISH_, i) +# +# /* MSGPACK_PP_FRAME_FLAGS */ +# +# define MSGPACK_PP_FRAME_FLAGS(i) (MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_FLAGS_, i)()) +# +# /* MSGPACK_PP_RELATIVE_ITERATION */ +# +# define MSGPACK_PP_RELATIVE_ITERATION(i) MSGPACK_PP_CAT(MSGPACK_PP_RELATIVE_, i)(MSGPACK_PP_ITERATION_) +# +# define MSGPACK_PP_RELATIVE_0(m) MSGPACK_PP_CAT(m, MSGPACK_PP_ITERATION_DEPTH()) +# define MSGPACK_PP_RELATIVE_1(m) MSGPACK_PP_CAT(m, MSGPACK_PP_DEC(MSGPACK_PP_ITERATION_DEPTH())) +# define MSGPACK_PP_RELATIVE_2(m) MSGPACK_PP_CAT(m, MSGPACK_PP_DEC(MSGPACK_PP_DEC(MSGPACK_PP_ITERATION_DEPTH()))) +# define MSGPACK_PP_RELATIVE_3(m) MSGPACK_PP_CAT(m, MSGPACK_PP_DEC(MSGPACK_PP_DEC(MSGPACK_PP_DEC(MSGPACK_PP_ITERATION_DEPTH())))) +# define MSGPACK_PP_RELATIVE_4(m) MSGPACK_PP_CAT(m, MSGPACK_PP_DEC(MSGPACK_PP_DEC(MSGPACK_PP_DEC(MSGPACK_PP_DEC(MSGPACK_PP_ITERATION_DEPTH()))))) +# +# /* MSGPACK_PP_RELATIVE_START && MSGPACK_PP_RELATIVE_FINISH */ +# +# define MSGPACK_PP_RELATIVE_START(i) MSGPACK_PP_CAT(MSGPACK_PP_RELATIVE_, i)(MSGPACK_PP_ITERATION_START_) +# define MSGPACK_PP_RELATIVE_FINISH(i) MSGPACK_PP_CAT(MSGPACK_PP_RELATIVE_, i)(MSGPACK_PP_ITERATION_FINISH_) +# +# /* MSGPACK_PP_RELATIVE_FLAGS */ +# +# define MSGPACK_PP_RELATIVE_FLAGS(i) (MSGPACK_PP_CAT(MSGPACK_PP_RELATIVE_, i)(MSGPACK_PP_ITERATION_FLAGS_)()) +# +# /* MSGPACK_PP_ITERATE */ +# +# define MSGPACK_PP_ITERATE() MSGPACK_PP_CAT(MSGPACK_PP_ITERATE_, MSGPACK_PP_INC(MSGPACK_PP_ITERATION_DEPTH())) +# +# define MSGPACK_PP_ITERATE_1 +# define MSGPACK_PP_ITERATE_2 +# define MSGPACK_PP_ITERATE_3 +# define MSGPACK_PP_ITERATE_4 +# define MSGPACK_PP_ITERATE_5 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/local.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/local.hpp new file mode 100644 index 000000000000..587e8f983254 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/local.hpp @@ -0,0 +1,26 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ITERATION_LOCAL_HPP +# define MSGPACK_PREPROCESSOR_ITERATION_LOCAL_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_LOCAL_ITERATE */ +# +# define MSGPACK_PP_LOCAL_ITERATE() +# +# define MSGPACK_PP_LOCAL_C(n) (MSGPACK_PP_LOCAL_S) <= n && (MSGPACK_PP_LOCAL_F) >= n +# define MSGPACK_PP_LOCAL_R(n) (MSGPACK_PP_LOCAL_F) <= n && (MSGPACK_PP_LOCAL_S) >= n +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/iteration/self.hpp b/third_party/msgpack/include/msgpack/preprocessor/iteration/self.hpp new file mode 100644 index 000000000000..bdb7419a7acb --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/iteration/self.hpp @@ -0,0 +1,19 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_ITERATION_SELF_HPP +# define MSGPACK_PREPROCESSOR_ITERATION_SELF_HPP +# +# /* MSGPACK_PP_INCLUDE_SELF */ +# +# define MSGPACK_PP_INCLUDE_SELF() +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/library.hpp b/third_party/msgpack/include/msgpack/preprocessor/library.hpp new file mode 100644 index 000000000000..d9795ee72ec6 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/library.hpp @@ -0,0 +1,37 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002-2011. * +# * (C) Copyright Edward Diener 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIBRARY_HPP +# define MSGPACK_PREPROCESSOR_LIBRARY_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/limits.hpp b/third_party/msgpack/include/msgpack/preprocessor/limits.hpp new file mode 100644 index 000000000000..9503fb48a077 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/limits.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIMITS_HPP +# define MSGPACK_PREPROCESSOR_LIMITS_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list.hpp b/third_party/msgpack/include/msgpack/preprocessor/list.hpp new file mode 100644 index 000000000000..31b3bdacac5f --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list.hpp @@ -0,0 +1,37 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_HPP +# define MSGPACK_PREPROCESSOR_LIST_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/adt.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/adt.hpp new file mode 100644 index 000000000000..d6e4f324636a --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/adt.hpp @@ -0,0 +1,73 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * +# * See http://www.boost.org for most recent version. +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_ADT_HPP +# define MSGPACK_PREPROCESSOR_LIST_ADT_HPP +# +# include +# include +# include +# include +# +# /* MSGPACK_PP_LIST_CONS */ +# +# define MSGPACK_PP_LIST_CONS(head, tail) (head, tail) +# +# /* MSGPACK_PP_LIST_NIL */ +# +# define MSGPACK_PP_LIST_NIL MSGPACK_PP_NIL +# +# /* MSGPACK_PP_LIST_FIRST */ +# +# define MSGPACK_PP_LIST_FIRST(list) MSGPACK_PP_LIST_FIRST_D(list) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_LIST_FIRST_D(list) MSGPACK_PP_LIST_FIRST_I list +# else +# define MSGPACK_PP_LIST_FIRST_D(list) MSGPACK_PP_LIST_FIRST_I ## list +# endif +# +# define MSGPACK_PP_LIST_FIRST_I(head, tail) head +# +# /* MSGPACK_PP_LIST_REST */ +# +# define MSGPACK_PP_LIST_REST(list) MSGPACK_PP_LIST_REST_D(list) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_LIST_REST_D(list) MSGPACK_PP_LIST_REST_I list +# else +# define MSGPACK_PP_LIST_REST_D(list) MSGPACK_PP_LIST_REST_I ## list +# endif +# +# define MSGPACK_PP_LIST_REST_I(head, tail) tail +# +# /* MSGPACK_PP_LIST_IS_CONS */ +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_BCC() +# define MSGPACK_PP_LIST_IS_CONS(list) MSGPACK_PP_LIST_IS_CONS_D(list) +# define MSGPACK_PP_LIST_IS_CONS_D(list) MSGPACK_PP_LIST_IS_CONS_ ## list +# define MSGPACK_PP_LIST_IS_CONS_(head, tail) 1 +# define MSGPACK_PP_LIST_IS_CONS_MSGPACK_PP_NIL 0 +# else +# define MSGPACK_PP_LIST_IS_CONS(list) MSGPACK_PP_IS_BINARY(list) +# endif +# +# /* MSGPACK_PP_LIST_IS_NIL */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_BCC() +# define MSGPACK_PP_LIST_IS_NIL(list) MSGPACK_PP_COMPL(MSGPACK_PP_IS_BINARY(list)) +# else +# define MSGPACK_PP_LIST_IS_NIL(list) MSGPACK_PP_COMPL(MSGPACK_PP_LIST_IS_CONS(list)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/append.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/append.hpp new file mode 100644 index 000000000000..667afe770ef3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/append.hpp @@ -0,0 +1,40 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_APPEND_HPP +# define MSGPACK_PREPROCESSOR_LIST_APPEND_HPP +# +# include +# include +# +# /* MSGPACK_PP_LIST_APPEND */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_APPEND(a, b) MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_APPEND_O, b, a) +# else +# define MSGPACK_PP_LIST_APPEND(a, b) MSGPACK_PP_LIST_APPEND_I(a, b) +# define MSGPACK_PP_LIST_APPEND_I(a, b) MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_APPEND_O, b, a) +# endif +# +# define MSGPACK_PP_LIST_APPEND_O(d, s, x) (x, s) +# +# /* MSGPACK_PP_LIST_APPEND_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_APPEND_D(d, a, b) MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_APPEND_O, b, a) +# else +# define MSGPACK_PP_LIST_APPEND_D(d, a, b) MSGPACK_PP_LIST_APPEND_D_I(d, a, b) +# define MSGPACK_PP_LIST_APPEND_D_I(d, a, b) MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_APPEND_O, b, a) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/at.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/at.hpp new file mode 100644 index 000000000000..c659fcb9a4a9 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/at.hpp @@ -0,0 +1,39 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_AT_HPP +# define MSGPACK_PREPROCESSOR_LIST_AT_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_LIST_AT */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_AT(list, index) MSGPACK_PP_LIST_FIRST(MSGPACK_PP_LIST_REST_N(index, list)) +# else +# define MSGPACK_PP_LIST_AT(list, index) MSGPACK_PP_LIST_AT_I(list, index) +# define MSGPACK_PP_LIST_AT_I(list, index) MSGPACK_PP_LIST_FIRST(MSGPACK_PP_LIST_REST_N(index, list)) +# endif +# +# /* MSGPACK_PP_LIST_AT_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_AT_D(d, list, index) MSGPACK_PP_LIST_FIRST(MSGPACK_PP_LIST_REST_N_D(d, index, list)) +# else +# define MSGPACK_PP_LIST_AT_D(d, list, index) MSGPACK_PP_LIST_AT_D_I(d, list, index) +# define MSGPACK_PP_LIST_AT_D_I(d, list, index) MSGPACK_PP_LIST_FIRST(MSGPACK_PP_LIST_REST_N_D(d, index, list)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/cat.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/cat.hpp new file mode 100644 index 000000000000..584d43e59588 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/cat.hpp @@ -0,0 +1,42 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_CAT_HPP +# define MSGPACK_PREPROCESSOR_LIST_CAT_HPP +# +# include +# include +# include +# include +# +# /* MSGPACK_PP_LIST_CAT */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_CAT(list) MSGPACK_PP_LIST_FOLD_LEFT(MSGPACK_PP_LIST_CAT_O, MSGPACK_PP_LIST_FIRST(list), MSGPACK_PP_LIST_REST(list)) +# else +# define MSGPACK_PP_LIST_CAT(list) MSGPACK_PP_LIST_CAT_I(list) +# define MSGPACK_PP_LIST_CAT_I(list) MSGPACK_PP_LIST_FOLD_LEFT(MSGPACK_PP_LIST_CAT_O, MSGPACK_PP_LIST_FIRST(list), MSGPACK_PP_LIST_REST(list)) +# endif +# +# define MSGPACK_PP_LIST_CAT_O(d, s, x) MSGPACK_PP_CAT(s, x) +# +# /* MSGPACK_PP_LIST_CAT_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_CAT_D(d, list) MSGPACK_PP_LIST_FOLD_LEFT_ ## d(MSGPACK_PP_LIST_CAT_O, MSGPACK_PP_LIST_FIRST(list), MSGPACK_PP_LIST_REST(list)) +# else +# define MSGPACK_PP_LIST_CAT_D(d, list) MSGPACK_PP_LIST_CAT_D_I(d, list) +# define MSGPACK_PP_LIST_CAT_D_I(d, list) MSGPACK_PP_LIST_FOLD_LEFT_ ## d(MSGPACK_PP_LIST_CAT_O, MSGPACK_PP_LIST_FIRST(list), MSGPACK_PP_LIST_REST(list)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/detail/dmc/fold_left.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/detail/dmc/fold_left.hpp new file mode 100644 index 000000000000..76a89ee3e772 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/detail/dmc/fold_left.hpp @@ -0,0 +1,279 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP +# define MSGPACK_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP +# +# include +# include +# include +# include +# +# define MSGPACK_PP_LIST_FOLD_LEFT_1(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_2, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(2, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_2(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_3, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(3, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_3(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_4, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(4, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_4(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_5, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(5, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_5(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_6, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(6, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_6(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_7, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(7, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_7(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_8, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(8, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_8(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_9, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(9, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_9(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_10, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(10, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_10(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_11, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(11, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_11(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_12, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(12, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_12(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_13, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(13, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_13(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_14, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(14, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_14(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_15, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(15, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_15(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_16, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(16, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_16(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_17, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(17, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_17(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_18, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(18, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_18(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_19, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(19, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_19(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_20, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(20, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_20(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_21, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(21, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_21(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_22, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(22, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_22(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_23, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(23, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_23(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_24, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(24, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_24(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_25, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(25, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_25(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_26, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(26, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_26(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_27, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(27, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_27(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_28, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(28, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_28(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_29, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(29, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_29(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_30, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(30, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_30(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_31, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(31, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_31(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_32, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(32, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_32(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_33, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(33, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_33(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_34, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(34, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_34(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_35, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(35, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_35(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_36, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(36, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_36(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_37, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(37, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_37(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_38, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(38, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_38(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_39, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(39, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_39(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_40, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(40, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_40(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_41, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(41, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_41(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_42, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(42, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_42(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_43, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(43, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_43(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_44, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(44, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_44(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_45, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(45, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_45(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_46, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(46, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_46(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_47, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(47, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_47(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_48, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(48, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_48(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_49, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(49, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_49(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_50, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(50, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_50(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_51, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(51, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_51(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_52, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(52, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_52(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_53, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(53, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_53(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_54, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(54, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_54(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_55, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(55, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_55(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_56, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(56, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_56(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_57, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(57, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_57(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_58, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(58, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_58(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_59, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(59, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_59(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_60, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(60, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_60(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_61, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(61, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_61(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_62, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(62, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_62(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_63, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(63, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_63(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_64, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(64, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_64(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_65, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(65, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_65(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_66, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(66, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_66(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_67, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(67, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_67(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_68, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(68, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_68(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_69, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(69, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_69(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_70, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(70, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_70(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_71, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(71, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_71(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_72, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(72, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_72(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_73, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(73, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_73(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_74, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(74, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_74(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_75, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(75, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_75(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_76, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(76, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_76(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_77, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(77, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_77(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_78, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(78, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_78(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_79, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(79, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_79(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_80, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(80, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_80(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_81, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(81, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_81(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_82, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(82, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_82(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_83, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(83, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_83(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_84, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(84, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_84(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_85, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(85, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_85(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_86, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(86, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_86(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_87, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(87, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_87(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_88, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(88, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_88(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_89, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(89, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_89(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_90, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(90, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_90(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_91, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(91, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_91(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_92, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(92, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_92(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_93, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(93, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_93(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_94, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(94, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_94(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_95, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(95, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_95(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_96, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(96, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_96(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_97, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(97, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_97(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_98, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(98, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_98(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_99, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(99, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_99(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_100, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(100, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_100(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_101, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(101, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_101(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_102, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(102, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_102(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_103, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(103, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_103(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_104, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(104, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_104(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_105, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(105, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_105(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_106, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(106, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_106(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_107, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(107, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_107(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_108, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(108, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_108(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_109, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(109, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_109(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_110, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(110, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_110(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_111, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(111, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_111(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_112, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(112, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_112(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_113, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(113, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_113(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_114, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(114, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_114(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_115, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(115, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_115(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_116, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(116, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_116(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_117, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(117, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_117(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_118, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(118, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_118(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_119, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(119, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_119(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_120, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(120, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_120(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_121, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(121, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_121(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_122, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(122, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_122(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_123, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(123, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_123(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_124, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(124, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_124(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_125, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(125, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_125(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_126, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(126, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_126(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_127, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(127, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_127(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_128, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(128, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_128(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_129, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(129, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_129(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_130, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(130, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_130(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_131, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(131, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_131(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_132, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(132, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_132(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_133, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(133, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_133(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_134, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(134, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_134(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_135, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(135, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_135(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_136, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(136, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_136(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_137, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(137, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_137(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_138, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(138, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_138(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_139, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(139, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_139(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_140, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(140, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_140(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_141, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(141, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_141(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_142, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(142, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_142(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_143, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(143, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_143(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_144, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(144, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_144(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_145, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(145, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_145(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_146, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(146, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_146(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_147, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(147, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_147(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_148, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(148, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_148(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_149, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(149, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_149(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_150, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(150, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_150(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_151, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(151, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_151(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_152, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(152, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_152(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_153, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(153, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_153(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_154, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(154, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_154(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_155, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(155, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_155(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_156, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(156, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_156(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_157, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(157, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_157(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_158, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(158, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_158(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_159, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(159, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_159(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_160, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(160, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_160(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_161, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(161, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_161(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_162, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(162, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_162(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_163, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(163, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_163(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_164, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(164, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_164(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_165, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(165, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_165(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_166, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(166, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_166(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_167, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(167, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_167(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_168, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(168, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_168(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_169, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(169, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_169(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_170, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(170, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_170(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_171, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(171, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_171(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_172, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(172, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_172(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_173, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(173, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_173(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_174, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(174, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_174(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_175, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(175, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_175(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_176, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(176, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_176(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_177, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(177, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_177(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_178, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(178, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_178(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_179, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(179, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_179(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_180, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(180, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_180(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_181, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(181, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_181(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_182, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(182, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_182(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_183, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(183, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_183(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_184, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(184, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_184(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_185, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(185, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_185(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_186, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(186, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_186(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_187, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(187, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_187(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_188, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(188, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_188(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_189, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(189, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_189(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_190, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(190, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_190(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_191, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(191, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_191(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_192, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(192, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_192(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_193, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(193, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_193(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_194, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(194, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_194(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_195, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(195, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_195(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_196, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(196, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_196(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_197, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(197, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_197(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_198, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(198, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_198(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_199, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(199, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_199(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_200, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(200, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_200(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_201, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(201, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_201(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_202, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(202, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_202(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_203, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(203, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_203(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_204, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(204, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_204(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_205, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(205, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_205(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_206, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(206, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_206(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_207, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(207, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_207(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_208, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(208, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_208(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_209, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(209, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_209(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_210, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(210, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_210(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_211, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(211, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_211(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_212, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(212, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_212(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_213, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(213, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_213(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_214, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(214, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_214(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_215, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(215, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_215(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_216, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(216, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_216(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_217, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(217, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_217(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_218, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(218, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_218(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_219, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(219, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_219(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_220, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(220, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_220(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_221, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(221, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_221(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_222, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(222, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_222(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_223, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(223, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_223(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_224, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(224, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_224(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_225, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(225, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_225(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_226, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(226, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_226(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_227, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(227, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_227(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_228, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(228, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_228(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_229, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(229, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_229(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_230, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(230, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_230(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_231, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(231, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_231(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_232, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(232, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_232(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_233, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(233, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_233(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_234, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(234, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_234(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_235, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(235, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_235(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_236, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(236, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_236(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_237, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(237, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_237(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_238, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(238, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_238(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_239, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(239, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_239(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_240, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(240, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_240(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_241, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(241, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_241(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_242, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(242, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_242(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_243, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(243, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_243(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_244, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(244, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_244(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_245, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(245, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_245(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_246, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(246, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_246(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_247, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(247, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_247(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_248, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(248, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_248(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_249, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(249, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_249(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_250, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(250, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_250(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_251, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(251, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_251(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_252, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(252, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_252(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_253, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(253, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_253(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_254, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(254, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_254(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_255, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(255, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_255(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_256, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(256, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_256(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_257, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(257, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/detail/edg/fold_left.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/detail/edg/fold_left.hpp new file mode 100644 index 000000000000..f8c807691e04 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/detail/edg/fold_left.hpp @@ -0,0 +1,536 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP +# define MSGPACK_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP +# +# include +# include +# include +# include +# +# define MSGPACK_PP_LIST_FOLD_LEFT_1(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_1_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_2(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_2_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_3(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_3_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_4(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_4_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_5(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_5_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_6(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_6_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_7(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_7_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_8(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_8_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_9(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_9_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_10(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_10_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_11(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_11_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_12(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_12_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_13(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_13_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_14(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_14_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_15(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_15_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_16(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_16_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_17(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_17_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_18(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_18_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_19(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_19_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_20(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_20_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_21(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_21_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_22(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_22_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_23(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_23_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_24(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_24_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_25(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_25_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_26(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_26_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_27(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_27_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_28(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_28_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_29(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_29_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_30(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_30_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_31(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_31_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_32(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_32_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_33(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_33_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_34(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_34_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_35(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_35_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_36(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_36_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_37(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_37_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_38(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_38_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_39(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_39_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_40(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_40_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_41(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_41_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_42(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_42_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_43(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_43_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_44(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_44_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_45(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_45_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_46(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_46_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_47(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_47_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_48(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_48_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_49(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_49_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_50(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_50_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_51(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_51_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_52(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_52_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_53(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_53_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_54(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_54_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_55(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_55_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_56(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_56_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_57(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_57_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_58(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_58_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_59(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_59_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_60(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_60_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_61(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_61_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_62(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_62_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_63(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_63_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_64(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_64_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_65(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_65_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_66(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_66_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_67(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_67_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_68(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_68_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_69(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_69_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_70(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_70_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_71(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_71_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_72(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_72_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_73(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_73_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_74(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_74_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_75(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_75_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_76(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_76_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_77(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_77_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_78(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_78_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_79(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_79_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_80(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_80_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_81(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_81_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_82(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_82_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_83(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_83_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_84(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_84_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_85(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_85_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_86(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_86_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_87(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_87_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_88(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_88_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_89(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_89_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_90(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_90_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_91(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_91_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_92(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_92_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_93(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_93_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_94(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_94_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_95(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_95_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_96(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_96_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_97(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_97_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_98(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_98_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_99(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_99_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_100(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_100_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_101(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_101_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_102(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_102_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_103(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_103_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_104(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_104_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_105(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_105_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_106(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_106_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_107(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_107_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_108(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_108_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_109(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_109_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_110(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_110_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_111(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_111_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_112(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_112_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_113(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_113_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_114(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_114_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_115(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_115_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_116(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_116_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_117(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_117_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_118(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_118_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_119(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_119_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_120(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_120_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_121(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_121_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_122(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_122_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_123(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_123_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_124(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_124_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_125(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_125_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_126(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_126_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_127(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_127_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_128(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_128_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_129(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_129_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_130(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_130_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_131(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_131_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_132(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_132_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_133(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_133_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_134(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_134_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_135(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_135_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_136(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_136_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_137(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_137_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_138(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_138_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_139(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_139_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_140(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_140_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_141(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_141_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_142(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_142_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_143(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_143_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_144(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_144_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_145(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_145_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_146(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_146_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_147(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_147_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_148(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_148_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_149(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_149_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_150(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_150_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_151(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_151_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_152(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_152_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_153(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_153_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_154(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_154_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_155(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_155_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_156(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_156_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_157(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_157_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_158(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_158_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_159(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_159_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_160(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_160_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_161(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_161_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_162(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_162_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_163(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_163_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_164(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_164_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_165(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_165_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_166(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_166_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_167(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_167_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_168(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_168_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_169(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_169_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_170(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_170_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_171(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_171_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_172(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_172_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_173(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_173_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_174(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_174_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_175(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_175_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_176(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_176_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_177(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_177_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_178(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_178_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_179(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_179_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_180(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_180_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_181(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_181_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_182(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_182_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_183(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_183_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_184(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_184_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_185(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_185_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_186(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_186_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_187(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_187_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_188(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_188_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_189(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_189_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_190(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_190_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_191(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_191_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_192(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_192_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_193(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_193_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_194(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_194_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_195(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_195_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_196(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_196_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_197(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_197_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_198(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_198_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_199(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_199_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_200(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_200_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_201(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_201_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_202(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_202_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_203(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_203_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_204(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_204_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_205(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_205_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_206(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_206_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_207(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_207_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_208(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_208_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_209(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_209_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_210(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_210_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_211(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_211_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_212(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_212_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_213(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_213_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_214(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_214_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_215(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_215_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_216(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_216_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_217(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_217_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_218(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_218_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_219(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_219_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_220(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_220_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_221(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_221_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_222(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_222_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_223(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_223_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_224(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_224_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_225(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_225_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_226(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_226_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_227(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_227_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_228(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_228_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_229(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_229_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_230(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_230_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_231(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_231_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_232(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_232_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_233(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_233_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_234(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_234_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_235(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_235_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_236(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_236_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_237(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_237_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_238(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_238_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_239(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_239_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_240(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_240_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_241(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_241_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_242(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_242_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_243(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_243_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_244(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_244_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_245(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_245_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_246(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_246_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_247(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_247_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_248(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_248_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_249(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_249_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_250(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_250_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_251(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_251_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_252(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_252_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_253(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_253_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_254(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_254_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_255(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_255_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_256(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_256_D(o, s, l) +# +# define MSGPACK_PP_LIST_FOLD_LEFT_1_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_2, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(2, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_2_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_3, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(3, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_3_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_4, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(4, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_4_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_5, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(5, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_5_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_6, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(6, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_6_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_7, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(7, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_7_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_8, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(8, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_8_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_9, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(9, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_9_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_10, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(10, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_10_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_11, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(11, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_11_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_12, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(12, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_12_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_13, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(13, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_13_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_14, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(14, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_14_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_15, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(15, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_15_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_16, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(16, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_16_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_17, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(17, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_17_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_18, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(18, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_18_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_19, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(19, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_19_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_20, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(20, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_20_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_21, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(21, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_21_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_22, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(22, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_22_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_23, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(23, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_23_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_24, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(24, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_24_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_25, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(25, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_25_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_26, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(26, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_26_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_27, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(27, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_27_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_28, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(28, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_28_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_29, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(29, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_29_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_30, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(30, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_30_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_31, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(31, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_31_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_32, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(32, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_32_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_33, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(33, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_33_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_34, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(34, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_34_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_35, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(35, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_35_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_36, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(36, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_36_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_37, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(37, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_37_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_38, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(38, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_38_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_39, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(39, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_39_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_40, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(40, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_40_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_41, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(41, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_41_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_42, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(42, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_42_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_43, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(43, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_43_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_44, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(44, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_44_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_45, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(45, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_45_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_46, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(46, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_46_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_47, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(47, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_47_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_48, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(48, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_48_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_49, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(49, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_49_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_50, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(50, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_50_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_51, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(51, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_51_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_52, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(52, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_52_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_53, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(53, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_53_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_54, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(54, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_54_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_55, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(55, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_55_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_56, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(56, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_56_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_57, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(57, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_57_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_58, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(58, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_58_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_59, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(59, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_59_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_60, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(60, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_60_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_61, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(61, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_61_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_62, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(62, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_62_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_63, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(63, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_63_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_64, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(64, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_64_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_65, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(65, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_65_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_66, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(66, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_66_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_67, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(67, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_67_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_68, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(68, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_68_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_69, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(69, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_69_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_70, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(70, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_70_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_71, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(71, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_71_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_72, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(72, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_72_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_73, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(73, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_73_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_74, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(74, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_74_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_75, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(75, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_75_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_76, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(76, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_76_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_77, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(77, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_77_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_78, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(78, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_78_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_79, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(79, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_79_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_80, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(80, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_80_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_81, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(81, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_81_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_82, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(82, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_82_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_83, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(83, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_83_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_84, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(84, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_84_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_85, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(85, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_85_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_86, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(86, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_86_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_87, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(87, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_87_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_88, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(88, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_88_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_89, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(89, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_89_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_90, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(90, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_90_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_91, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(91, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_91_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_92, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(92, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_92_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_93, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(93, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_93_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_94, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(94, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_94_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_95, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(95, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_95_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_96, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(96, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_96_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_97, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(97, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_97_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_98, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(98, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_98_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_99, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(99, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_99_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_100, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(100, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_100_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_101, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(101, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_101_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_102, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(102, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_102_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_103, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(103, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_103_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_104, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(104, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_104_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_105, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(105, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_105_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_106, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(106, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_106_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_107, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(107, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_107_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_108, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(108, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_108_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_109, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(109, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_109_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_110, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(110, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_110_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_111, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(111, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_111_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_112, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(112, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_112_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_113, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(113, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_113_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_114, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(114, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_114_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_115, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(115, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_115_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_116, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(116, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_116_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_117, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(117, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_117_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_118, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(118, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_118_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_119, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(119, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_119_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_120, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(120, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_120_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_121, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(121, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_121_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_122, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(122, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_122_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_123, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(123, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_123_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_124, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(124, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_124_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_125, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(125, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_125_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_126, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(126, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_126_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_127, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(127, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_127_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_128, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(128, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_128_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_129, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(129, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_129_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_130, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(130, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_130_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_131, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(131, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_131_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_132, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(132, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_132_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_133, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(133, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_133_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_134, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(134, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_134_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_135, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(135, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_135_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_136, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(136, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_136_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_137, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(137, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_137_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_138, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(138, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_138_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_139, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(139, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_139_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_140, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(140, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_140_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_141, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(141, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_141_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_142, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(142, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_142_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_143, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(143, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_143_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_144, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(144, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_144_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_145, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(145, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_145_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_146, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(146, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_146_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_147, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(147, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_147_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_148, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(148, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_148_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_149, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(149, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_149_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_150, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(150, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_150_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_151, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(151, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_151_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_152, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(152, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_152_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_153, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(153, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_153_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_154, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(154, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_154_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_155, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(155, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_155_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_156, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(156, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_156_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_157, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(157, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_157_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_158, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(158, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_158_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_159, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(159, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_159_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_160, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(160, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_160_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_161, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(161, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_161_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_162, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(162, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_162_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_163, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(163, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_163_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_164, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(164, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_164_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_165, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(165, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_165_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_166, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(166, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_166_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_167, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(167, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_167_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_168, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(168, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_168_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_169, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(169, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_169_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_170, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(170, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_170_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_171, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(171, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_171_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_172, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(172, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_172_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_173, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(173, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_173_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_174, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(174, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_174_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_175, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(175, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_175_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_176, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(176, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_176_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_177, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(177, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_177_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_178, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(178, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_178_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_179, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(179, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_179_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_180, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(180, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_180_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_181, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(181, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_181_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_182, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(182, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_182_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_183, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(183, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_183_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_184, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(184, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_184_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_185, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(185, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_185_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_186, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(186, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_186_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_187, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(187, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_187_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_188, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(188, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_188_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_189, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(189, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_189_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_190, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(190, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_190_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_191, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(191, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_191_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_192, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(192, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_192_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_193, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(193, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_193_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_194, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(194, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_194_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_195, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(195, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_195_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_196, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(196, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_196_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_197, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(197, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_197_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_198, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(198, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_198_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_199, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(199, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_199_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_200, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(200, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_200_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_201, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(201, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_201_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_202, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(202, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_202_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_203, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(203, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_203_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_204, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(204, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_204_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_205, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(205, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_205_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_206, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(206, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_206_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_207, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(207, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_207_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_208, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(208, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_208_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_209, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(209, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_209_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_210, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(210, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_210_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_211, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(211, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_211_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_212, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(212, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_212_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_213, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(213, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_213_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_214, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(214, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_214_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_215, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(215, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_215_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_216, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(216, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_216_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_217, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(217, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_217_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_218, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(218, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_218_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_219, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(219, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_219_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_220, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(220, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_220_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_221, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(221, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_221_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_222, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(222, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_222_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_223, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(223, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_223_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_224, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(224, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_224_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_225, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(225, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_225_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_226, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(226, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_226_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_227, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(227, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_227_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_228, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(228, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_228_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_229, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(229, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_229_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_230, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(230, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_230_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_231, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(231, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_231_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_232, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(232, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_232_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_233, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(233, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_233_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_234, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(234, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_234_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_235, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(235, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_235_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_236, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(236, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_236_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_237, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(237, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_237_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_238, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(238, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_238_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_239, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(239, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_239_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_240, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(240, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_240_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_241, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(241, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_241_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_242, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(242, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_242_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_243, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(243, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_243_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_244, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(244, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_244_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_245, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(245, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_245_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_246, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(246, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_246_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_247, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(247, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_247_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_248, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(248, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_248_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_249, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(249, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_249_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_250, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(250, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_250_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_251, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(251, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_251_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_252, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(252, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_252_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_253, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(253, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_253_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_254, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(254, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_254_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_255, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(255, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_255_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_256, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(256, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_256_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_257, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(257, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/detail/edg/fold_right.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/detail/edg/fold_right.hpp new file mode 100644 index 000000000000..5ea32468b3d6 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/detail/edg/fold_right.hpp @@ -0,0 +1,794 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP +# define MSGPACK_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP +# +# include +# include +# include +# +# define MSGPACK_PP_LIST_FOLD_RIGHT_1(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_1_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_2(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_2_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_3(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_3_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_4(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_4_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_5(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_5_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_6(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_6_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_7(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_7_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_8(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_8_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_9(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_9_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_10(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_10_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_11(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_11_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_12(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_12_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_13(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_13_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_14(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_14_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_15(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_15_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_16(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_16_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_17(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_17_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_18(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_18_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_19(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_19_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_20(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_20_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_21(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_21_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_22(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_22_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_23(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_23_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_24(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_24_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_25(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_25_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_26(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_26_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_27(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_27_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_28(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_28_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_29(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_29_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_30(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_30_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_31(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_31_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_32(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_32_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_33(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_33_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_34(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_34_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_35(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_35_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_36(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_36_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_37(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_37_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_38(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_38_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_39(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_39_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_40(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_40_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_41(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_41_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_42(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_42_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_43(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_43_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_44(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_44_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_45(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_45_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_46(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_46_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_47(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_47_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_48(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_48_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_49(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_49_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_50(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_50_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_51(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_51_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_52(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_52_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_53(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_53_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_54(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_54_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_55(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_55_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_56(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_56_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_57(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_57_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_58(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_58_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_59(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_59_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_60(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_60_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_61(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_61_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_62(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_62_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_63(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_63_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_64(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_64_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_65(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_65_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_66(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_66_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_67(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_67_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_68(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_68_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_69(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_69_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_70(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_70_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_71(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_71_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_72(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_72_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_73(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_73_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_74(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_74_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_75(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_75_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_76(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_76_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_77(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_77_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_78(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_78_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_79(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_79_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_80(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_80_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_81(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_81_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_82(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_82_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_83(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_83_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_84(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_84_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_85(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_85_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_86(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_86_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_87(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_87_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_88(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_88_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_89(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_89_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_90(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_90_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_91(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_91_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_92(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_92_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_93(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_93_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_94(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_94_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_95(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_95_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_96(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_96_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_97(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_97_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_98(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_98_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_99(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_99_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_100(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_100_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_101(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_101_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_102(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_102_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_103(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_103_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_104(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_104_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_105(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_105_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_106(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_106_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_107(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_107_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_108(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_108_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_109(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_109_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_110(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_110_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_111(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_111_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_112(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_112_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_113(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_113_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_114(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_114_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_115(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_115_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_116(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_116_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_117(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_117_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_118(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_118_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_119(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_119_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_120(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_120_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_121(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_121_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_122(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_122_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_123(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_123_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_124(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_124_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_125(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_125_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_126(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_126_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_127(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_127_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_128(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_128_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_129(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_129_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_130(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_130_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_131(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_131_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_132(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_132_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_133(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_133_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_134(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_134_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_135(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_135_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_136(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_136_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_137(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_137_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_138(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_138_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_139(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_139_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_140(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_140_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_141(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_141_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_142(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_142_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_143(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_143_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_144(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_144_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_145(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_145_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_146(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_146_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_147(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_147_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_148(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_148_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_149(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_149_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_150(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_150_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_151(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_151_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_152(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_152_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_153(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_153_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_154(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_154_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_155(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_155_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_156(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_156_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_157(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_157_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_158(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_158_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_159(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_159_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_160(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_160_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_161(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_161_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_162(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_162_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_163(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_163_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_164(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_164_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_165(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_165_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_166(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_166_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_167(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_167_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_168(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_168_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_169(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_169_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_170(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_170_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_171(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_171_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_172(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_172_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_173(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_173_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_174(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_174_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_175(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_175_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_176(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_176_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_177(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_177_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_178(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_178_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_179(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_179_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_180(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_180_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_181(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_181_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_182(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_182_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_183(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_183_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_184(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_184_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_185(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_185_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_186(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_186_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_187(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_187_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_188(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_188_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_189(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_189_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_190(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_190_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_191(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_191_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_192(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_192_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_193(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_193_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_194(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_194_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_195(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_195_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_196(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_196_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_197(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_197_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_198(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_198_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_199(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_199_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_200(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_200_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_201(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_201_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_202(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_202_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_203(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_203_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_204(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_204_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_205(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_205_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_206(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_206_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_207(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_207_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_208(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_208_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_209(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_209_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_210(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_210_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_211(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_211_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_212(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_212_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_213(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_213_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_214(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_214_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_215(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_215_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_216(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_216_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_217(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_217_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_218(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_218_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_219(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_219_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_220(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_220_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_221(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_221_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_222(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_222_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_223(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_223_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_224(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_224_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_225(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_225_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_226(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_226_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_227(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_227_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_228(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_228_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_229(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_229_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_230(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_230_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_231(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_231_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_232(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_232_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_233(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_233_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_234(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_234_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_235(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_235_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_236(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_236_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_237(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_237_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_238(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_238_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_239(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_239_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_240(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_240_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_241(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_241_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_242(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_242_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_243(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_243_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_244(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_244_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_245(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_245_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_246(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_246_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_247(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_247_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_248(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_248_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_249(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_249_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_250(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_250_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_251(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_251_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_252(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_252_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_253(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_253_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_254(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_254_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_255(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_255_D(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_256(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_256_D(o, s, l) +# +# define MSGPACK_PP_LIST_FOLD_RIGHT_1_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(2, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_2, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_2_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(3, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_3, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_3_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(4, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_4, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_4_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(5, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_5, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_5_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(6, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_6, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_6_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(7, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_7, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_7_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(8, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_8, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_8_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(9, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_9, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_9_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(10, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_10, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_10_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(11, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_11, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_11_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(12, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_12, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_12_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(13, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_13, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_13_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(14, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_14, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_14_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(15, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_15, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_15_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(16, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_16, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_16_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(17, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_17, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_17_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(18, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_18, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_18_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(19, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_19, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_19_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(20, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_20, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_20_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(21, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_21, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_21_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(22, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_22, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_22_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(23, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_23, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_23_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(24, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_24, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_24_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(25, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_25, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_25_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(26, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_26, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_26_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(27, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_27, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_27_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(28, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_28, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_28_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(29, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_29, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_29_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(30, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_30, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_30_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(31, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_31, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_31_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(32, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_32, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_32_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(33, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_33, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_33_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(34, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_34, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_34_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(35, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_35, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_35_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(36, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_36, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_36_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(37, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_37, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_37_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(38, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_38, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_38_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(39, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_39, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_39_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(40, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_40, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_40_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(41, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_41, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_41_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(42, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_42, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_42_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(43, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_43, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_43_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(44, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_44, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_44_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(45, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_45, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_45_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(46, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_46, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_46_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(47, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_47, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_47_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(48, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_48, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_48_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(49, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_49, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_49_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(50, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_50, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_50_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(51, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_51, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_51_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(52, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_52, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_52_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(53, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_53, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_53_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(54, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_54, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_54_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(55, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_55, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_55_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(56, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_56, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_56_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(57, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_57, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_57_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(58, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_58, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_58_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(59, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_59, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_59_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(60, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_60, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_60_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(61, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_61, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_61_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(62, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_62, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_62_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(63, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_63, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_63_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(64, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_64, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_64_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(65, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_65, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_65_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(66, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_66, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_66_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(67, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_67, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_67_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(68, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_68, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_68_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(69, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_69, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_69_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(70, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_70, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_70_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(71, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_71, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_71_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(72, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_72, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_72_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(73, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_73, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_73_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(74, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_74, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_74_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(75, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_75, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_75_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(76, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_76, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_76_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(77, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_77, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_77_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(78, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_78, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_78_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(79, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_79, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_79_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(80, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_80, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_80_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(81, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_81, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_81_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(82, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_82, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_82_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(83, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_83, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_83_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(84, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_84, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_84_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(85, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_85, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_85_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(86, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_86, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_86_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(87, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_87, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_87_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(88, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_88, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_88_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(89, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_89, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_89_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(90, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_90, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_90_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(91, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_91, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_91_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(92, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_92, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_92_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(93, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_93, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_93_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(94, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_94, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_94_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(95, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_95, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_95_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(96, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_96, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_96_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(97, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_97, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_97_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(98, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_98, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_98_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(99, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_99, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_99_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(100, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_100, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_100_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(101, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_101, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_101_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(102, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_102, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_102_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(103, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_103, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_103_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(104, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_104, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_104_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(105, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_105, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_105_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(106, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_106, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_106_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(107, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_107, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_107_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(108, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_108, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_108_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(109, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_109, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_109_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(110, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_110, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_110_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(111, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_111, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_111_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(112, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_112, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_112_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(113, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_113, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_113_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(114, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_114, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_114_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(115, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_115, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_115_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(116, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_116, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_116_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(117, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_117, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_117_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(118, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_118, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_118_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(119, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_119, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_119_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(120, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_120, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_120_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(121, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_121, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_121_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(122, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_122, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_122_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(123, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_123, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_123_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(124, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_124, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_124_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(125, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_125, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_125_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(126, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_126, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_126_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(127, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_127, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_127_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(128, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_128, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_128_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(129, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_129, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_129_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(130, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_130, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_130_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(131, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_131, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_131_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(132, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_132, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_132_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(133, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_133, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_133_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(134, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_134, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_134_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(135, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_135, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_135_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(136, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_136, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_136_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(137, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_137, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_137_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(138, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_138, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_138_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(139, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_139, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_139_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(140, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_140, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_140_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(141, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_141, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_141_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(142, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_142, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_142_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(143, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_143, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_143_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(144, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_144, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_144_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(145, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_145, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_145_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(146, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_146, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_146_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(147, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_147, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_147_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(148, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_148, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_148_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(149, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_149, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_149_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(150, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_150, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_150_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(151, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_151, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_151_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(152, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_152, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_152_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(153, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_153, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_153_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(154, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_154, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_154_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(155, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_155, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_155_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(156, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_156, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_156_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(157, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_157, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_157_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(158, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_158, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_158_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(159, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_159, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_159_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(160, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_160, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_160_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(161, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_161, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_161_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(162, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_162, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_162_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(163, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_163, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_163_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(164, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_164, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_164_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(165, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_165, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_165_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(166, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_166, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_166_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(167, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_167, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_167_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(168, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_168, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_168_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(169, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_169, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_169_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(170, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_170, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_170_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(171, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_171, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_171_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(172, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_172, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_172_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(173, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_173, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_173_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(174, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_174, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_174_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(175, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_175, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_175_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(176, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_176, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_176_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(177, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_177, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_177_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(178, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_178, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_178_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(179, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_179, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_179_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(180, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_180, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_180_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(181, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_181, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_181_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(182, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_182, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_182_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(183, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_183, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_183_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(184, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_184, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_184_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(185, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_185, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_185_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(186, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_186, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_186_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(187, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_187, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_187_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(188, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_188, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_188_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(189, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_189, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_189_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(190, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_190, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_190_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(191, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_191, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_191_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(192, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_192, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_192_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(193, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_193, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_193_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(194, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_194, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_194_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(195, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_195, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_195_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(196, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_196, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_196_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(197, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_197, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_197_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(198, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_198, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_198_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(199, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_199, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_199_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(200, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_200, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_200_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(201, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_201, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_201_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(202, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_202, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_202_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(203, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_203, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_203_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(204, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_204, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_204_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(205, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_205, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_205_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(206, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_206, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_206_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(207, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_207, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_207_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(208, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_208, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_208_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(209, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_209, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_209_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(210, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_210, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_210_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(211, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_211, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_211_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(212, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_212, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_212_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(213, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_213, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_213_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(214, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_214, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_214_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(215, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_215, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_215_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(216, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_216, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_216_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(217, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_217, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_217_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(218, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_218, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_218_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(219, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_219, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_219_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(220, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_220, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_220_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(221, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_221, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_221_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(222, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_222, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_222_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(223, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_223, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_223_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(224, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_224, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_224_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(225, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_225, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_225_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(226, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_226, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_226_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(227, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_227, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_227_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(228, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_228, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_228_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(229, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_229, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_229_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(230, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_230, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_230_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(231, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_231, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_231_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(232, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_232, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_232_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(233, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_233, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_233_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(234, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_234, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_234_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(235, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_235, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_235_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(236, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_236, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_236_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(237, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_237, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_237_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(238, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_238, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_238_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(239, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_239, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_239_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(240, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_240, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_240_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(241, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_241, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_241_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(242, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_242, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_242_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(243, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_243, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_243_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(244, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_244, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_244_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(245, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_245, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_245_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(246, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_246, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_246_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(247, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_247, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_247_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(248, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_248, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_248_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(249, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_249, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_249_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(250, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_250, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_250_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(251, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_251, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_251_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(252, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_252, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_252_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(253, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_253, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_253_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(254, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_254, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_254_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(255, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_255, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_255_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(256, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_256, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_256_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(257, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_257, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l)) +# +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_NIL 1 +# +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_1(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_2(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_3(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_4(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_5(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_6(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_7(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_8(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_9(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_10(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_11(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_12(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_13(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_14(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_15(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_16(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_17(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_18(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_19(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_20(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_21(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_22(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_23(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_24(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_25(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_26(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_27(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_28(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_29(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_30(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_31(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_32(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_33(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_34(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_35(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_36(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_37(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_38(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_39(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_40(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_41(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_42(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_43(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_44(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_45(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_46(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_47(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_48(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_49(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_50(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_51(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_52(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_53(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_54(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_55(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_56(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_57(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_58(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_59(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_60(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_61(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_62(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_63(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_64(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_65(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_66(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_67(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_68(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_69(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_70(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_71(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_72(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_73(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_74(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_75(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_76(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_77(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_78(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_79(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_80(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_81(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_82(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_83(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_84(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_85(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_86(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_87(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_88(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_89(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_90(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_91(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_92(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_93(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_94(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_95(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_96(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_97(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_98(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_99(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_100(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_101(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_102(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_103(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_104(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_105(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_106(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_107(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_108(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_109(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_110(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_111(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_112(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_113(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_114(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_115(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_116(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_117(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_118(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_119(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_120(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_121(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_122(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_123(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_124(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_125(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_126(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_127(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_128(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_129(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_130(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_131(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_132(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_133(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_134(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_135(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_136(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_137(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_138(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_139(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_140(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_141(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_142(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_143(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_144(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_145(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_146(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_147(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_148(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_149(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_150(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_151(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_152(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_153(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_154(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_155(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_156(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_157(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_158(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_159(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_160(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_161(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_162(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_163(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_164(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_165(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_166(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_167(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_168(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_169(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_170(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_171(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_172(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_173(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_174(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_175(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_176(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_177(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_178(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_179(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_180(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_181(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_182(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_183(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_184(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_185(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_186(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_187(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_188(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_189(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_190(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_191(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_192(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_193(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_194(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_195(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_196(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_197(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_198(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_199(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_200(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_201(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_202(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_203(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_204(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_205(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_206(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_207(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_208(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_209(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_210(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_211(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_212(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_213(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_214(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_215(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_216(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_217(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_218(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_219(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_220(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_221(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_222(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_223(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_224(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_225(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_226(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_227(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_228(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_229(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_230(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_231(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_232(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_233(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_234(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_235(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_236(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_237(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_238(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_239(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_240(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_241(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_242(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_243(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_244(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_245(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_246(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_247(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_248(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_249(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_250(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_251(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_252(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_253(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_254(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_255(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_256(o, s, l) 0 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/detail/fold_left.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/detail/fold_left.hpp new file mode 100644 index 000000000000..eeb2ab0a0684 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/detail/fold_left.hpp @@ -0,0 +1,279 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP +# define MSGPACK_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP +# +# include +# include +# include +# include +# +# define MSGPACK_PP_LIST_FOLD_LEFT_1(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_2, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(2, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_2(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_3, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(3, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_3(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_4, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(4, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_4(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_5, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(5, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_5(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_6, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(6, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_6(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_7, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(7, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_7(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_8, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(8, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_8(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_9, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(9, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_9(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_10, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(10, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_10(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_11, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(11, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_11(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_12, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(12, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_12(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_13, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(13, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_13(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_14, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(14, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_14(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_15, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(15, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_15(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_16, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(16, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_16(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_17, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(17, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_17(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_18, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(18, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_18(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_19, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(19, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_19(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_20, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(20, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_20(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_21, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(21, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_21(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_22, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(22, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_22(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_23, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(23, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_23(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_24, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(24, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_24(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_25, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(25, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_25(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_26, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(26, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_26(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_27, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(27, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_27(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_28, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(28, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_28(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_29, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(29, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_29(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_30, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(30, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_30(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_31, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(31, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_31(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_32, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(32, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_32(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_33, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(33, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_33(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_34, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(34, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_34(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_35, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(35, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_35(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_36, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(36, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_36(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_37, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(37, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_37(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_38, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(38, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_38(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_39, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(39, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_39(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_40, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(40, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_40(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_41, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(41, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_41(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_42, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(42, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_42(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_43, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(43, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_43(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_44, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(44, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_44(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_45, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(45, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_45(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_46, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(46, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_46(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_47, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(47, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_47(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_48, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(48, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_48(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_49, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(49, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_49(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_50, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(50, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_50(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_51, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(51, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_51(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_52, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(52, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_52(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_53, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(53, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_53(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_54, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(54, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_54(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_55, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(55, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_55(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_56, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(56, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_56(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_57, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(57, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_57(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_58, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(58, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_58(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_59, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(59, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_59(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_60, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(60, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_60(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_61, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(61, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_61(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_62, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(62, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_62(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_63, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(63, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_63(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_64, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(64, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_64(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_65, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(65, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_65(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_66, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(66, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_66(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_67, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(67, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_67(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_68, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(68, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_68(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_69, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(69, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_69(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_70, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(70, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_70(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_71, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(71, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_71(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_72, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(72, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_72(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_73, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(73, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_73(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_74, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(74, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_74(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_75, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(75, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_75(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_76, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(76, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_76(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_77, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(77, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_77(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_78, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(78, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_78(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_79, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(79, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_79(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_80, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(80, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_80(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_81, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(81, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_81(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_82, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(82, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_82(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_83, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(83, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_83(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_84, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(84, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_84(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_85, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(85, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_85(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_86, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(86, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_86(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_87, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(87, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_87(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_88, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(88, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_88(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_89, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(89, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_89(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_90, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(90, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_90(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_91, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(91, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_91(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_92, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(92, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_92(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_93, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(93, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_93(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_94, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(94, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_94(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_95, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(95, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_95(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_96, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(96, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_96(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_97, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(97, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_97(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_98, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(98, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_98(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_99, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(99, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_99(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_100, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(100, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_100(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_101, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(101, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_101(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_102, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(102, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_102(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_103, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(103, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_103(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_104, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(104, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_104(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_105, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(105, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_105(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_106, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(106, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_106(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_107, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(107, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_107(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_108, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(108, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_108(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_109, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(109, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_109(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_110, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(110, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_110(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_111, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(111, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_111(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_112, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(112, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_112(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_113, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(113, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_113(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_114, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(114, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_114(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_115, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(115, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_115(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_116, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(116, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_116(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_117, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(117, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_117(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_118, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(118, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_118(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_119, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(119, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_119(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_120, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(120, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_120(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_121, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(121, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_121(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_122, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(122, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_122(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_123, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(123, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_123(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_124, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(124, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_124(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_125, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(125, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_125(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_126, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(126, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_126(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_127, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(127, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_127(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_128, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(128, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_128(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_129, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(129, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_129(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_130, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(130, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_130(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_131, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(131, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_131(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_132, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(132, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_132(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_133, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(133, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_133(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_134, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(134, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_134(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_135, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(135, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_135(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_136, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(136, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_136(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_137, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(137, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_137(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_138, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(138, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_138(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_139, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(139, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_139(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_140, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(140, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_140(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_141, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(141, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_141(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_142, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(142, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_142(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_143, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(143, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_143(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_144, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(144, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_144(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_145, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(145, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_145(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_146, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(146, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_146(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_147, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(147, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_147(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_148, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(148, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_148(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_149, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(149, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_149(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_150, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(150, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_150(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_151, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(151, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_151(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_152, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(152, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_152(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_153, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(153, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_153(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_154, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(154, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_154(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_155, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(155, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_155(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_156, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(156, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_156(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_157, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(157, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_157(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_158, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(158, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_158(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_159, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(159, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_159(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_160, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(160, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_160(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_161, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(161, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_161(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_162, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(162, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_162(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_163, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(163, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_163(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_164, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(164, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_164(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_165, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(165, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_165(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_166, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(166, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_166(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_167, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(167, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_167(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_168, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(168, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_168(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_169, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(169, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_169(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_170, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(170, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_170(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_171, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(171, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_171(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_172, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(172, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_172(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_173, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(173, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_173(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_174, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(174, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_174(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_175, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(175, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_175(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_176, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(176, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_176(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_177, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(177, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_177(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_178, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(178, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_178(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_179, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(179, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_179(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_180, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(180, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_180(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_181, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(181, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_181(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_182, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(182, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_182(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_183, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(183, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_183(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_184, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(184, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_184(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_185, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(185, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_185(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_186, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(186, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_186(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_187, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(187, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_187(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_188, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(188, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_188(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_189, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(189, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_189(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_190, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(190, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_190(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_191, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(191, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_191(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_192, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(192, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_192(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_193, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(193, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_193(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_194, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(194, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_194(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_195, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(195, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_195(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_196, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(196, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_196(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_197, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(197, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_197(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_198, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(198, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_198(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_199, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(199, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_199(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_200, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(200, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_200(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_201, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(201, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_201(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_202, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(202, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_202(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_203, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(203, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_203(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_204, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(204, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_204(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_205, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(205, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_205(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_206, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(206, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_206(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_207, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(207, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_207(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_208, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(208, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_208(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_209, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(209, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_209(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_210, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(210, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_210(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_211, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(211, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_211(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_212, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(212, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_212(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_213, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(213, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_213(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_214, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(214, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_214(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_215, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(215, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_215(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_216, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(216, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_216(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_217, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(217, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_217(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_218, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(218, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_218(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_219, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(219, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_219(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_220, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(220, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_220(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_221, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(221, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_221(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_222, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(222, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_222(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_223, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(223, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_223(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_224, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(224, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_224(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_225, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(225, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_225(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_226, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(226, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_226(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_227, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(227, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_227(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_228, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(228, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_228(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_229, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(229, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_229(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_230, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(230, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_230(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_231, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(231, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_231(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_232, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(232, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_232(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_233, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(233, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_233(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_234, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(234, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_234(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_235, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(235, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_235(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_236, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(236, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_236(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_237, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(237, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_237(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_238, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(238, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_238(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_239, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(239, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_239(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_240, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(240, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_240(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_241, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(241, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_241(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_242, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(242, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_242(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_243, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(243, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_243(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_244, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(244, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_244(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_245, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(245, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_245(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_246, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(246, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_246(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_247, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(247, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_247(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_248, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(248, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_248(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_249, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(249, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_249(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_250, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(250, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_250(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_251, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(251, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_251(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_252, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(252, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_252(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_253, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(253, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_253(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_254, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(254, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_254(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_255, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(255, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_255(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_256, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(256, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# define MSGPACK_PP_LIST_FOLD_LEFT_256(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_257, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(257, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l)) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/detail/fold_right.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/detail/fold_right.hpp new file mode 100644 index 000000000000..9fc888302478 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/detail/fold_right.hpp @@ -0,0 +1,277 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP +# define MSGPACK_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP +# +# include +# include +# +# define MSGPACK_PP_LIST_FOLD_RIGHT_1(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_1(o, s, MSGPACK_PP_LIST_REVERSE_D(1, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_2(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_2(o, s, MSGPACK_PP_LIST_REVERSE_D(2, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_3(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_3(o, s, MSGPACK_PP_LIST_REVERSE_D(3, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_4(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_4(o, s, MSGPACK_PP_LIST_REVERSE_D(4, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_5(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_5(o, s, MSGPACK_PP_LIST_REVERSE_D(5, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_6(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_6(o, s, MSGPACK_PP_LIST_REVERSE_D(6, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_7(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_7(o, s, MSGPACK_PP_LIST_REVERSE_D(7, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_8(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_8(o, s, MSGPACK_PP_LIST_REVERSE_D(8, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_9(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_9(o, s, MSGPACK_PP_LIST_REVERSE_D(9, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_10(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_10(o, s, MSGPACK_PP_LIST_REVERSE_D(10, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_11(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_11(o, s, MSGPACK_PP_LIST_REVERSE_D(11, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_12(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_12(o, s, MSGPACK_PP_LIST_REVERSE_D(12, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_13(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_13(o, s, MSGPACK_PP_LIST_REVERSE_D(13, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_14(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_14(o, s, MSGPACK_PP_LIST_REVERSE_D(14, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_15(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_15(o, s, MSGPACK_PP_LIST_REVERSE_D(15, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_16(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_16(o, s, MSGPACK_PP_LIST_REVERSE_D(16, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_17(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_17(o, s, MSGPACK_PP_LIST_REVERSE_D(17, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_18(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_18(o, s, MSGPACK_PP_LIST_REVERSE_D(18, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_19(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_19(o, s, MSGPACK_PP_LIST_REVERSE_D(19, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_20(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_20(o, s, MSGPACK_PP_LIST_REVERSE_D(20, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_21(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_21(o, s, MSGPACK_PP_LIST_REVERSE_D(21, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_22(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_22(o, s, MSGPACK_PP_LIST_REVERSE_D(22, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_23(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_23(o, s, MSGPACK_PP_LIST_REVERSE_D(23, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_24(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_24(o, s, MSGPACK_PP_LIST_REVERSE_D(24, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_25(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_25(o, s, MSGPACK_PP_LIST_REVERSE_D(25, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_26(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_26(o, s, MSGPACK_PP_LIST_REVERSE_D(26, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_27(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_27(o, s, MSGPACK_PP_LIST_REVERSE_D(27, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_28(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_28(o, s, MSGPACK_PP_LIST_REVERSE_D(28, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_29(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_29(o, s, MSGPACK_PP_LIST_REVERSE_D(29, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_30(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_30(o, s, MSGPACK_PP_LIST_REVERSE_D(30, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_31(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_31(o, s, MSGPACK_PP_LIST_REVERSE_D(31, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_32(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_32(o, s, MSGPACK_PP_LIST_REVERSE_D(32, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_33(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_33(o, s, MSGPACK_PP_LIST_REVERSE_D(33, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_34(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_34(o, s, MSGPACK_PP_LIST_REVERSE_D(34, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_35(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_35(o, s, MSGPACK_PP_LIST_REVERSE_D(35, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_36(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_36(o, s, MSGPACK_PP_LIST_REVERSE_D(36, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_37(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_37(o, s, MSGPACK_PP_LIST_REVERSE_D(37, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_38(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_38(o, s, MSGPACK_PP_LIST_REVERSE_D(38, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_39(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_39(o, s, MSGPACK_PP_LIST_REVERSE_D(39, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_40(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_40(o, s, MSGPACK_PP_LIST_REVERSE_D(40, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_41(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_41(o, s, MSGPACK_PP_LIST_REVERSE_D(41, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_42(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_42(o, s, MSGPACK_PP_LIST_REVERSE_D(42, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_43(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_43(o, s, MSGPACK_PP_LIST_REVERSE_D(43, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_44(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_44(o, s, MSGPACK_PP_LIST_REVERSE_D(44, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_45(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_45(o, s, MSGPACK_PP_LIST_REVERSE_D(45, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_46(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_46(o, s, MSGPACK_PP_LIST_REVERSE_D(46, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_47(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_47(o, s, MSGPACK_PP_LIST_REVERSE_D(47, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_48(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_48(o, s, MSGPACK_PP_LIST_REVERSE_D(48, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_49(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_49(o, s, MSGPACK_PP_LIST_REVERSE_D(49, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_50(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_50(o, s, MSGPACK_PP_LIST_REVERSE_D(50, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_51(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_51(o, s, MSGPACK_PP_LIST_REVERSE_D(51, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_52(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_52(o, s, MSGPACK_PP_LIST_REVERSE_D(52, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_53(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_53(o, s, MSGPACK_PP_LIST_REVERSE_D(53, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_54(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_54(o, s, MSGPACK_PP_LIST_REVERSE_D(54, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_55(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_55(o, s, MSGPACK_PP_LIST_REVERSE_D(55, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_56(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_56(o, s, MSGPACK_PP_LIST_REVERSE_D(56, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_57(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_57(o, s, MSGPACK_PP_LIST_REVERSE_D(57, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_58(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_58(o, s, MSGPACK_PP_LIST_REVERSE_D(58, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_59(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_59(o, s, MSGPACK_PP_LIST_REVERSE_D(59, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_60(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_60(o, s, MSGPACK_PP_LIST_REVERSE_D(60, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_61(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_61(o, s, MSGPACK_PP_LIST_REVERSE_D(61, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_62(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_62(o, s, MSGPACK_PP_LIST_REVERSE_D(62, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_63(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_63(o, s, MSGPACK_PP_LIST_REVERSE_D(63, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_64(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_64(o, s, MSGPACK_PP_LIST_REVERSE_D(64, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_65(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_65(o, s, MSGPACK_PP_LIST_REVERSE_D(65, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_66(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_66(o, s, MSGPACK_PP_LIST_REVERSE_D(66, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_67(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_67(o, s, MSGPACK_PP_LIST_REVERSE_D(67, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_68(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_68(o, s, MSGPACK_PP_LIST_REVERSE_D(68, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_69(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_69(o, s, MSGPACK_PP_LIST_REVERSE_D(69, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_70(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_70(o, s, MSGPACK_PP_LIST_REVERSE_D(70, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_71(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_71(o, s, MSGPACK_PP_LIST_REVERSE_D(71, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_72(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_72(o, s, MSGPACK_PP_LIST_REVERSE_D(72, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_73(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_73(o, s, MSGPACK_PP_LIST_REVERSE_D(73, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_74(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_74(o, s, MSGPACK_PP_LIST_REVERSE_D(74, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_75(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_75(o, s, MSGPACK_PP_LIST_REVERSE_D(75, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_76(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_76(o, s, MSGPACK_PP_LIST_REVERSE_D(76, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_77(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_77(o, s, MSGPACK_PP_LIST_REVERSE_D(77, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_78(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_78(o, s, MSGPACK_PP_LIST_REVERSE_D(78, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_79(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_79(o, s, MSGPACK_PP_LIST_REVERSE_D(79, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_80(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_80(o, s, MSGPACK_PP_LIST_REVERSE_D(80, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_81(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_81(o, s, MSGPACK_PP_LIST_REVERSE_D(81, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_82(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_82(o, s, MSGPACK_PP_LIST_REVERSE_D(82, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_83(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_83(o, s, MSGPACK_PP_LIST_REVERSE_D(83, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_84(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_84(o, s, MSGPACK_PP_LIST_REVERSE_D(84, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_85(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_85(o, s, MSGPACK_PP_LIST_REVERSE_D(85, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_86(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_86(o, s, MSGPACK_PP_LIST_REVERSE_D(86, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_87(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_87(o, s, MSGPACK_PP_LIST_REVERSE_D(87, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_88(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_88(o, s, MSGPACK_PP_LIST_REVERSE_D(88, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_89(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_89(o, s, MSGPACK_PP_LIST_REVERSE_D(89, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_90(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_90(o, s, MSGPACK_PP_LIST_REVERSE_D(90, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_91(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_91(o, s, MSGPACK_PP_LIST_REVERSE_D(91, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_92(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_92(o, s, MSGPACK_PP_LIST_REVERSE_D(92, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_93(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_93(o, s, MSGPACK_PP_LIST_REVERSE_D(93, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_94(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_94(o, s, MSGPACK_PP_LIST_REVERSE_D(94, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_95(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_95(o, s, MSGPACK_PP_LIST_REVERSE_D(95, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_96(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_96(o, s, MSGPACK_PP_LIST_REVERSE_D(96, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_97(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_97(o, s, MSGPACK_PP_LIST_REVERSE_D(97, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_98(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_98(o, s, MSGPACK_PP_LIST_REVERSE_D(98, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_99(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_99(o, s, MSGPACK_PP_LIST_REVERSE_D(99, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_100(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_100(o, s, MSGPACK_PP_LIST_REVERSE_D(100, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_101(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_101(o, s, MSGPACK_PP_LIST_REVERSE_D(101, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_102(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_102(o, s, MSGPACK_PP_LIST_REVERSE_D(102, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_103(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_103(o, s, MSGPACK_PP_LIST_REVERSE_D(103, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_104(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_104(o, s, MSGPACK_PP_LIST_REVERSE_D(104, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_105(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_105(o, s, MSGPACK_PP_LIST_REVERSE_D(105, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_106(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_106(o, s, MSGPACK_PP_LIST_REVERSE_D(106, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_107(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_107(o, s, MSGPACK_PP_LIST_REVERSE_D(107, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_108(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_108(o, s, MSGPACK_PP_LIST_REVERSE_D(108, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_109(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_109(o, s, MSGPACK_PP_LIST_REVERSE_D(109, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_110(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_110(o, s, MSGPACK_PP_LIST_REVERSE_D(110, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_111(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_111(o, s, MSGPACK_PP_LIST_REVERSE_D(111, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_112(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_112(o, s, MSGPACK_PP_LIST_REVERSE_D(112, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_113(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_113(o, s, MSGPACK_PP_LIST_REVERSE_D(113, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_114(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_114(o, s, MSGPACK_PP_LIST_REVERSE_D(114, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_115(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_115(o, s, MSGPACK_PP_LIST_REVERSE_D(115, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_116(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_116(o, s, MSGPACK_PP_LIST_REVERSE_D(116, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_117(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_117(o, s, MSGPACK_PP_LIST_REVERSE_D(117, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_118(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_118(o, s, MSGPACK_PP_LIST_REVERSE_D(118, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_119(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_119(o, s, MSGPACK_PP_LIST_REVERSE_D(119, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_120(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_120(o, s, MSGPACK_PP_LIST_REVERSE_D(120, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_121(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_121(o, s, MSGPACK_PP_LIST_REVERSE_D(121, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_122(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_122(o, s, MSGPACK_PP_LIST_REVERSE_D(122, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_123(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_123(o, s, MSGPACK_PP_LIST_REVERSE_D(123, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_124(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_124(o, s, MSGPACK_PP_LIST_REVERSE_D(124, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_125(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_125(o, s, MSGPACK_PP_LIST_REVERSE_D(125, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_126(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_126(o, s, MSGPACK_PP_LIST_REVERSE_D(126, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_127(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_127(o, s, MSGPACK_PP_LIST_REVERSE_D(127, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_128(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_128(o, s, MSGPACK_PP_LIST_REVERSE_D(128, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_129(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_129(o, s, MSGPACK_PP_LIST_REVERSE_D(129, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_130(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_130(o, s, MSGPACK_PP_LIST_REVERSE_D(130, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_131(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_131(o, s, MSGPACK_PP_LIST_REVERSE_D(131, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_132(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_132(o, s, MSGPACK_PP_LIST_REVERSE_D(132, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_133(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_133(o, s, MSGPACK_PP_LIST_REVERSE_D(133, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_134(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_134(o, s, MSGPACK_PP_LIST_REVERSE_D(134, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_135(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_135(o, s, MSGPACK_PP_LIST_REVERSE_D(135, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_136(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_136(o, s, MSGPACK_PP_LIST_REVERSE_D(136, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_137(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_137(o, s, MSGPACK_PP_LIST_REVERSE_D(137, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_138(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_138(o, s, MSGPACK_PP_LIST_REVERSE_D(138, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_139(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_139(o, s, MSGPACK_PP_LIST_REVERSE_D(139, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_140(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_140(o, s, MSGPACK_PP_LIST_REVERSE_D(140, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_141(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_141(o, s, MSGPACK_PP_LIST_REVERSE_D(141, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_142(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_142(o, s, MSGPACK_PP_LIST_REVERSE_D(142, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_143(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_143(o, s, MSGPACK_PP_LIST_REVERSE_D(143, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_144(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_144(o, s, MSGPACK_PP_LIST_REVERSE_D(144, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_145(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_145(o, s, MSGPACK_PP_LIST_REVERSE_D(145, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_146(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_146(o, s, MSGPACK_PP_LIST_REVERSE_D(146, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_147(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_147(o, s, MSGPACK_PP_LIST_REVERSE_D(147, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_148(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_148(o, s, MSGPACK_PP_LIST_REVERSE_D(148, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_149(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_149(o, s, MSGPACK_PP_LIST_REVERSE_D(149, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_150(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_150(o, s, MSGPACK_PP_LIST_REVERSE_D(150, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_151(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_151(o, s, MSGPACK_PP_LIST_REVERSE_D(151, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_152(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_152(o, s, MSGPACK_PP_LIST_REVERSE_D(152, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_153(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_153(o, s, MSGPACK_PP_LIST_REVERSE_D(153, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_154(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_154(o, s, MSGPACK_PP_LIST_REVERSE_D(154, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_155(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_155(o, s, MSGPACK_PP_LIST_REVERSE_D(155, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_156(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_156(o, s, MSGPACK_PP_LIST_REVERSE_D(156, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_157(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_157(o, s, MSGPACK_PP_LIST_REVERSE_D(157, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_158(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_158(o, s, MSGPACK_PP_LIST_REVERSE_D(158, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_159(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_159(o, s, MSGPACK_PP_LIST_REVERSE_D(159, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_160(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_160(o, s, MSGPACK_PP_LIST_REVERSE_D(160, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_161(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_161(o, s, MSGPACK_PP_LIST_REVERSE_D(161, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_162(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_162(o, s, MSGPACK_PP_LIST_REVERSE_D(162, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_163(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_163(o, s, MSGPACK_PP_LIST_REVERSE_D(163, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_164(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_164(o, s, MSGPACK_PP_LIST_REVERSE_D(164, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_165(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_165(o, s, MSGPACK_PP_LIST_REVERSE_D(165, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_166(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_166(o, s, MSGPACK_PP_LIST_REVERSE_D(166, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_167(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_167(o, s, MSGPACK_PP_LIST_REVERSE_D(167, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_168(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_168(o, s, MSGPACK_PP_LIST_REVERSE_D(168, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_169(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_169(o, s, MSGPACK_PP_LIST_REVERSE_D(169, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_170(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_170(o, s, MSGPACK_PP_LIST_REVERSE_D(170, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_171(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_171(o, s, MSGPACK_PP_LIST_REVERSE_D(171, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_172(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_172(o, s, MSGPACK_PP_LIST_REVERSE_D(172, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_173(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_173(o, s, MSGPACK_PP_LIST_REVERSE_D(173, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_174(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_174(o, s, MSGPACK_PP_LIST_REVERSE_D(174, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_175(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_175(o, s, MSGPACK_PP_LIST_REVERSE_D(175, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_176(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_176(o, s, MSGPACK_PP_LIST_REVERSE_D(176, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_177(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_177(o, s, MSGPACK_PP_LIST_REVERSE_D(177, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_178(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_178(o, s, MSGPACK_PP_LIST_REVERSE_D(178, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_179(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_179(o, s, MSGPACK_PP_LIST_REVERSE_D(179, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_180(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_180(o, s, MSGPACK_PP_LIST_REVERSE_D(180, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_181(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_181(o, s, MSGPACK_PP_LIST_REVERSE_D(181, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_182(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_182(o, s, MSGPACK_PP_LIST_REVERSE_D(182, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_183(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_183(o, s, MSGPACK_PP_LIST_REVERSE_D(183, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_184(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_184(o, s, MSGPACK_PP_LIST_REVERSE_D(184, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_185(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_185(o, s, MSGPACK_PP_LIST_REVERSE_D(185, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_186(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_186(o, s, MSGPACK_PP_LIST_REVERSE_D(186, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_187(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_187(o, s, MSGPACK_PP_LIST_REVERSE_D(187, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_188(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_188(o, s, MSGPACK_PP_LIST_REVERSE_D(188, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_189(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_189(o, s, MSGPACK_PP_LIST_REVERSE_D(189, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_190(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_190(o, s, MSGPACK_PP_LIST_REVERSE_D(190, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_191(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_191(o, s, MSGPACK_PP_LIST_REVERSE_D(191, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_192(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_192(o, s, MSGPACK_PP_LIST_REVERSE_D(192, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_193(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_193(o, s, MSGPACK_PP_LIST_REVERSE_D(193, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_194(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_194(o, s, MSGPACK_PP_LIST_REVERSE_D(194, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_195(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_195(o, s, MSGPACK_PP_LIST_REVERSE_D(195, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_196(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_196(o, s, MSGPACK_PP_LIST_REVERSE_D(196, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_197(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_197(o, s, MSGPACK_PP_LIST_REVERSE_D(197, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_198(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_198(o, s, MSGPACK_PP_LIST_REVERSE_D(198, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_199(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_199(o, s, MSGPACK_PP_LIST_REVERSE_D(199, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_200(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_200(o, s, MSGPACK_PP_LIST_REVERSE_D(200, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_201(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_201(o, s, MSGPACK_PP_LIST_REVERSE_D(201, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_202(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_202(o, s, MSGPACK_PP_LIST_REVERSE_D(202, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_203(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_203(o, s, MSGPACK_PP_LIST_REVERSE_D(203, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_204(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_204(o, s, MSGPACK_PP_LIST_REVERSE_D(204, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_205(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_205(o, s, MSGPACK_PP_LIST_REVERSE_D(205, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_206(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_206(o, s, MSGPACK_PP_LIST_REVERSE_D(206, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_207(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_207(o, s, MSGPACK_PP_LIST_REVERSE_D(207, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_208(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_208(o, s, MSGPACK_PP_LIST_REVERSE_D(208, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_209(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_209(o, s, MSGPACK_PP_LIST_REVERSE_D(209, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_210(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_210(o, s, MSGPACK_PP_LIST_REVERSE_D(210, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_211(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_211(o, s, MSGPACK_PP_LIST_REVERSE_D(211, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_212(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_212(o, s, MSGPACK_PP_LIST_REVERSE_D(212, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_213(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_213(o, s, MSGPACK_PP_LIST_REVERSE_D(213, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_214(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_214(o, s, MSGPACK_PP_LIST_REVERSE_D(214, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_215(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_215(o, s, MSGPACK_PP_LIST_REVERSE_D(215, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_216(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_216(o, s, MSGPACK_PP_LIST_REVERSE_D(216, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_217(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_217(o, s, MSGPACK_PP_LIST_REVERSE_D(217, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_218(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_218(o, s, MSGPACK_PP_LIST_REVERSE_D(218, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_219(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_219(o, s, MSGPACK_PP_LIST_REVERSE_D(219, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_220(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_220(o, s, MSGPACK_PP_LIST_REVERSE_D(220, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_221(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_221(o, s, MSGPACK_PP_LIST_REVERSE_D(221, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_222(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_222(o, s, MSGPACK_PP_LIST_REVERSE_D(222, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_223(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_223(o, s, MSGPACK_PP_LIST_REVERSE_D(223, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_224(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_224(o, s, MSGPACK_PP_LIST_REVERSE_D(224, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_225(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_225(o, s, MSGPACK_PP_LIST_REVERSE_D(225, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_226(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_226(o, s, MSGPACK_PP_LIST_REVERSE_D(226, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_227(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_227(o, s, MSGPACK_PP_LIST_REVERSE_D(227, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_228(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_228(o, s, MSGPACK_PP_LIST_REVERSE_D(228, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_229(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_229(o, s, MSGPACK_PP_LIST_REVERSE_D(229, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_230(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_230(o, s, MSGPACK_PP_LIST_REVERSE_D(230, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_231(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_231(o, s, MSGPACK_PP_LIST_REVERSE_D(231, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_232(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_232(o, s, MSGPACK_PP_LIST_REVERSE_D(232, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_233(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_233(o, s, MSGPACK_PP_LIST_REVERSE_D(233, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_234(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_234(o, s, MSGPACK_PP_LIST_REVERSE_D(234, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_235(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_235(o, s, MSGPACK_PP_LIST_REVERSE_D(235, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_236(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_236(o, s, MSGPACK_PP_LIST_REVERSE_D(236, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_237(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_237(o, s, MSGPACK_PP_LIST_REVERSE_D(237, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_238(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_238(o, s, MSGPACK_PP_LIST_REVERSE_D(238, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_239(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_239(o, s, MSGPACK_PP_LIST_REVERSE_D(239, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_240(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_240(o, s, MSGPACK_PP_LIST_REVERSE_D(240, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_241(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_241(o, s, MSGPACK_PP_LIST_REVERSE_D(241, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_242(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_242(o, s, MSGPACK_PP_LIST_REVERSE_D(242, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_243(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_243(o, s, MSGPACK_PP_LIST_REVERSE_D(243, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_244(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_244(o, s, MSGPACK_PP_LIST_REVERSE_D(244, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_245(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_245(o, s, MSGPACK_PP_LIST_REVERSE_D(245, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_246(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_246(o, s, MSGPACK_PP_LIST_REVERSE_D(246, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_247(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_247(o, s, MSGPACK_PP_LIST_REVERSE_D(247, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_248(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_248(o, s, MSGPACK_PP_LIST_REVERSE_D(248, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_249(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_249(o, s, MSGPACK_PP_LIST_REVERSE_D(249, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_250(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_250(o, s, MSGPACK_PP_LIST_REVERSE_D(250, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_251(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_251(o, s, MSGPACK_PP_LIST_REVERSE_D(251, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_252(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_252(o, s, MSGPACK_PP_LIST_REVERSE_D(252, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_253(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_253(o, s, MSGPACK_PP_LIST_REVERSE_D(253, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_254(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_254(o, s, MSGPACK_PP_LIST_REVERSE_D(254, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_255(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_255(o, s, MSGPACK_PP_LIST_REVERSE_D(255, l)) +# define MSGPACK_PP_LIST_FOLD_RIGHT_256(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_256(o, s, MSGPACK_PP_LIST_REVERSE_D(256, l)) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/enum.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/enum.hpp new file mode 100644 index 000000000000..4515f07007dc --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/enum.hpp @@ -0,0 +1,41 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_ENUM_HPP +# define MSGPACK_PREPROCESSOR_LIST_ENUM_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_LIST_ENUM */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_ENUM(list) MSGPACK_PP_LIST_FOR_EACH_I(MSGPACK_PP_LIST_ENUM_O, MSGPACK_PP_NIL, list) +# else +# define MSGPACK_PP_LIST_ENUM(list) MSGPACK_PP_LIST_ENUM_I(list) +# define MSGPACK_PP_LIST_ENUM_I(list) MSGPACK_PP_LIST_FOR_EACH_I(MSGPACK_PP_LIST_ENUM_O, MSGPACK_PP_NIL, list) +# endif +# +# define MSGPACK_PP_LIST_ENUM_O(r, _, i, elem) MSGPACK_PP_COMMA_IF(i) elem +# +# /* MSGPACK_PP_LIST_ENUM_R */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_ENUM_R(r, list) MSGPACK_PP_LIST_FOR_EACH_I_R(r, MSGPACK_PP_LIST_ENUM_O, MSGPACK_PP_NIL, list) +# else +# define MSGPACK_PP_LIST_ENUM_R(r, list) MSGPACK_PP_LIST_ENUM_R_I(r, list) +# define MSGPACK_PP_LIST_ENUM_R_I(r, list) MSGPACK_PP_LIST_FOR_EACH_I_R(r, MSGPACK_PP_LIST_ENUM_O, MSGPACK_PP_NIL, list) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/filter.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/filter.hpp new file mode 100644 index 000000000000..af3e7c3538ad --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/filter.hpp @@ -0,0 +1,54 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_FILTER_HPP +# define MSGPACK_PREPROCESSOR_LIST_FILTER_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_LIST_FILTER */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FILTER(pred, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_FILTER_O, (pred, data, MSGPACK_PP_NIL), list)) +# else +# define MSGPACK_PP_LIST_FILTER(pred, data, list) MSGPACK_PP_LIST_FILTER_I(pred, data, list) +# define MSGPACK_PP_LIST_FILTER_I(pred, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_FILTER_O, (pred, data, MSGPACK_PP_NIL), list)) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FILTER_O(d, pdr, elem) MSGPACK_PP_LIST_FILTER_O_D(d, MSGPACK_PP_TUPLE_ELEM(3, 0, pdr), MSGPACK_PP_TUPLE_ELEM(3, 1, pdr), MSGPACK_PP_TUPLE_ELEM(3, 2, pdr), elem) +# else +# define MSGPACK_PP_LIST_FILTER_O(d, pdr, elem) MSGPACK_PP_LIST_FILTER_O_I(d, MSGPACK_PP_TUPLE_REM_3 pdr, elem) +# define MSGPACK_PP_LIST_FILTER_O_I(d, im, elem) MSGPACK_PP_LIST_FILTER_O_D(d, im, elem) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC() +# define MSGPACK_PP_LIST_FILTER_O_D(d, pred, data, res, elem) (pred, data, MSGPACK_PP_IF(pred(d, data, elem), (elem, res), res)) +# else +# define MSGPACK_PP_LIST_FILTER_O_D(d, pred, data, res, elem) (pred, data, MSGPACK_PP_IF(pred##(d, data, elem), (elem, res), res)) +# endif +# +# /* MSGPACK_PP_LIST_FILTER_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FILTER_D(d, pred, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_FILTER_O, (pred, data, MSGPACK_PP_NIL), list)) +# else +# define MSGPACK_PP_LIST_FILTER_D(d, pred, data, list) MSGPACK_PP_LIST_FILTER_D_I(d, pred, data, list) +# define MSGPACK_PP_LIST_FILTER_D_I(d, pred, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_FILTER_O, (pred, data, MSGPACK_PP_NIL), list)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/first_n.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/first_n.hpp new file mode 100644 index 000000000000..60b1ef162f8c --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/first_n.hpp @@ -0,0 +1,58 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_FIRST_N_HPP +# define MSGPACK_PREPROCESSOR_LIST_FIRST_N_HPP +# +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_LIST_FIRST_N */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FIRST_N(count, list) MSGPACK_PP_LIST_REVERSE(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_WHILE(MSGPACK_PP_LIST_FIRST_N_P, MSGPACK_PP_LIST_FIRST_N_O, (count, list, MSGPACK_PP_NIL)))) +# else +# define MSGPACK_PP_LIST_FIRST_N(count, list) MSGPACK_PP_LIST_FIRST_N_I(count, list) +# define MSGPACK_PP_LIST_FIRST_N_I(count, list) MSGPACK_PP_LIST_REVERSE(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_WHILE(MSGPACK_PP_LIST_FIRST_N_P, MSGPACK_PP_LIST_FIRST_N_O, (count, list, MSGPACK_PP_NIL)))) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FIRST_N_P(d, data) MSGPACK_PP_TUPLE_ELEM(3, 0, data) +# else +# define MSGPACK_PP_LIST_FIRST_N_P(d, data) MSGPACK_PP_LIST_FIRST_N_P_I data +# define MSGPACK_PP_LIST_FIRST_N_P_I(c, l, nl) c +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_LIST_FIRST_N_O(d, data) MSGPACK_PP_LIST_FIRST_N_O_D data +# else +# define MSGPACK_PP_LIST_FIRST_N_O(d, data) MSGPACK_PP_LIST_FIRST_N_O_D(MSGPACK_PP_TUPLE_ELEM(3, 0, data), MSGPACK_PP_TUPLE_ELEM(3, 1, data), MSGPACK_PP_TUPLE_ELEM(3, 2, data)) +# endif +# +# define MSGPACK_PP_LIST_FIRST_N_O_D(c, l, nl) (MSGPACK_PP_DEC(c), MSGPACK_PP_LIST_REST(l), (MSGPACK_PP_LIST_FIRST(l), nl)) +# +# /* MSGPACK_PP_LIST_FIRST_N_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FIRST_N_D(d, count, list) MSGPACK_PP_LIST_REVERSE_D(d, MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_LIST_FIRST_N_P, MSGPACK_PP_LIST_FIRST_N_O, (count, list, MSGPACK_PP_NIL)))) +# else +# define MSGPACK_PP_LIST_FIRST_N_D(d, count, list) MSGPACK_PP_LIST_FIRST_N_D_I(d, count, list) +# define MSGPACK_PP_LIST_FIRST_N_D_I(d, count, list) MSGPACK_PP_LIST_REVERSE_D(d, MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_LIST_FIRST_N_P, MSGPACK_PP_LIST_FIRST_N_O, (count, list, MSGPACK_PP_NIL)))) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/fold_left.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/fold_left.hpp new file mode 100644 index 000000000000..2cd0c05185cb --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/fold_left.hpp @@ -0,0 +1,303 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_FOLD_LEFT_HPP +# define MSGPACK_PREPROCESSOR_LIST_FOLD_LEFT_HPP +# +# include +# include +# include +# include +# +# /* MSGPACK_PP_LIST_FOLD_LEFT */ +# +# if 0 +# define MSGPACK_PP_LIST_FOLD_LEFT(op, state, list) +# endif +# +# define MSGPACK_PP_LIST_FOLD_LEFT MSGPACK_PP_CAT(MSGPACK_PP_LIST_FOLD_LEFT_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_WHILE_P, 256)) +# +# define MSGPACK_PP_LIST_FOLD_LEFT_257(o, s, l) MSGPACK_PP_ERROR(0x0004) +# +# define MSGPACK_PP_LIST_FOLD_LEFT_D(d, o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_ ## d(o, s, l) +# define MSGPACK_PP_LIST_FOLD_LEFT_2ND MSGPACK_PP_LIST_FOLD_LEFT +# define MSGPACK_PP_LIST_FOLD_LEFT_2ND_D MSGPACK_PP_LIST_FOLD_LEFT_D +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# include +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC() +# include +# else +# include +# endif +# +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_NIL 1 +# +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_1(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_2(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_3(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_4(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_5(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_6(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_7(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_8(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_9(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_10(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_11(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_12(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_13(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_14(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_15(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_16(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_17(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_18(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_19(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_20(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_21(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_22(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_23(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_24(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_25(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_26(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_27(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_28(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_29(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_30(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_31(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_32(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_33(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_34(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_35(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_36(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_37(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_38(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_39(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_40(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_41(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_42(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_43(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_44(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_45(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_46(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_47(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_48(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_49(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_50(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_51(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_52(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_53(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_54(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_55(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_56(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_57(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_58(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_59(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_60(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_61(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_62(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_63(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_64(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_65(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_66(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_67(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_68(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_69(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_70(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_71(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_72(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_73(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_74(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_75(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_76(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_77(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_78(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_79(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_80(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_81(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_82(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_83(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_84(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_85(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_86(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_87(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_88(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_89(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_90(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_91(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_92(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_93(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_94(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_95(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_96(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_97(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_98(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_99(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_100(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_101(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_102(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_103(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_104(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_105(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_106(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_107(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_108(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_109(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_110(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_111(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_112(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_113(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_114(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_115(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_116(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_117(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_118(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_119(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_120(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_121(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_122(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_123(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_124(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_125(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_126(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_127(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_128(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_129(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_130(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_131(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_132(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_133(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_134(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_135(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_136(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_137(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_138(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_139(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_140(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_141(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_142(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_143(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_144(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_145(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_146(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_147(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_148(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_149(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_150(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_151(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_152(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_153(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_154(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_155(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_156(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_157(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_158(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_159(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_160(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_161(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_162(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_163(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_164(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_165(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_166(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_167(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_168(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_169(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_170(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_171(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_172(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_173(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_174(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_175(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_176(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_177(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_178(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_179(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_180(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_181(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_182(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_183(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_184(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_185(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_186(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_187(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_188(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_189(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_190(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_191(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_192(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_193(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_194(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_195(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_196(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_197(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_198(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_199(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_200(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_201(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_202(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_203(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_204(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_205(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_206(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_207(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_208(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_209(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_210(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_211(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_212(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_213(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_214(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_215(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_216(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_217(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_218(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_219(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_220(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_221(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_222(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_223(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_224(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_225(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_226(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_227(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_228(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_229(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_230(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_231(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_232(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_233(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_234(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_235(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_236(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_237(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_238(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_239(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_240(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_241(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_242(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_243(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_244(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_245(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_246(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_247(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_248(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_249(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_250(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_251(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_252(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_253(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_254(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_255(o, s, l) 0 +# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_256(o, s, l) 0 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/fold_right.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/fold_right.hpp new file mode 100644 index 000000000000..4595ce718bb9 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/fold_right.hpp @@ -0,0 +1,40 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_FOLD_RIGHT_HPP +# define MSGPACK_PREPROCESSOR_LIST_FOLD_RIGHT_HPP +# +# include +# include +# include +# include +# +# if 0 +# define MSGPACK_PP_LIST_FOLD_RIGHT(op, state, list) +# endif +# +# define MSGPACK_PP_LIST_FOLD_RIGHT MSGPACK_PP_CAT(MSGPACK_PP_LIST_FOLD_RIGHT_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_WHILE_P, 256)) +# +# define MSGPACK_PP_LIST_FOLD_RIGHT_257(o, s, l) MSGPACK_PP_ERROR(0x0004) +# +# define MSGPACK_PP_LIST_FOLD_RIGHT_D(d, o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(o, s, l) +# define MSGPACK_PP_LIST_FOLD_RIGHT_2ND MSGPACK_PP_LIST_FOLD_RIGHT +# define MSGPACK_PP_LIST_FOLD_RIGHT_2ND_D MSGPACK_PP_LIST_FOLD_RIGHT_D +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# include +# else +# include +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/for_each.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/for_each.hpp new file mode 100644 index 000000000000..d8b707ba8c58 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/for_each.hpp @@ -0,0 +1,49 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_FOR_EACH_HPP +# define MSGPACK_PREPROCESSOR_LIST_FOR_EACH_HPP +# +# include +# include +# include +# include +# +# /* MSGPACK_PP_LIST_FOR_EACH */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FOR_EACH(macro, data, list) MSGPACK_PP_LIST_FOR_EACH_I(MSGPACK_PP_LIST_FOR_EACH_O, (macro, data), list) +# else +# define MSGPACK_PP_LIST_FOR_EACH(macro, data, list) MSGPACK_PP_LIST_FOR_EACH_X(macro, data, list) +# define MSGPACK_PP_LIST_FOR_EACH_X(macro, data, list) MSGPACK_PP_LIST_FOR_EACH_I(MSGPACK_PP_LIST_FOR_EACH_O, (macro, data), list) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FOR_EACH_O(r, md, i, elem) MSGPACK_PP_LIST_FOR_EACH_O_D(r, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md), elem) +# else +# define MSGPACK_PP_LIST_FOR_EACH_O(r, md, i, elem) MSGPACK_PP_LIST_FOR_EACH_O_I(r, MSGPACK_PP_TUPLE_REM_2 md, elem) +# define MSGPACK_PP_LIST_FOR_EACH_O_I(r, im, elem) MSGPACK_PP_LIST_FOR_EACH_O_D(r, im, elem) +# endif +# +# define MSGPACK_PP_LIST_FOR_EACH_O_D(r, m, d, elem) m(r, d, elem) +# +# /* MSGPACK_PP_LIST_FOR_EACH_R */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FOR_EACH_R(r, macro, data, list) MSGPACK_PP_LIST_FOR_EACH_I_R(r, MSGPACK_PP_LIST_FOR_EACH_O, (macro, data), list) +# else +# define MSGPACK_PP_LIST_FOR_EACH_R(r, macro, data, list) MSGPACK_PP_LIST_FOR_EACH_R_X(r, macro, data, list) +# define MSGPACK_PP_LIST_FOR_EACH_R_X(r, macro, data, list) MSGPACK_PP_LIST_FOR_EACH_I_R(r, MSGPACK_PP_LIST_FOR_EACH_O, (macro, data), list) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/for_each_i.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/for_each_i.hpp new file mode 100644 index 000000000000..6a5b7339e365 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/for_each_i.hpp @@ -0,0 +1,65 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_LIST_FOR_EACH_I_HPP +# define MSGPACK_PREPROCESSOR_LIST_LIST_FOR_EACH_I_HPP +# +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_LIST_FOR_EACH_I */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() && ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_LIST_FOR_EACH_I(macro, data, list) MSGPACK_PP_FOR((macro, data, list, 0), MSGPACK_PP_LIST_FOR_EACH_I_P, MSGPACK_PP_LIST_FOR_EACH_I_O, MSGPACK_PP_LIST_FOR_EACH_I_M) +# else +# define MSGPACK_PP_LIST_FOR_EACH_I(macro, data, list) MSGPACK_PP_LIST_FOR_EACH_I_I(macro, data, list) +# define MSGPACK_PP_LIST_FOR_EACH_I_I(macro, data, list) MSGPACK_PP_FOR((macro, data, list, 0), MSGPACK_PP_LIST_FOR_EACH_I_P, MSGPACK_PP_LIST_FOR_EACH_I_O, MSGPACK_PP_LIST_FOR_EACH_I_M) +# endif +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_LIST_FOR_EACH_I_P(r, x) MSGPACK_PP_LIST_FOR_EACH_I_P_D x +# define MSGPACK_PP_LIST_FOR_EACH_I_P_D(m, d, l, i) MSGPACK_PP_LIST_IS_CONS(l) +# else +# define MSGPACK_PP_LIST_FOR_EACH_I_P(r, x) MSGPACK_PP_LIST_IS_CONS(MSGPACK_PP_TUPLE_ELEM(4, 2, x)) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_LIST_FOR_EACH_I_O(r, x) MSGPACK_PP_LIST_FOR_EACH_I_O_D x +# define MSGPACK_PP_LIST_FOR_EACH_I_O_D(m, d, l, i) (m, d, MSGPACK_PP_LIST_REST(l), MSGPACK_PP_INC(i)) +# else +# define MSGPACK_PP_LIST_FOR_EACH_I_O(r, x) (MSGPACK_PP_TUPLE_ELEM(4, 0, x), MSGPACK_PP_TUPLE_ELEM(4, 1, x), MSGPACK_PP_LIST_REST(MSGPACK_PP_TUPLE_ELEM(4, 2, x)), MSGPACK_PP_INC(MSGPACK_PP_TUPLE_ELEM(4, 3, x))) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FOR_EACH_I_M(r, x) MSGPACK_PP_LIST_FOR_EACH_I_M_D(r, MSGPACK_PP_TUPLE_ELEM(4, 0, x), MSGPACK_PP_TUPLE_ELEM(4, 1, x), MSGPACK_PP_TUPLE_ELEM(4, 2, x), MSGPACK_PP_TUPLE_ELEM(4, 3, x)) +# else +# define MSGPACK_PP_LIST_FOR_EACH_I_M(r, x) MSGPACK_PP_LIST_FOR_EACH_I_M_I(r, MSGPACK_PP_TUPLE_REM_4 x) +# define MSGPACK_PP_LIST_FOR_EACH_I_M_I(r, x_e) MSGPACK_PP_LIST_FOR_EACH_I_M_D(r, x_e) +# endif +# +# define MSGPACK_PP_LIST_FOR_EACH_I_M_D(r, m, d, l, i) m(r, d, i, MSGPACK_PP_LIST_FIRST(l)) +# +# /* MSGPACK_PP_LIST_FOR_EACH_I_R */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FOR_EACH_I_R(r, macro, data, list) MSGPACK_PP_FOR_ ## r((macro, data, list, 0), MSGPACK_PP_LIST_FOR_EACH_I_P, MSGPACK_PP_LIST_FOR_EACH_I_O, MSGPACK_PP_LIST_FOR_EACH_I_M) +# else +# define MSGPACK_PP_LIST_FOR_EACH_I_R(r, macro, data, list) MSGPACK_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list) +# define MSGPACK_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list) MSGPACK_PP_FOR_ ## r((macro, data, list, 0), MSGPACK_PP_LIST_FOR_EACH_I_P, MSGPACK_PP_LIST_FOR_EACH_I_O, MSGPACK_PP_LIST_FOR_EACH_I_M) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/for_each_product.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/for_each_product.hpp new file mode 100644 index 000000000000..62c4722a8c56 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/for_each_product.hpp @@ -0,0 +1,141 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_FOR_EACH_PRODUCT_HPP +# define MSGPACK_PREPROCESSOR_LIST_FOR_EACH_PRODUCT_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_LIST_FOR_EACH_PRODUCT */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT(macro, size, tuple) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E(MSGPACK_PP_FOR, macro, size, MSGPACK_PP_TUPLE_TO_LIST(size, tuple)) +# else +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT(macro, size, tuple) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_Q(macro, size, tuple) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_Q(macro, size, tuple) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E(MSGPACK_PP_FOR, macro, size, MSGPACK_PP_TUPLE_TO_LIST(size, tuple)) +# endif +# +# /* MSGPACK_PP_LIST_FOR_EACH_PRODUCT_R */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_R(r, macro, size, tuple) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E(MSGPACK_PP_FOR_ ## r, macro, size, MSGPACK_PP_TUPLE_TO_LIST(size, tuple)) +# else +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_R(r, macro, size, tuple) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_R_Q(r, macro, size, tuple) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_R_Q(r, macro, size, tuple) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E(MSGPACK_PP_FOR_ ## r, macro, size, MSGPACK_PP_TUPLE_TO_LIST(size, tuple)) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E(impl, macro, size, lists) impl((MSGPACK_PP_LIST_FIRST(lists), MSGPACK_PP_LIST_REST(lists), MSGPACK_PP_NIL, macro, size), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_0) +# else +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E(impl, macro, size, lists) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E_D(impl, macro, size, lists) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E_D(impl, macro, size, lists) impl((MSGPACK_PP_LIST_FIRST(lists), MSGPACK_PP_LIST_REST(lists), MSGPACK_PP_NIL, macro, size), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_0) +# endif +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P_I data +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P_I(a, b, res, macro, size) MSGPACK_PP_LIST_IS_CONS(a) +# else +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P(r, data) MSGPACK_PP_LIST_IS_CONS(MSGPACK_PP_TUPLE_ELEM(5, 0, data)) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O_I data +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O_I(a, b, res, macro, size) (MSGPACK_PP_LIST_REST(a), b, res, macro, size) +# else +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O(r, data) (MSGPACK_PP_LIST_REST(MSGPACK_PP_TUPLE_ELEM(5, 0, data)), MSGPACK_PP_TUPLE_ELEM(5, 1, data), MSGPACK_PP_TUPLE_ELEM(5, 2, data), MSGPACK_PP_TUPLE_ELEM(5, 3, data), MSGPACK_PP_TUPLE_ELEM(5, 4, data)) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_I(r, MSGPACK_PP_TUPLE_ELEM(5, 0, data), MSGPACK_PP_TUPLE_ELEM(5, 1, data), MSGPACK_PP_TUPLE_ELEM(5, 2, data), MSGPACK_PP_TUPLE_ELEM(5, 3, data), MSGPACK_PP_TUPLE_ELEM(5, 4, data)) +# else +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_D(r, MSGPACK_PP_TUPLE_REM_5 data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_D(r, data_e) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_I(r, data_e) +# endif +# +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_I(r, a, b, res, macro, size) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_II(r, macro, MSGPACK_PP_LIST_TO_TUPLE_R(r, (MSGPACK_PP_LIST_FIRST(a), res)), size) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_II(r, macro, args, size) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_III(r, macro, args, size) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_III(r, macro, args, size) macro(r, MSGPACK_PP_TUPLE_REVERSE(size, args)) +# +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, i) MSGPACK_PP_IF(MSGPACK_PP_LIST_IS_CONS(MSGPACK_PP_TUPLE_ELEM(5, 1, data)), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_ ## i, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H_I data +# else +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H_I(MSGPACK_PP_TUPLE_ELEM(5, 0, data), MSGPACK_PP_TUPLE_ELEM(5, 1, data), MSGPACK_PP_TUPLE_ELEM(5, 2, data), MSGPACK_PP_TUPLE_ELEM(5, 3, data), MSGPACK_PP_TUPLE_ELEM(5, 4, data)) +# endif +# +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H_I(a, b, res, macro, size) (MSGPACK_PP_LIST_FIRST(b), MSGPACK_PP_LIST_REST(b), (MSGPACK_PP_LIST_FIRST(a), res), macro, size) +# +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_0(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 0)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_1(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 1)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_2(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 2)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_3(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 3)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_4(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 4)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_5(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 5)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_6(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 6)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_7(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 7)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_8(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 8)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_9(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 9)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_10(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 10)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_11(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 11)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_12(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 12)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_13(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 13)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_14(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 14)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_15(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 15)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_16(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 16)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_17(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 17)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_18(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 18)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_19(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 19)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_20(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 20)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_21(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 21)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_22(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 22)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_23(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 23)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_24(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 24)(r, data) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_25(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 25)(r, data) +# +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_0(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_1) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_1(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_2) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_2(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_3) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_3(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_4) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_4(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_5) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_5(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_6) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_6(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_7) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_7(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_8) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_8(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_9) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_9(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_10) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_10(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_11) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_11(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_12) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_12(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_13) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_13(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_14) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_14(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_15) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_15(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_16) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_16(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_17) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_17(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_18) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_18(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_19) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_19(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_20) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_20(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_21) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_21(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_22) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_22(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_23) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_23(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_24) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_24(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_25) +# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_25(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_26) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/rest_n.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/rest_n.hpp new file mode 100644 index 000000000000..0f60ac23ce97 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/rest_n.hpp @@ -0,0 +1,55 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_REST_N_HPP +# define MSGPACK_PREPROCESSOR_LIST_REST_N_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_LIST_REST_N */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_REST_N(count, list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_LIST_REST_N_P, MSGPACK_PP_LIST_REST_N_O, (list, count))) +# else +# define MSGPACK_PP_LIST_REST_N(count, list) MSGPACK_PP_LIST_REST_N_I(count, list) +# define MSGPACK_PP_LIST_REST_N_I(count, list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_LIST_REST_N_P, MSGPACK_PP_LIST_REST_N_O, (list, count))) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_REST_N_P(d, lc) MSGPACK_PP_TUPLE_ELEM(2, 1, lc) +# else +# define MSGPACK_PP_LIST_REST_N_P(d, lc) MSGPACK_PP_LIST_REST_N_P_I lc +# define MSGPACK_PP_LIST_REST_N_P_I(list, count) count +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_REST_N_O(d, lc) (MSGPACK_PP_LIST_REST(MSGPACK_PP_TUPLE_ELEM(2, 0, lc)), MSGPACK_PP_DEC(MSGPACK_PP_TUPLE_ELEM(2, 1, lc))) +# else +# define MSGPACK_PP_LIST_REST_N_O(d, lc) MSGPACK_PP_LIST_REST_N_O_I lc +# define MSGPACK_PP_LIST_REST_N_O_I(list, count) (MSGPACK_PP_LIST_REST(list), MSGPACK_PP_DEC(count)) +# endif +# +# /* MSGPACK_PP_LIST_REST_N_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_REST_N_D(d, count, list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_LIST_REST_N_P, MSGPACK_PP_LIST_REST_N_O, (list, count))) +# else +# define MSGPACK_PP_LIST_REST_N_D(d, count, list) MSGPACK_PP_LIST_REST_N_D_I(d, count, list) +# define MSGPACK_PP_LIST_REST_N_D_I(d, count, list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_LIST_REST_N_P, MSGPACK_PP_LIST_REST_N_O, (list, count))) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/reverse.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/reverse.hpp new file mode 100644 index 000000000000..96083109fe2c --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/reverse.hpp @@ -0,0 +1,40 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_REVERSE_HPP +# define MSGPACK_PREPROCESSOR_LIST_REVERSE_HPP +# +# include +# include +# +# /* MSGPACK_PP_LIST_REVERSE */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_REVERSE(list) MSGPACK_PP_LIST_FOLD_LEFT(MSGPACK_PP_LIST_REVERSE_O, MSGPACK_PP_NIL, list) +# else +# define MSGPACK_PP_LIST_REVERSE(list) MSGPACK_PP_LIST_REVERSE_I(list) +# define MSGPACK_PP_LIST_REVERSE_I(list) MSGPACK_PP_LIST_FOLD_LEFT(MSGPACK_PP_LIST_REVERSE_O, MSGPACK_PP_NIL, list) +# endif +# +# define MSGPACK_PP_LIST_REVERSE_O(d, s, x) (x, s) +# +# /* MSGPACK_PP_LIST_REVERSE_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_REVERSE_D(d, list) MSGPACK_PP_LIST_FOLD_LEFT_ ## d(MSGPACK_PP_LIST_REVERSE_O, MSGPACK_PP_NIL, list) +# else +# define MSGPACK_PP_LIST_REVERSE_D(d, list) MSGPACK_PP_LIST_REVERSE_D_I(d, list) +# define MSGPACK_PP_LIST_REVERSE_D_I(d, list) MSGPACK_PP_LIST_FOLD_LEFT_ ## d(MSGPACK_PP_LIST_REVERSE_O, MSGPACK_PP_NIL, list) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/size.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/size.hpp new file mode 100644 index 000000000000..b3ac7f3dd809 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/size.hpp @@ -0,0 +1,58 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_SIZE_HPP +# define MSGPACK_PREPROCESSOR_LIST_SIZE_HPP +# +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_LIST_SIZE */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_SIZE(list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_LIST_SIZE_P, MSGPACK_PP_LIST_SIZE_O, (0, list))) +# else +# define MSGPACK_PP_LIST_SIZE(list) MSGPACK_PP_LIST_SIZE_I(list) +# define MSGPACK_PP_LIST_SIZE_I(list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_LIST_SIZE_P, MSGPACK_PP_LIST_SIZE_O, (0, list))) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_SIZE_P(d, rl) MSGPACK_PP_LIST_IS_CONS(MSGPACK_PP_TUPLE_ELEM(2, 1, rl)) +# else +# define MSGPACK_PP_LIST_SIZE_P(d, rl) MSGPACK_PP_LIST_SIZE_P_I(MSGPACK_PP_TUPLE_REM_2 rl) +# define MSGPACK_PP_LIST_SIZE_P_I(im) MSGPACK_PP_LIST_SIZE_P_II(im) +# define MSGPACK_PP_LIST_SIZE_P_II(r, l) MSGPACK_PP_LIST_IS_CONS(l) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_SIZE_O(d, rl) (MSGPACK_PP_INC(MSGPACK_PP_TUPLE_ELEM(2, 0, rl)), MSGPACK_PP_LIST_REST(MSGPACK_PP_TUPLE_ELEM(2, 1, rl))) +# else +# define MSGPACK_PP_LIST_SIZE_O(d, rl) MSGPACK_PP_LIST_SIZE_O_I(MSGPACK_PP_TUPLE_REM_2 rl) +# define MSGPACK_PP_LIST_SIZE_O_I(im) MSGPACK_PP_LIST_SIZE_O_II(im) +# define MSGPACK_PP_LIST_SIZE_O_II(r, l) (MSGPACK_PP_INC(r), MSGPACK_PP_LIST_REST(l)) +# endif +# +# /* MSGPACK_PP_LIST_SIZE_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_SIZE_D(d, list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_LIST_SIZE_P, MSGPACK_PP_LIST_SIZE_O, (0, list))) +# else +# define MSGPACK_PP_LIST_SIZE_D(d, list) MSGPACK_PP_LIST_SIZE_D_I(d, list) +# define MSGPACK_PP_LIST_SIZE_D_I(d, list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_LIST_SIZE_P, MSGPACK_PP_LIST_SIZE_O, (0, list))) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/to_array.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/to_array.hpp new file mode 100644 index 000000000000..2c86c654b0fb --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/to_array.hpp @@ -0,0 +1,155 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2011. +# * (C) Copyright Edward Diener 2011,2014. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_TO_ARRAY_HPP +# define MSGPACK_PREPROCESSOR_LIST_TO_ARRAY_HPP +# +# include +# include +# include +# include +# include +# include +# include +# if MSGPACK_PP_VARIADICS && MSGPACK_PP_VARIADICS_MSVC && (_MSC_VER <= 1400) +# include +# endif +# +# /* MSGPACK_PP_LIST_TO_ARRAY */ +# +# if MSGPACK_PP_VARIADICS && MSGPACK_PP_VARIADICS_MSVC && (_MSC_VER <= 1400) +# define MSGPACK_PP_LIST_TO_ARRAY(list) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_LIST_IS_NIL(list), \ + MSGPACK_PP_LIST_TO_ARRAY_VC8ORLESS_EMPTY, \ + MSGPACK_PP_LIST_TO_ARRAY_VC8ORLESS_DO \ + ) \ + (list) \ +/**/ +# define MSGPACK_PP_LIST_TO_ARRAY_VC8ORLESS_EMPTY(list) (0,()) +# define MSGPACK_PP_LIST_TO_ARRAY_VC8ORLESS_DO(list) MSGPACK_PP_LIST_TO_ARRAY_I(MSGPACK_PP_WHILE, list) +# else +# define MSGPACK_PP_LIST_TO_ARRAY(list) MSGPACK_PP_LIST_TO_ARRAY_I(MSGPACK_PP_WHILE, list) +# endif + +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_LIST_TO_ARRAY_I(w, list) \ + MSGPACK_PP_LIST_TO_ARRAY_II(((MSGPACK_PP_TUPLE_REM_CTOR( \ + 3, \ + w(MSGPACK_PP_LIST_TO_ARRAY_P, MSGPACK_PP_LIST_TO_ARRAY_O, (list, 1, (~))) \ + )))) \ + /**/ +# define MSGPACK_PP_LIST_TO_ARRAY_II(p) MSGPACK_PP_LIST_TO_ARRAY_II_B(p) +# define MSGPACK_PP_LIST_TO_ARRAY_II_B(p) MSGPACK_PP_LIST_TO_ARRAY_II_C ## p +# define MSGPACK_PP_LIST_TO_ARRAY_II_C(p) MSGPACK_PP_LIST_TO_ARRAY_III p +# else +# define MSGPACK_PP_LIST_TO_ARRAY_I(w, list) \ + MSGPACK_PP_LIST_TO_ARRAY_II(MSGPACK_PP_TUPLE_REM_CTOR( \ + 3, \ + w(MSGPACK_PP_LIST_TO_ARRAY_P, MSGPACK_PP_LIST_TO_ARRAY_O, (list, 1, (~))) \ + )) \ + /**/ +# define MSGPACK_PP_LIST_TO_ARRAY_II(im) MSGPACK_PP_LIST_TO_ARRAY_III(im) +# endif +# if MSGPACK_PP_VARIADICS +# define MSGPACK_PP_LIST_TO_ARRAY_III(list, size, tuple) (MSGPACK_PP_DEC(size), MSGPACK_PP_LIST_TO_ARRAY_IV tuple) +# define MSGPACK_PP_LIST_TO_ARRAY_IV(_, ...) (__VA_ARGS__) +# else +# define MSGPACK_PP_LIST_TO_ARRAY_III(list, size, tuple) (MSGPACK_PP_DEC(size), MSGPACK_PP_LIST_TO_ARRAY_IV_ ## size tuple) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_2(_, e0) (e0) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_3(_, e0, e1) (e0, e1) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_4(_, e0, e1, e2) (e0, e1, e2) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_5(_, e0, e1, e2, e3) (e0, e1, e2, e3) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_6(_, e0, e1, e2, e3, e4) (e0, e1, e2, e3, e4) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_7(_, e0, e1, e2, e3, e4, e5) (e0, e1, e2, e3, e4, e5) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_8(_, e0, e1, e2, e3, e4, e5, e6) (e0, e1, e2, e3, e4, e5, e6) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_9(_, e0, e1, e2, e3, e4, e5, e6, e7) (e0, e1, e2, e3, e4, e5, e6, e7) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_10(_, e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, e1, e2, e3, e4, e5, e6, e7, e8) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_11(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_12(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_13(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_14(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_15(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_16(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_17(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_18(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_19(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_20(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_21(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_22(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_23(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_24(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_25(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_26(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_27(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_28(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_29(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_30(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_31(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_32(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_33(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_34(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_35(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_36(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_37(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_38(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_39(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_40(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_41(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_42(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_43(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_44(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_45(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_46(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_47(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_48(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_49(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_50(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_51(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_52(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_53(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_54(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_55(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_56(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_57(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_58(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_59(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_60(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_61(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_62(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_63(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) +# define MSGPACK_PP_LIST_TO_ARRAY_IV_64(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) +# endif +# define MSGPACK_PP_LIST_TO_ARRAY_P(d, state) MSGPACK_PP_LIST_IS_CONS(MSGPACK_PP_TUPLE_ELEM(3, 0, state)) +# define MSGPACK_PP_LIST_TO_ARRAY_O(d, state) MSGPACK_PP_LIST_TO_ARRAY_O_I state +# define MSGPACK_PP_LIST_TO_ARRAY_O_I(list, size, tuple) (MSGPACK_PP_LIST_REST(list), MSGPACK_PP_INC(size), (MSGPACK_PP_TUPLE_REM(size) tuple, MSGPACK_PP_LIST_FIRST(list))) +# +# /* MSGPACK_PP_LIST_TO_ARRAY_D */ +# +# if MSGPACK_PP_VARIADICS && MSGPACK_PP_VARIADICS_MSVC && (_MSC_VER <= 1400) +# define MSGPACK_PP_LIST_TO_ARRAY_D(d, list) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_LIST_IS_NIL(list), \ + MSGPACK_PP_LIST_TO_ARRAY_D_VC8ORLESS_EMPTY, \ + MSGPACK_PP_LIST_TO_ARRAY_D_VC8ORLESS_DO \ + ) \ + (d, list) \ +/**/ +# define MSGPACK_PP_LIST_TO_ARRAY_D_VC8ORLESS_EMPTY(d, list) (0,()) +# define MSGPACK_PP_LIST_TO_ARRAY_D_VC8ORLESS_DO(d, list) MSGPACK_PP_LIST_TO_ARRAY_I(MSGPACK_PP_WHILE_ ## d, list) +# else +# define MSGPACK_PP_LIST_TO_ARRAY_D(d, list) MSGPACK_PP_LIST_TO_ARRAY_I(MSGPACK_PP_WHILE_ ## d, list) +# endif +# +# endif /* MSGPACK_PREPROCESSOR_LIST_TO_ARRAY_HPP */ diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/to_seq.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/to_seq.hpp new file mode 100644 index 000000000000..a200eef7443d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/to_seq.hpp @@ -0,0 +1,32 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* Revised by Paul Mensonides (2011) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_TO_SEQ_HPP +# define MSGPACK_PREPROCESSOR_LIST_TO_SEQ_HPP +# +# include +# +# /* MSGPACK_PP_LIST_TO_SEQ */ +# +# define MSGPACK_PP_LIST_TO_SEQ(list) \ + MSGPACK_PP_LIST_FOR_EACH(MSGPACK_PP_LIST_TO_SEQ_MACRO, ~, list) \ + /**/ +# define MSGPACK_PP_LIST_TO_SEQ_MACRO(r, data, elem) (elem) +# +# /* MSGPACK_PP_LIST_TO_SEQ_R */ +# +# define MSGPACK_PP_LIST_TO_SEQ_R(r, list) \ + MSGPACK_PP_LIST_FOR_EACH_R(r, MSGPACK_PP_LIST_TO_SEQ_MACRO, ~, list) \ + /**/ +# +# endif /* MSGPACK_PREPROCESSOR_LIST_TO_SEQ_HPP */ diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/to_tuple.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/to_tuple.hpp new file mode 100644 index 000000000000..7e33fa0eafa3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/to_tuple.hpp @@ -0,0 +1,61 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_TO_TUPLE_HPP +# define MSGPACK_PREPROCESSOR_LIST_TO_TUPLE_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_LIST_TO_TUPLE */ +# +# define MSGPACK_PP_LIST_TO_TUPLE(list) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_LIST_IS_NIL(list), \ + MSGPACK_PP_LIST_TO_TUPLE_EMPTY, \ + MSGPACK_PP_LIST_TO_TUPLE_DO \ + ) \ + (list) \ +/**/ +# define MSGPACK_PP_LIST_TO_TUPLE_EMPTY(list) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_TO_TUPLE_DO(list) (MSGPACK_PP_LIST_ENUM(list)) +# else +# define MSGPACK_PP_LIST_TO_TUPLE_DO(list) MSGPACK_PP_LIST_TO_TUPLE_I(list) +# define MSGPACK_PP_LIST_TO_TUPLE_I(list) (MSGPACK_PP_LIST_ENUM(list)) +# endif +# +# /* MSGPACK_PP_LIST_TO_TUPLE_R */ +# +# define MSGPACK_PP_LIST_TO_TUPLE_R(r, list) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_LIST_IS_NIL(list), \ + MSGPACK_PP_LIST_TO_TUPLE_R_EMPTY, \ + MSGPACK_PP_LIST_TO_TUPLE_R_DO \ + ) \ + (r, list) \ +/**/ +# define MSGPACK_PP_LIST_TO_TUPLE_R_EMPTY(r,list) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_TO_TUPLE_R_DO(r, list) (MSGPACK_PP_LIST_ENUM_R(r, list)) +# else +# define MSGPACK_PP_LIST_TO_TUPLE_R_DO(r, list) MSGPACK_PP_LIST_TO_TUPLE_R_I(r, list) +# define MSGPACK_PP_LIST_TO_TUPLE_R_I(r, list) (MSGPACK_PP_LIST_ENUM_R(r, list)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/list/transform.hpp b/third_party/msgpack/include/msgpack/preprocessor/list/transform.hpp new file mode 100644 index 000000000000..b398bd05ee92 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/list/transform.hpp @@ -0,0 +1,49 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LIST_TRANSFORM_HPP +# define MSGPACK_PREPROCESSOR_LIST_TRANSFORM_HPP +# +# include +# include +# include +# include +# +# /* MSGPACK_PP_LIST_TRANSFORM */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_TRANSFORM(op, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_TRANSFORM_O, (op, data, MSGPACK_PP_NIL), list)) +# else +# define MSGPACK_PP_LIST_TRANSFORM(op, data, list) MSGPACK_PP_LIST_TRANSFORM_I(op, data, list) +# define MSGPACK_PP_LIST_TRANSFORM_I(op, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_TRANSFORM_O, (op, data, MSGPACK_PP_NIL), list)) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_TRANSFORM_O(d, odr, elem) MSGPACK_PP_LIST_TRANSFORM_O_D(d, MSGPACK_PP_TUPLE_ELEM(3, 0, odr), MSGPACK_PP_TUPLE_ELEM(3, 1, odr), MSGPACK_PP_TUPLE_ELEM(3, 2, odr), elem) +# else +# define MSGPACK_PP_LIST_TRANSFORM_O(d, odr, elem) MSGPACK_PP_LIST_TRANSFORM_O_I(d, MSGPACK_PP_TUPLE_REM_3 odr, elem) +# define MSGPACK_PP_LIST_TRANSFORM_O_I(d, im, elem) MSGPACK_PP_LIST_TRANSFORM_O_D(d, im, elem) +# endif +# +# define MSGPACK_PP_LIST_TRANSFORM_O_D(d, op, data, res, elem) (op, data, (op(d, data, elem), res)) +# +# /* MSGPACK_PP_LIST_TRANSFORM_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LIST_TRANSFORM_D(d, op, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_TRANSFORM_O, (op, data, MSGPACK_PP_NIL), list)) +# else +# define MSGPACK_PP_LIST_TRANSFORM_D(d, op, data, list) MSGPACK_PP_LIST_TRANSFORM_D_I(d, op, data, list) +# define MSGPACK_PP_LIST_TRANSFORM_D_I(d, op, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_TRANSFORM_O, (op, data, MSGPACK_PP_NIL), list)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/logical.hpp b/third_party/msgpack/include/msgpack/preprocessor/logical.hpp new file mode 100644 index 000000000000..c4aef7b609ea --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/logical.hpp @@ -0,0 +1,29 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LOGICAL_HPP +# define MSGPACK_PREPROCESSOR_LOGICAL_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/logical/and.hpp b/third_party/msgpack/include/msgpack/preprocessor/logical/and.hpp new file mode 100644 index 000000000000..b6552459a44d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/logical/and.hpp @@ -0,0 +1,30 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LOGICAL_AND_HPP +# define MSGPACK_PREPROCESSOR_LOGICAL_AND_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_AND */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_AND(p, q) MSGPACK_PP_BITAND(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q)) +# else +# define MSGPACK_PP_AND(p, q) MSGPACK_PP_AND_I(p, q) +# define MSGPACK_PP_AND_I(p, q) MSGPACK_PP_BITAND(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/logical/bitand.hpp b/third_party/msgpack/include/msgpack/preprocessor/logical/bitand.hpp new file mode 100644 index 000000000000..6326c5263925 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/logical/bitand.hpp @@ -0,0 +1,38 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LOGICAL_BITAND_HPP +# define MSGPACK_PREPROCESSOR_LOGICAL_BITAND_HPP +# +# include +# +# /* MSGPACK_PP_BITAND */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_BITAND(x, y) MSGPACK_PP_BITAND_I(x, y) +# else +# define MSGPACK_PP_BITAND(x, y) MSGPACK_PP_BITAND_OO((x, y)) +# define MSGPACK_PP_BITAND_OO(par) MSGPACK_PP_BITAND_I ## par +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_BITAND_I(x, y) MSGPACK_PP_BITAND_ ## x ## y +# else +# define MSGPACK_PP_BITAND_I(x, y) MSGPACK_PP_BITAND_ID(MSGPACK_PP_BITAND_ ## x ## y) +# define MSGPACK_PP_BITAND_ID(res) res +# endif +# +# define MSGPACK_PP_BITAND_00 0 +# define MSGPACK_PP_BITAND_01 0 +# define MSGPACK_PP_BITAND_10 0 +# define MSGPACK_PP_BITAND_11 1 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/logical/bitnor.hpp b/third_party/msgpack/include/msgpack/preprocessor/logical/bitnor.hpp new file mode 100644 index 000000000000..e8882ac456c3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/logical/bitnor.hpp @@ -0,0 +1,38 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LOGICAL_BITNOR_HPP +# define MSGPACK_PREPROCESSOR_LOGICAL_BITNOR_HPP +# +# include +# +# /* MSGPACK_PP_BITNOR */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_BITNOR(x, y) MSGPACK_PP_BITNOR_I(x, y) +# else +# define MSGPACK_PP_BITNOR(x, y) MSGPACK_PP_BITNOR_OO((x, y)) +# define MSGPACK_PP_BITNOR_OO(par) MSGPACK_PP_BITNOR_I ## par +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_BITNOR_I(x, y) MSGPACK_PP_BITNOR_ ## x ## y +# else +# define MSGPACK_PP_BITNOR_I(x, y) MSGPACK_PP_BITNOR_ID(MSGPACK_PP_BITNOR_ ## x ## y) +# define MSGPACK_PP_BITNOR_ID(id) id +# endif +# +# define MSGPACK_PP_BITNOR_00 1 +# define MSGPACK_PP_BITNOR_01 0 +# define MSGPACK_PP_BITNOR_10 0 +# define MSGPACK_PP_BITNOR_11 0 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/logical/bitor.hpp b/third_party/msgpack/include/msgpack/preprocessor/logical/bitor.hpp new file mode 100644 index 000000000000..0a0525d8419c --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/logical/bitor.hpp @@ -0,0 +1,38 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LOGICAL_BITOR_HPP +# define MSGPACK_PREPROCESSOR_LOGICAL_BITOR_HPP +# +# include +# +# /* MSGPACK_PP_BITOR */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_BITOR(x, y) MSGPACK_PP_BITOR_I(x, y) +# else +# define MSGPACK_PP_BITOR(x, y) MSGPACK_PP_BITOR_OO((x, y)) +# define MSGPACK_PP_BITOR_OO(par) MSGPACK_PP_BITOR_I ## par +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_BITOR_I(x, y) MSGPACK_PP_BITOR_ ## x ## y +# else +# define MSGPACK_PP_BITOR_I(x, y) MSGPACK_PP_BITOR_ID(MSGPACK_PP_BITOR_ ## x ## y) +# define MSGPACK_PP_BITOR_ID(id) id +# endif +# +# define MSGPACK_PP_BITOR_00 0 +# define MSGPACK_PP_BITOR_01 1 +# define MSGPACK_PP_BITOR_10 1 +# define MSGPACK_PP_BITOR_11 1 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/logical/bitxor.hpp b/third_party/msgpack/include/msgpack/preprocessor/logical/bitxor.hpp new file mode 100644 index 000000000000..20a749322cec --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/logical/bitxor.hpp @@ -0,0 +1,38 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LOGICAL_BITXOR_HPP +# define MSGPACK_PREPROCESSOR_LOGICAL_BITXOR_HPP +# +# include +# +# /* MSGPACK_PP_BITXOR */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_BITXOR(x, y) MSGPACK_PP_BITXOR_I(x, y) +# else +# define MSGPACK_PP_BITXOR(x, y) MSGPACK_PP_BITXOR_OO((x, y)) +# define MSGPACK_PP_BITXOR_OO(par) MSGPACK_PP_BITXOR_I ## par +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_BITXOR_I(x, y) MSGPACK_PP_BITXOR_ ## x ## y +# else +# define MSGPACK_PP_BITXOR_I(x, y) MSGPACK_PP_BITXOR_ID(MSGPACK_PP_BITXOR_ ## x ## y) +# define MSGPACK_PP_BITXOR_ID(id) id +# endif +# +# define MSGPACK_PP_BITXOR_00 0 +# define MSGPACK_PP_BITXOR_01 1 +# define MSGPACK_PP_BITXOR_10 1 +# define MSGPACK_PP_BITXOR_11 0 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/logical/bool.hpp b/third_party/msgpack/include/msgpack/preprocessor/logical/bool.hpp new file mode 100644 index 000000000000..2ba0f3a87186 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/logical/bool.hpp @@ -0,0 +1,288 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LOGICAL_BOOL_HPP +# define MSGPACK_PREPROCESSOR_LOGICAL_BOOL_HPP +# +# include +# +# /* MSGPACK_PP_BOOL */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_BOOL(x) MSGPACK_PP_BOOL_I(x) +# else +# define MSGPACK_PP_BOOL(x) MSGPACK_PP_BOOL_OO((x)) +# define MSGPACK_PP_BOOL_OO(par) MSGPACK_PP_BOOL_I ## par +# endif +# +# define MSGPACK_PP_BOOL_I(x) MSGPACK_PP_BOOL_ ## x +# +# define MSGPACK_PP_BOOL_0 0 +# define MSGPACK_PP_BOOL_1 1 +# define MSGPACK_PP_BOOL_2 1 +# define MSGPACK_PP_BOOL_3 1 +# define MSGPACK_PP_BOOL_4 1 +# define MSGPACK_PP_BOOL_5 1 +# define MSGPACK_PP_BOOL_6 1 +# define MSGPACK_PP_BOOL_7 1 +# define MSGPACK_PP_BOOL_8 1 +# define MSGPACK_PP_BOOL_9 1 +# define MSGPACK_PP_BOOL_10 1 +# define MSGPACK_PP_BOOL_11 1 +# define MSGPACK_PP_BOOL_12 1 +# define MSGPACK_PP_BOOL_13 1 +# define MSGPACK_PP_BOOL_14 1 +# define MSGPACK_PP_BOOL_15 1 +# define MSGPACK_PP_BOOL_16 1 +# define MSGPACK_PP_BOOL_17 1 +# define MSGPACK_PP_BOOL_18 1 +# define MSGPACK_PP_BOOL_19 1 +# define MSGPACK_PP_BOOL_20 1 +# define MSGPACK_PP_BOOL_21 1 +# define MSGPACK_PP_BOOL_22 1 +# define MSGPACK_PP_BOOL_23 1 +# define MSGPACK_PP_BOOL_24 1 +# define MSGPACK_PP_BOOL_25 1 +# define MSGPACK_PP_BOOL_26 1 +# define MSGPACK_PP_BOOL_27 1 +# define MSGPACK_PP_BOOL_28 1 +# define MSGPACK_PP_BOOL_29 1 +# define MSGPACK_PP_BOOL_30 1 +# define MSGPACK_PP_BOOL_31 1 +# define MSGPACK_PP_BOOL_32 1 +# define MSGPACK_PP_BOOL_33 1 +# define MSGPACK_PP_BOOL_34 1 +# define MSGPACK_PP_BOOL_35 1 +# define MSGPACK_PP_BOOL_36 1 +# define MSGPACK_PP_BOOL_37 1 +# define MSGPACK_PP_BOOL_38 1 +# define MSGPACK_PP_BOOL_39 1 +# define MSGPACK_PP_BOOL_40 1 +# define MSGPACK_PP_BOOL_41 1 +# define MSGPACK_PP_BOOL_42 1 +# define MSGPACK_PP_BOOL_43 1 +# define MSGPACK_PP_BOOL_44 1 +# define MSGPACK_PP_BOOL_45 1 +# define MSGPACK_PP_BOOL_46 1 +# define MSGPACK_PP_BOOL_47 1 +# define MSGPACK_PP_BOOL_48 1 +# define MSGPACK_PP_BOOL_49 1 +# define MSGPACK_PP_BOOL_50 1 +# define MSGPACK_PP_BOOL_51 1 +# define MSGPACK_PP_BOOL_52 1 +# define MSGPACK_PP_BOOL_53 1 +# define MSGPACK_PP_BOOL_54 1 +# define MSGPACK_PP_BOOL_55 1 +# define MSGPACK_PP_BOOL_56 1 +# define MSGPACK_PP_BOOL_57 1 +# define MSGPACK_PP_BOOL_58 1 +# define MSGPACK_PP_BOOL_59 1 +# define MSGPACK_PP_BOOL_60 1 +# define MSGPACK_PP_BOOL_61 1 +# define MSGPACK_PP_BOOL_62 1 +# define MSGPACK_PP_BOOL_63 1 +# define MSGPACK_PP_BOOL_64 1 +# define MSGPACK_PP_BOOL_65 1 +# define MSGPACK_PP_BOOL_66 1 +# define MSGPACK_PP_BOOL_67 1 +# define MSGPACK_PP_BOOL_68 1 +# define MSGPACK_PP_BOOL_69 1 +# define MSGPACK_PP_BOOL_70 1 +# define MSGPACK_PP_BOOL_71 1 +# define MSGPACK_PP_BOOL_72 1 +# define MSGPACK_PP_BOOL_73 1 +# define MSGPACK_PP_BOOL_74 1 +# define MSGPACK_PP_BOOL_75 1 +# define MSGPACK_PP_BOOL_76 1 +# define MSGPACK_PP_BOOL_77 1 +# define MSGPACK_PP_BOOL_78 1 +# define MSGPACK_PP_BOOL_79 1 +# define MSGPACK_PP_BOOL_80 1 +# define MSGPACK_PP_BOOL_81 1 +# define MSGPACK_PP_BOOL_82 1 +# define MSGPACK_PP_BOOL_83 1 +# define MSGPACK_PP_BOOL_84 1 +# define MSGPACK_PP_BOOL_85 1 +# define MSGPACK_PP_BOOL_86 1 +# define MSGPACK_PP_BOOL_87 1 +# define MSGPACK_PP_BOOL_88 1 +# define MSGPACK_PP_BOOL_89 1 +# define MSGPACK_PP_BOOL_90 1 +# define MSGPACK_PP_BOOL_91 1 +# define MSGPACK_PP_BOOL_92 1 +# define MSGPACK_PP_BOOL_93 1 +# define MSGPACK_PP_BOOL_94 1 +# define MSGPACK_PP_BOOL_95 1 +# define MSGPACK_PP_BOOL_96 1 +# define MSGPACK_PP_BOOL_97 1 +# define MSGPACK_PP_BOOL_98 1 +# define MSGPACK_PP_BOOL_99 1 +# define MSGPACK_PP_BOOL_100 1 +# define MSGPACK_PP_BOOL_101 1 +# define MSGPACK_PP_BOOL_102 1 +# define MSGPACK_PP_BOOL_103 1 +# define MSGPACK_PP_BOOL_104 1 +# define MSGPACK_PP_BOOL_105 1 +# define MSGPACK_PP_BOOL_106 1 +# define MSGPACK_PP_BOOL_107 1 +# define MSGPACK_PP_BOOL_108 1 +# define MSGPACK_PP_BOOL_109 1 +# define MSGPACK_PP_BOOL_110 1 +# define MSGPACK_PP_BOOL_111 1 +# define MSGPACK_PP_BOOL_112 1 +# define MSGPACK_PP_BOOL_113 1 +# define MSGPACK_PP_BOOL_114 1 +# define MSGPACK_PP_BOOL_115 1 +# define MSGPACK_PP_BOOL_116 1 +# define MSGPACK_PP_BOOL_117 1 +# define MSGPACK_PP_BOOL_118 1 +# define MSGPACK_PP_BOOL_119 1 +# define MSGPACK_PP_BOOL_120 1 +# define MSGPACK_PP_BOOL_121 1 +# define MSGPACK_PP_BOOL_122 1 +# define MSGPACK_PP_BOOL_123 1 +# define MSGPACK_PP_BOOL_124 1 +# define MSGPACK_PP_BOOL_125 1 +# define MSGPACK_PP_BOOL_126 1 +# define MSGPACK_PP_BOOL_127 1 +# define MSGPACK_PP_BOOL_128 1 +# define MSGPACK_PP_BOOL_129 1 +# define MSGPACK_PP_BOOL_130 1 +# define MSGPACK_PP_BOOL_131 1 +# define MSGPACK_PP_BOOL_132 1 +# define MSGPACK_PP_BOOL_133 1 +# define MSGPACK_PP_BOOL_134 1 +# define MSGPACK_PP_BOOL_135 1 +# define MSGPACK_PP_BOOL_136 1 +# define MSGPACK_PP_BOOL_137 1 +# define MSGPACK_PP_BOOL_138 1 +# define MSGPACK_PP_BOOL_139 1 +# define MSGPACK_PP_BOOL_140 1 +# define MSGPACK_PP_BOOL_141 1 +# define MSGPACK_PP_BOOL_142 1 +# define MSGPACK_PP_BOOL_143 1 +# define MSGPACK_PP_BOOL_144 1 +# define MSGPACK_PP_BOOL_145 1 +# define MSGPACK_PP_BOOL_146 1 +# define MSGPACK_PP_BOOL_147 1 +# define MSGPACK_PP_BOOL_148 1 +# define MSGPACK_PP_BOOL_149 1 +# define MSGPACK_PP_BOOL_150 1 +# define MSGPACK_PP_BOOL_151 1 +# define MSGPACK_PP_BOOL_152 1 +# define MSGPACK_PP_BOOL_153 1 +# define MSGPACK_PP_BOOL_154 1 +# define MSGPACK_PP_BOOL_155 1 +# define MSGPACK_PP_BOOL_156 1 +# define MSGPACK_PP_BOOL_157 1 +# define MSGPACK_PP_BOOL_158 1 +# define MSGPACK_PP_BOOL_159 1 +# define MSGPACK_PP_BOOL_160 1 +# define MSGPACK_PP_BOOL_161 1 +# define MSGPACK_PP_BOOL_162 1 +# define MSGPACK_PP_BOOL_163 1 +# define MSGPACK_PP_BOOL_164 1 +# define MSGPACK_PP_BOOL_165 1 +# define MSGPACK_PP_BOOL_166 1 +# define MSGPACK_PP_BOOL_167 1 +# define MSGPACK_PP_BOOL_168 1 +# define MSGPACK_PP_BOOL_169 1 +# define MSGPACK_PP_BOOL_170 1 +# define MSGPACK_PP_BOOL_171 1 +# define MSGPACK_PP_BOOL_172 1 +# define MSGPACK_PP_BOOL_173 1 +# define MSGPACK_PP_BOOL_174 1 +# define MSGPACK_PP_BOOL_175 1 +# define MSGPACK_PP_BOOL_176 1 +# define MSGPACK_PP_BOOL_177 1 +# define MSGPACK_PP_BOOL_178 1 +# define MSGPACK_PP_BOOL_179 1 +# define MSGPACK_PP_BOOL_180 1 +# define MSGPACK_PP_BOOL_181 1 +# define MSGPACK_PP_BOOL_182 1 +# define MSGPACK_PP_BOOL_183 1 +# define MSGPACK_PP_BOOL_184 1 +# define MSGPACK_PP_BOOL_185 1 +# define MSGPACK_PP_BOOL_186 1 +# define MSGPACK_PP_BOOL_187 1 +# define MSGPACK_PP_BOOL_188 1 +# define MSGPACK_PP_BOOL_189 1 +# define MSGPACK_PP_BOOL_190 1 +# define MSGPACK_PP_BOOL_191 1 +# define MSGPACK_PP_BOOL_192 1 +# define MSGPACK_PP_BOOL_193 1 +# define MSGPACK_PP_BOOL_194 1 +# define MSGPACK_PP_BOOL_195 1 +# define MSGPACK_PP_BOOL_196 1 +# define MSGPACK_PP_BOOL_197 1 +# define MSGPACK_PP_BOOL_198 1 +# define MSGPACK_PP_BOOL_199 1 +# define MSGPACK_PP_BOOL_200 1 +# define MSGPACK_PP_BOOL_201 1 +# define MSGPACK_PP_BOOL_202 1 +# define MSGPACK_PP_BOOL_203 1 +# define MSGPACK_PP_BOOL_204 1 +# define MSGPACK_PP_BOOL_205 1 +# define MSGPACK_PP_BOOL_206 1 +# define MSGPACK_PP_BOOL_207 1 +# define MSGPACK_PP_BOOL_208 1 +# define MSGPACK_PP_BOOL_209 1 +# define MSGPACK_PP_BOOL_210 1 +# define MSGPACK_PP_BOOL_211 1 +# define MSGPACK_PP_BOOL_212 1 +# define MSGPACK_PP_BOOL_213 1 +# define MSGPACK_PP_BOOL_214 1 +# define MSGPACK_PP_BOOL_215 1 +# define MSGPACK_PP_BOOL_216 1 +# define MSGPACK_PP_BOOL_217 1 +# define MSGPACK_PP_BOOL_218 1 +# define MSGPACK_PP_BOOL_219 1 +# define MSGPACK_PP_BOOL_220 1 +# define MSGPACK_PP_BOOL_221 1 +# define MSGPACK_PP_BOOL_222 1 +# define MSGPACK_PP_BOOL_223 1 +# define MSGPACK_PP_BOOL_224 1 +# define MSGPACK_PP_BOOL_225 1 +# define MSGPACK_PP_BOOL_226 1 +# define MSGPACK_PP_BOOL_227 1 +# define MSGPACK_PP_BOOL_228 1 +# define MSGPACK_PP_BOOL_229 1 +# define MSGPACK_PP_BOOL_230 1 +# define MSGPACK_PP_BOOL_231 1 +# define MSGPACK_PP_BOOL_232 1 +# define MSGPACK_PP_BOOL_233 1 +# define MSGPACK_PP_BOOL_234 1 +# define MSGPACK_PP_BOOL_235 1 +# define MSGPACK_PP_BOOL_236 1 +# define MSGPACK_PP_BOOL_237 1 +# define MSGPACK_PP_BOOL_238 1 +# define MSGPACK_PP_BOOL_239 1 +# define MSGPACK_PP_BOOL_240 1 +# define MSGPACK_PP_BOOL_241 1 +# define MSGPACK_PP_BOOL_242 1 +# define MSGPACK_PP_BOOL_243 1 +# define MSGPACK_PP_BOOL_244 1 +# define MSGPACK_PP_BOOL_245 1 +# define MSGPACK_PP_BOOL_246 1 +# define MSGPACK_PP_BOOL_247 1 +# define MSGPACK_PP_BOOL_248 1 +# define MSGPACK_PP_BOOL_249 1 +# define MSGPACK_PP_BOOL_250 1 +# define MSGPACK_PP_BOOL_251 1 +# define MSGPACK_PP_BOOL_252 1 +# define MSGPACK_PP_BOOL_253 1 +# define MSGPACK_PP_BOOL_254 1 +# define MSGPACK_PP_BOOL_255 1 +# define MSGPACK_PP_BOOL_256 1 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/logical/compl.hpp b/third_party/msgpack/include/msgpack/preprocessor/logical/compl.hpp new file mode 100644 index 000000000000..227d0d00f01c --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/logical/compl.hpp @@ -0,0 +1,36 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LOGICAL_COMPL_HPP +# define MSGPACK_PREPROCESSOR_LOGICAL_COMPL_HPP +# +# include +# +# /* MSGPACK_PP_COMPL */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_COMPL(x) MSGPACK_PP_COMPL_I(x) +# else +# define MSGPACK_PP_COMPL(x) MSGPACK_PP_COMPL_OO((x)) +# define MSGPACK_PP_COMPL_OO(par) MSGPACK_PP_COMPL_I ## par +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_COMPL_I(x) MSGPACK_PP_COMPL_ ## x +# else +# define MSGPACK_PP_COMPL_I(x) MSGPACK_PP_COMPL_ID(MSGPACK_PP_COMPL_ ## x) +# define MSGPACK_PP_COMPL_ID(id) id +# endif +# +# define MSGPACK_PP_COMPL_0 1 +# define MSGPACK_PP_COMPL_1 0 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/logical/nor.hpp b/third_party/msgpack/include/msgpack/preprocessor/logical/nor.hpp new file mode 100644 index 000000000000..36dc2491d121 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/logical/nor.hpp @@ -0,0 +1,30 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LOGICAL_NOR_HPP +# define MSGPACK_PREPROCESSOR_LOGICAL_NOR_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_NOR */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_NOR(p, q) MSGPACK_PP_BITNOR(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q)) +# else +# define MSGPACK_PP_NOR(p, q) MSGPACK_PP_NOR_I(p, q) +# define MSGPACK_PP_NOR_I(p, q) MSGPACK_PP_BITNOR(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/logical/not.hpp b/third_party/msgpack/include/msgpack/preprocessor/logical/not.hpp new file mode 100644 index 000000000000..0ae1bf78b454 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/logical/not.hpp @@ -0,0 +1,30 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LOGICAL_NOT_HPP +# define MSGPACK_PREPROCESSOR_LOGICAL_NOT_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_NOT */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_NOT(x) MSGPACK_PP_COMPL(MSGPACK_PP_BOOL(x)) +# else +# define MSGPACK_PP_NOT(x) MSGPACK_PP_NOT_I(x) +# define MSGPACK_PP_NOT_I(x) MSGPACK_PP_COMPL(MSGPACK_PP_BOOL(x)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/logical/or.hpp b/third_party/msgpack/include/msgpack/preprocessor/logical/or.hpp new file mode 100644 index 000000000000..3cb14731cadd --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/logical/or.hpp @@ -0,0 +1,30 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LOGICAL_OR_HPP +# define MSGPACK_PREPROCESSOR_LOGICAL_OR_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_OR */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_OR(p, q) MSGPACK_PP_BITOR(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q)) +# else +# define MSGPACK_PP_OR(p, q) MSGPACK_PP_OR_I(p, q) +# define MSGPACK_PP_OR_I(p, q) MSGPACK_PP_BITOR(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/logical/xor.hpp b/third_party/msgpack/include/msgpack/preprocessor/logical/xor.hpp new file mode 100644 index 000000000000..1bd565d43a3e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/logical/xor.hpp @@ -0,0 +1,30 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_LOGICAL_XOR_HPP +# define MSGPACK_PREPROCESSOR_LOGICAL_XOR_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_XOR */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_XOR(p, q) MSGPACK_PP_BITXOR(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q)) +# else +# define MSGPACK_PP_XOR(p, q) MSGPACK_PP_XOR_I(p, q) +# define MSGPACK_PP_XOR_I(p, q) MSGPACK_PP_BITXOR(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/max.hpp b/third_party/msgpack/include/msgpack/preprocessor/max.hpp new file mode 100644 index 000000000000..4c3e92451982 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/max.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_MAX_HPP +# define MSGPACK_PREPROCESSOR_MAX_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/min.hpp b/third_party/msgpack/include/msgpack/preprocessor/min.hpp new file mode 100644 index 000000000000..2068ae4eab07 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/min.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_MIN_HPP +# define MSGPACK_PREPROCESSOR_MIN_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/punctuation.hpp b/third_party/msgpack/include/msgpack/preprocessor/punctuation.hpp new file mode 100644 index 000000000000..42734663d4bc --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/punctuation.hpp @@ -0,0 +1,22 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_PUNCTUATION_HPP +# define MSGPACK_PREPROCESSOR_PUNCTUATION_HPP +# +# include +# include +# include +# include +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/punctuation/comma.hpp b/third_party/msgpack/include/msgpack/preprocessor/punctuation/comma.hpp new file mode 100644 index 000000000000..0e1de6f44695 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/punctuation/comma.hpp @@ -0,0 +1,21 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_PUNCTUATION_COMMA_HPP +# define MSGPACK_PREPROCESSOR_PUNCTUATION_COMMA_HPP +# +# /* MSGPACK_PP_COMMA */ +# +# define MSGPACK_PP_COMMA() , +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/punctuation/comma_if.hpp b/third_party/msgpack/include/msgpack/preprocessor/punctuation/comma_if.hpp new file mode 100644 index 000000000000..6e9e9f65fb3c --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/punctuation/comma_if.hpp @@ -0,0 +1,31 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP +# define MSGPACK_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP +# +# include +# include +# include +# include +# +# /* MSGPACK_PP_COMMA_IF */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_COMMA_IF(cond) MSGPACK_PP_IF(cond, MSGPACK_PP_COMMA, MSGPACK_PP_EMPTY)() +# else +# define MSGPACK_PP_COMMA_IF(cond) MSGPACK_PP_COMMA_IF_I(cond) +# define MSGPACK_PP_COMMA_IF_I(cond) MSGPACK_PP_IF(cond, MSGPACK_PP_COMMA, MSGPACK_PP_EMPTY)() +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/punctuation/detail/is_begin_parens.hpp b/third_party/msgpack/include/msgpack/preprocessor/punctuation/detail/is_begin_parens.hpp new file mode 100644 index 000000000000..4da35cba0b92 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/punctuation/detail/is_begin_parens.hpp @@ -0,0 +1,48 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2014. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +#ifndef MSGPACK_PREPROCESSOR_DETAIL_IS_BEGIN_PARENS_HPP +#define MSGPACK_PREPROCESSOR_DETAIL_IS_BEGIN_PARENS_HPP + +#if MSGPACK_PP_VARIADICS_MSVC + +#include + +#define MSGPACK_PP_DETAIL_VD_IBP_CAT(a, b) MSGPACK_PP_DETAIL_VD_IBP_CAT_I(a, b) +#define MSGPACK_PP_DETAIL_VD_IBP_CAT_I(a, b) MSGPACK_PP_DETAIL_VD_IBP_CAT_II(a ## b) +#define MSGPACK_PP_DETAIL_VD_IBP_CAT_II(res) res + +#define MSGPACK_PP_DETAIL_IBP_SPLIT(i, ...) \ + MSGPACK_PP_DETAIL_VD_IBP_CAT(MSGPACK_PP_DETAIL_IBP_PRIMITIVE_CAT(MSGPACK_PP_DETAIL_IBP_SPLIT_,i)(__VA_ARGS__),MSGPACK_PP_EMPTY()) \ +/**/ + +#define MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_C(...) 1 1 + +#else + +#define MSGPACK_PP_DETAIL_IBP_SPLIT(i, ...) \ + MSGPACK_PP_DETAIL_IBP_PRIMITIVE_CAT(MSGPACK_PP_DETAIL_IBP_SPLIT_,i)(__VA_ARGS__) \ +/**/ + +#define MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_C(...) 1 + +#endif /* MSGPACK_PP_VARIADICS_MSVC */ + +#define MSGPACK_PP_DETAIL_IBP_SPLIT_0(a, ...) a +#define MSGPACK_PP_DETAIL_IBP_SPLIT_1(a, ...) __VA_ARGS__ + +#define MSGPACK_PP_DETAIL_IBP_CAT(a, ...) MSGPACK_PP_DETAIL_IBP_PRIMITIVE_CAT(a,__VA_ARGS__) +#define MSGPACK_PP_DETAIL_IBP_PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__ + +#define MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_R_1 1, +#define MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_R_MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_C 0, + +#endif /* MSGPACK_PREPROCESSOR_DETAIL_IS_BEGIN_PARENS_HPP */ diff --git a/third_party/msgpack/include/msgpack/preprocessor/punctuation/is_begin_parens.hpp b/third_party/msgpack/include/msgpack/preprocessor/punctuation/is_begin_parens.hpp new file mode 100644 index 000000000000..50010e21e3b8 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/punctuation/is_begin_parens.hpp @@ -0,0 +1,51 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2014. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_IS_BEGIN_PARENS_HPP +# define MSGPACK_PREPROCESSOR_IS_BEGIN_PARENS_HPP + +# include + +#if MSGPACK_PP_VARIADICS + +#include + +#if MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400 + +#define MSGPACK_PP_IS_BEGIN_PARENS(param) \ + MSGPACK_PP_DETAIL_IBP_SPLIT \ + ( \ + 0, \ + MSGPACK_PP_DETAIL_IBP_CAT \ + ( \ + MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_R_, \ + MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_C param \ + ) \ + ) \ +/**/ + +#else + +#define MSGPACK_PP_IS_BEGIN_PARENS(...) \ + MSGPACK_PP_DETAIL_IBP_SPLIT \ + ( \ + 0, \ + MSGPACK_PP_DETAIL_IBP_CAT \ + ( \ + MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_R_, \ + MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_C __VA_ARGS__ \ + ) \ + ) \ +/**/ + +#endif /* MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400 */ +#endif /* MSGPACK_PP_VARIADICS */ +#endif /* MSGPACK_PREPROCESSOR_IS_BEGIN_PARENS_HPP */ diff --git a/third_party/msgpack/include/msgpack/preprocessor/punctuation/paren.hpp b/third_party/msgpack/include/msgpack/preprocessor/punctuation/paren.hpp new file mode 100644 index 000000000000..b2cf00edd90a --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/punctuation/paren.hpp @@ -0,0 +1,23 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_PUNCTUATION_PAREN_HPP +# define MSGPACK_PREPROCESSOR_PUNCTUATION_PAREN_HPP +# +# /* MSGPACK_PP_LPAREN */ +# +# define MSGPACK_PP_LPAREN() ( +# +# /* MSGPACK_PP_RPAREN */ +# +# define MSGPACK_PP_RPAREN() ) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/punctuation/paren_if.hpp b/third_party/msgpack/include/msgpack/preprocessor/punctuation/paren_if.hpp new file mode 100644 index 000000000000..d842ca7e3e04 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/punctuation/paren_if.hpp @@ -0,0 +1,38 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_PUNCTUATION_PAREN_IF_HPP +# define MSGPACK_PREPROCESSOR_PUNCTUATION_PAREN_IF_HPP +# +# include +# include +# include +# include +# +# /* MSGPACK_PP_LPAREN_IF */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_LPAREN_IF(cond) MSGPACK_PP_IF(cond, MSGPACK_PP_LPAREN, MSGPACK_PP_EMPTY)() +# else +# define MSGPACK_PP_LPAREN_IF(cond) MSGPACK_PP_LPAREN_IF_I(cond) +# define MSGPACK_PP_LPAREN_IF_I(cond) MSGPACK_PP_IF(cond, MSGPACK_PP_LPAREN, MSGPACK_PP_EMPTY)() +# endif +# +# /* MSGPACK_PP_RPAREN_IF */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_RPAREN_IF(cond) MSGPACK_PP_IF(cond, MSGPACK_PP_RPAREN, MSGPACK_PP_EMPTY)() +# else +# define MSGPACK_PP_RPAREN_IF(cond) MSGPACK_PP_RPAREN_IF_I(cond) +# define MSGPACK_PP_RPAREN_IF_I(cond) MSGPACK_PP_IF(cond, MSGPACK_PP_RPAREN, MSGPACK_PP_EMPTY)() +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/punctuation/remove_parens.hpp b/third_party/msgpack/include/msgpack/preprocessor/punctuation/remove_parens.hpp new file mode 100644 index 000000000000..3f12f56fe8c3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/punctuation/remove_parens.hpp @@ -0,0 +1,39 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2014. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +#ifndef MSGPACK_PREPROCESSOR_REMOVE_PARENS_HPP +#define MSGPACK_PREPROCESSOR_REMOVE_PARENS_HPP + +#include + +#if MSGPACK_PP_VARIADICS + +#include +#include +#include +#include + +#define MSGPACK_PP_REMOVE_PARENS(param) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_IS_BEGIN_PARENS(param), \ + MSGPACK_PP_REMOVE_PARENS_DO, \ + MSGPACK_PP_IDENTITY \ + ) \ + (param)() \ +/**/ + +#define MSGPACK_PP_REMOVE_PARENS_DO(param) \ + MSGPACK_PP_IDENTITY(MSGPACK_PP_TUPLE_ENUM(param)) \ +/**/ + +#endif /* MSGPACK_PP_VARIADICS */ +#endif /* MSGPACK_PREPROCESSOR_REMOVE_PARENS_HPP */ diff --git a/third_party/msgpack/include/msgpack/preprocessor/repeat.hpp b/third_party/msgpack/include/msgpack/preprocessor/repeat.hpp new file mode 100644 index 000000000000..7bf639e055c5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repeat.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPEAT_HPP +# define MSGPACK_PREPROCESSOR_REPEAT_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repeat_2nd.hpp b/third_party/msgpack/include/msgpack/preprocessor/repeat_2nd.hpp new file mode 100644 index 000000000000..53c7f5da480a --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repeat_2nd.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPEAT_2ND_HPP +# define MSGPACK_PREPROCESSOR_REPEAT_2ND_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repeat_3rd.hpp b/third_party/msgpack/include/msgpack/preprocessor/repeat_3rd.hpp new file mode 100644 index 000000000000..70e8a5d179a5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repeat_3rd.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPEAT_3RD_HPP +# define MSGPACK_PREPROCESSOR_REPEAT_3RD_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repeat_from_to.hpp b/third_party/msgpack/include/msgpack/preprocessor/repeat_from_to.hpp new file mode 100644 index 000000000000..b52f8297c14e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repeat_from_to.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPEAT_FROM_TO_HPP +# define MSGPACK_PREPROCESSOR_REPEAT_FROM_TO_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repeat_from_to_2nd.hpp b/third_party/msgpack/include/msgpack/preprocessor/repeat_from_to_2nd.hpp new file mode 100644 index 000000000000..834f6b0998fd --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repeat_from_to_2nd.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPEAT_FROM_TO_2ND_HPP +# define MSGPACK_PREPROCESSOR_REPEAT_FROM_TO_2ND_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repeat_from_to_3rd.hpp b/third_party/msgpack/include/msgpack/preprocessor/repeat_from_to_3rd.hpp new file mode 100644 index 000000000000..899113c3687b --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repeat_from_to_3rd.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPEAT_FROM_TO_3RD_HPP +# define MSGPACK_PREPROCESSOR_REPEAT_FROM_TO_3RD_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition.hpp new file mode 100644 index 000000000000..f8c82a7498d9 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition.hpp @@ -0,0 +1,32 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/deduce_r.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/deduce_r.hpp new file mode 100644 index 000000000000..b314b0df8116 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/deduce_r.hpp @@ -0,0 +1,22 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_DEDUCE_R_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_DEDUCE_R_HPP +# +# include +# include +# +# /* MSGPACK_PP_DEDUCE_R */ +# +# define MSGPACK_PP_DEDUCE_R() MSGPACK_PP_AUTO_REC(MSGPACK_PP_FOR_P, 256) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/deduce_z.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/deduce_z.hpp new file mode 100644 index 000000000000..5023e31ab455 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/deduce_z.hpp @@ -0,0 +1,22 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_DEDUCE_Z_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_DEDUCE_Z_HPP +# +# include +# include +# +# /* MSGPACK_PP_DEDUCE_Z */ +# +# define MSGPACK_PP_DEDUCE_Z() MSGPACK_PP_AUTO_REC(MSGPACK_PP_REPEAT_P, 4) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/detail/dmc/for.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/detail/dmc/for.hpp new file mode 100644 index 000000000000..630f55cbb17e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/detail/dmc/for.hpp @@ -0,0 +1,536 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP +# +# include +# include +# include +# include +# +# define MSGPACK_PP_FOR_1(s, p, o, m) MSGPACK_PP_FOR_1_C(MSGPACK_PP_BOOL(p##(2, s)), s, p, o, m) +# define MSGPACK_PP_FOR_2(s, p, o, m) MSGPACK_PP_FOR_2_C(MSGPACK_PP_BOOL(p##(3, s)), s, p, o, m) +# define MSGPACK_PP_FOR_3(s, p, o, m) MSGPACK_PP_FOR_3_C(MSGPACK_PP_BOOL(p##(4, s)), s, p, o, m) +# define MSGPACK_PP_FOR_4(s, p, o, m) MSGPACK_PP_FOR_4_C(MSGPACK_PP_BOOL(p##(5, s)), s, p, o, m) +# define MSGPACK_PP_FOR_5(s, p, o, m) MSGPACK_PP_FOR_5_C(MSGPACK_PP_BOOL(p##(6, s)), s, p, o, m) +# define MSGPACK_PP_FOR_6(s, p, o, m) MSGPACK_PP_FOR_6_C(MSGPACK_PP_BOOL(p##(7, s)), s, p, o, m) +# define MSGPACK_PP_FOR_7(s, p, o, m) MSGPACK_PP_FOR_7_C(MSGPACK_PP_BOOL(p##(8, s)), s, p, o, m) +# define MSGPACK_PP_FOR_8(s, p, o, m) MSGPACK_PP_FOR_8_C(MSGPACK_PP_BOOL(p##(9, s)), s, p, o, m) +# define MSGPACK_PP_FOR_9(s, p, o, m) MSGPACK_PP_FOR_9_C(MSGPACK_PP_BOOL(p##(10, s)), s, p, o, m) +# define MSGPACK_PP_FOR_10(s, p, o, m) MSGPACK_PP_FOR_10_C(MSGPACK_PP_BOOL(p##(11, s)), s, p, o, m) +# define MSGPACK_PP_FOR_11(s, p, o, m) MSGPACK_PP_FOR_11_C(MSGPACK_PP_BOOL(p##(12, s)), s, p, o, m) +# define MSGPACK_PP_FOR_12(s, p, o, m) MSGPACK_PP_FOR_12_C(MSGPACK_PP_BOOL(p##(13, s)), s, p, o, m) +# define MSGPACK_PP_FOR_13(s, p, o, m) MSGPACK_PP_FOR_13_C(MSGPACK_PP_BOOL(p##(14, s)), s, p, o, m) +# define MSGPACK_PP_FOR_14(s, p, o, m) MSGPACK_PP_FOR_14_C(MSGPACK_PP_BOOL(p##(15, s)), s, p, o, m) +# define MSGPACK_PP_FOR_15(s, p, o, m) MSGPACK_PP_FOR_15_C(MSGPACK_PP_BOOL(p##(16, s)), s, p, o, m) +# define MSGPACK_PP_FOR_16(s, p, o, m) MSGPACK_PP_FOR_16_C(MSGPACK_PP_BOOL(p##(17, s)), s, p, o, m) +# define MSGPACK_PP_FOR_17(s, p, o, m) MSGPACK_PP_FOR_17_C(MSGPACK_PP_BOOL(p##(18, s)), s, p, o, m) +# define MSGPACK_PP_FOR_18(s, p, o, m) MSGPACK_PP_FOR_18_C(MSGPACK_PP_BOOL(p##(19, s)), s, p, o, m) +# define MSGPACK_PP_FOR_19(s, p, o, m) MSGPACK_PP_FOR_19_C(MSGPACK_PP_BOOL(p##(20, s)), s, p, o, m) +# define MSGPACK_PP_FOR_20(s, p, o, m) MSGPACK_PP_FOR_20_C(MSGPACK_PP_BOOL(p##(21, s)), s, p, o, m) +# define MSGPACK_PP_FOR_21(s, p, o, m) MSGPACK_PP_FOR_21_C(MSGPACK_PP_BOOL(p##(22, s)), s, p, o, m) +# define MSGPACK_PP_FOR_22(s, p, o, m) MSGPACK_PP_FOR_22_C(MSGPACK_PP_BOOL(p##(23, s)), s, p, o, m) +# define MSGPACK_PP_FOR_23(s, p, o, m) MSGPACK_PP_FOR_23_C(MSGPACK_PP_BOOL(p##(24, s)), s, p, o, m) +# define MSGPACK_PP_FOR_24(s, p, o, m) MSGPACK_PP_FOR_24_C(MSGPACK_PP_BOOL(p##(25, s)), s, p, o, m) +# define MSGPACK_PP_FOR_25(s, p, o, m) MSGPACK_PP_FOR_25_C(MSGPACK_PP_BOOL(p##(26, s)), s, p, o, m) +# define MSGPACK_PP_FOR_26(s, p, o, m) MSGPACK_PP_FOR_26_C(MSGPACK_PP_BOOL(p##(27, s)), s, p, o, m) +# define MSGPACK_PP_FOR_27(s, p, o, m) MSGPACK_PP_FOR_27_C(MSGPACK_PP_BOOL(p##(28, s)), s, p, o, m) +# define MSGPACK_PP_FOR_28(s, p, o, m) MSGPACK_PP_FOR_28_C(MSGPACK_PP_BOOL(p##(29, s)), s, p, o, m) +# define MSGPACK_PP_FOR_29(s, p, o, m) MSGPACK_PP_FOR_29_C(MSGPACK_PP_BOOL(p##(30, s)), s, p, o, m) +# define MSGPACK_PP_FOR_30(s, p, o, m) MSGPACK_PP_FOR_30_C(MSGPACK_PP_BOOL(p##(31, s)), s, p, o, m) +# define MSGPACK_PP_FOR_31(s, p, o, m) MSGPACK_PP_FOR_31_C(MSGPACK_PP_BOOL(p##(32, s)), s, p, o, m) +# define MSGPACK_PP_FOR_32(s, p, o, m) MSGPACK_PP_FOR_32_C(MSGPACK_PP_BOOL(p##(33, s)), s, p, o, m) +# define MSGPACK_PP_FOR_33(s, p, o, m) MSGPACK_PP_FOR_33_C(MSGPACK_PP_BOOL(p##(34, s)), s, p, o, m) +# define MSGPACK_PP_FOR_34(s, p, o, m) MSGPACK_PP_FOR_34_C(MSGPACK_PP_BOOL(p##(35, s)), s, p, o, m) +# define MSGPACK_PP_FOR_35(s, p, o, m) MSGPACK_PP_FOR_35_C(MSGPACK_PP_BOOL(p##(36, s)), s, p, o, m) +# define MSGPACK_PP_FOR_36(s, p, o, m) MSGPACK_PP_FOR_36_C(MSGPACK_PP_BOOL(p##(37, s)), s, p, o, m) +# define MSGPACK_PP_FOR_37(s, p, o, m) MSGPACK_PP_FOR_37_C(MSGPACK_PP_BOOL(p##(38, s)), s, p, o, m) +# define MSGPACK_PP_FOR_38(s, p, o, m) MSGPACK_PP_FOR_38_C(MSGPACK_PP_BOOL(p##(39, s)), s, p, o, m) +# define MSGPACK_PP_FOR_39(s, p, o, m) MSGPACK_PP_FOR_39_C(MSGPACK_PP_BOOL(p##(40, s)), s, p, o, m) +# define MSGPACK_PP_FOR_40(s, p, o, m) MSGPACK_PP_FOR_40_C(MSGPACK_PP_BOOL(p##(41, s)), s, p, o, m) +# define MSGPACK_PP_FOR_41(s, p, o, m) MSGPACK_PP_FOR_41_C(MSGPACK_PP_BOOL(p##(42, s)), s, p, o, m) +# define MSGPACK_PP_FOR_42(s, p, o, m) MSGPACK_PP_FOR_42_C(MSGPACK_PP_BOOL(p##(43, s)), s, p, o, m) +# define MSGPACK_PP_FOR_43(s, p, o, m) MSGPACK_PP_FOR_43_C(MSGPACK_PP_BOOL(p##(44, s)), s, p, o, m) +# define MSGPACK_PP_FOR_44(s, p, o, m) MSGPACK_PP_FOR_44_C(MSGPACK_PP_BOOL(p##(45, s)), s, p, o, m) +# define MSGPACK_PP_FOR_45(s, p, o, m) MSGPACK_PP_FOR_45_C(MSGPACK_PP_BOOL(p##(46, s)), s, p, o, m) +# define MSGPACK_PP_FOR_46(s, p, o, m) MSGPACK_PP_FOR_46_C(MSGPACK_PP_BOOL(p##(47, s)), s, p, o, m) +# define MSGPACK_PP_FOR_47(s, p, o, m) MSGPACK_PP_FOR_47_C(MSGPACK_PP_BOOL(p##(48, s)), s, p, o, m) +# define MSGPACK_PP_FOR_48(s, p, o, m) MSGPACK_PP_FOR_48_C(MSGPACK_PP_BOOL(p##(49, s)), s, p, o, m) +# define MSGPACK_PP_FOR_49(s, p, o, m) MSGPACK_PP_FOR_49_C(MSGPACK_PP_BOOL(p##(50, s)), s, p, o, m) +# define MSGPACK_PP_FOR_50(s, p, o, m) MSGPACK_PP_FOR_50_C(MSGPACK_PP_BOOL(p##(51, s)), s, p, o, m) +# define MSGPACK_PP_FOR_51(s, p, o, m) MSGPACK_PP_FOR_51_C(MSGPACK_PP_BOOL(p##(52, s)), s, p, o, m) +# define MSGPACK_PP_FOR_52(s, p, o, m) MSGPACK_PP_FOR_52_C(MSGPACK_PP_BOOL(p##(53, s)), s, p, o, m) +# define MSGPACK_PP_FOR_53(s, p, o, m) MSGPACK_PP_FOR_53_C(MSGPACK_PP_BOOL(p##(54, s)), s, p, o, m) +# define MSGPACK_PP_FOR_54(s, p, o, m) MSGPACK_PP_FOR_54_C(MSGPACK_PP_BOOL(p##(55, s)), s, p, o, m) +# define MSGPACK_PP_FOR_55(s, p, o, m) MSGPACK_PP_FOR_55_C(MSGPACK_PP_BOOL(p##(56, s)), s, p, o, m) +# define MSGPACK_PP_FOR_56(s, p, o, m) MSGPACK_PP_FOR_56_C(MSGPACK_PP_BOOL(p##(57, s)), s, p, o, m) +# define MSGPACK_PP_FOR_57(s, p, o, m) MSGPACK_PP_FOR_57_C(MSGPACK_PP_BOOL(p##(58, s)), s, p, o, m) +# define MSGPACK_PP_FOR_58(s, p, o, m) MSGPACK_PP_FOR_58_C(MSGPACK_PP_BOOL(p##(59, s)), s, p, o, m) +# define MSGPACK_PP_FOR_59(s, p, o, m) MSGPACK_PP_FOR_59_C(MSGPACK_PP_BOOL(p##(60, s)), s, p, o, m) +# define MSGPACK_PP_FOR_60(s, p, o, m) MSGPACK_PP_FOR_60_C(MSGPACK_PP_BOOL(p##(61, s)), s, p, o, m) +# define MSGPACK_PP_FOR_61(s, p, o, m) MSGPACK_PP_FOR_61_C(MSGPACK_PP_BOOL(p##(62, s)), s, p, o, m) +# define MSGPACK_PP_FOR_62(s, p, o, m) MSGPACK_PP_FOR_62_C(MSGPACK_PP_BOOL(p##(63, s)), s, p, o, m) +# define MSGPACK_PP_FOR_63(s, p, o, m) MSGPACK_PP_FOR_63_C(MSGPACK_PP_BOOL(p##(64, s)), s, p, o, m) +# define MSGPACK_PP_FOR_64(s, p, o, m) MSGPACK_PP_FOR_64_C(MSGPACK_PP_BOOL(p##(65, s)), s, p, o, m) +# define MSGPACK_PP_FOR_65(s, p, o, m) MSGPACK_PP_FOR_65_C(MSGPACK_PP_BOOL(p##(66, s)), s, p, o, m) +# define MSGPACK_PP_FOR_66(s, p, o, m) MSGPACK_PP_FOR_66_C(MSGPACK_PP_BOOL(p##(67, s)), s, p, o, m) +# define MSGPACK_PP_FOR_67(s, p, o, m) MSGPACK_PP_FOR_67_C(MSGPACK_PP_BOOL(p##(68, s)), s, p, o, m) +# define MSGPACK_PP_FOR_68(s, p, o, m) MSGPACK_PP_FOR_68_C(MSGPACK_PP_BOOL(p##(69, s)), s, p, o, m) +# define MSGPACK_PP_FOR_69(s, p, o, m) MSGPACK_PP_FOR_69_C(MSGPACK_PP_BOOL(p##(70, s)), s, p, o, m) +# define MSGPACK_PP_FOR_70(s, p, o, m) MSGPACK_PP_FOR_70_C(MSGPACK_PP_BOOL(p##(71, s)), s, p, o, m) +# define MSGPACK_PP_FOR_71(s, p, o, m) MSGPACK_PP_FOR_71_C(MSGPACK_PP_BOOL(p##(72, s)), s, p, o, m) +# define MSGPACK_PP_FOR_72(s, p, o, m) MSGPACK_PP_FOR_72_C(MSGPACK_PP_BOOL(p##(73, s)), s, p, o, m) +# define MSGPACK_PP_FOR_73(s, p, o, m) MSGPACK_PP_FOR_73_C(MSGPACK_PP_BOOL(p##(74, s)), s, p, o, m) +# define MSGPACK_PP_FOR_74(s, p, o, m) MSGPACK_PP_FOR_74_C(MSGPACK_PP_BOOL(p##(75, s)), s, p, o, m) +# define MSGPACK_PP_FOR_75(s, p, o, m) MSGPACK_PP_FOR_75_C(MSGPACK_PP_BOOL(p##(76, s)), s, p, o, m) +# define MSGPACK_PP_FOR_76(s, p, o, m) MSGPACK_PP_FOR_76_C(MSGPACK_PP_BOOL(p##(77, s)), s, p, o, m) +# define MSGPACK_PP_FOR_77(s, p, o, m) MSGPACK_PP_FOR_77_C(MSGPACK_PP_BOOL(p##(78, s)), s, p, o, m) +# define MSGPACK_PP_FOR_78(s, p, o, m) MSGPACK_PP_FOR_78_C(MSGPACK_PP_BOOL(p##(79, s)), s, p, o, m) +# define MSGPACK_PP_FOR_79(s, p, o, m) MSGPACK_PP_FOR_79_C(MSGPACK_PP_BOOL(p##(80, s)), s, p, o, m) +# define MSGPACK_PP_FOR_80(s, p, o, m) MSGPACK_PP_FOR_80_C(MSGPACK_PP_BOOL(p##(81, s)), s, p, o, m) +# define MSGPACK_PP_FOR_81(s, p, o, m) MSGPACK_PP_FOR_81_C(MSGPACK_PP_BOOL(p##(82, s)), s, p, o, m) +# define MSGPACK_PP_FOR_82(s, p, o, m) MSGPACK_PP_FOR_82_C(MSGPACK_PP_BOOL(p##(83, s)), s, p, o, m) +# define MSGPACK_PP_FOR_83(s, p, o, m) MSGPACK_PP_FOR_83_C(MSGPACK_PP_BOOL(p##(84, s)), s, p, o, m) +# define MSGPACK_PP_FOR_84(s, p, o, m) MSGPACK_PP_FOR_84_C(MSGPACK_PP_BOOL(p##(85, s)), s, p, o, m) +# define MSGPACK_PP_FOR_85(s, p, o, m) MSGPACK_PP_FOR_85_C(MSGPACK_PP_BOOL(p##(86, s)), s, p, o, m) +# define MSGPACK_PP_FOR_86(s, p, o, m) MSGPACK_PP_FOR_86_C(MSGPACK_PP_BOOL(p##(87, s)), s, p, o, m) +# define MSGPACK_PP_FOR_87(s, p, o, m) MSGPACK_PP_FOR_87_C(MSGPACK_PP_BOOL(p##(88, s)), s, p, o, m) +# define MSGPACK_PP_FOR_88(s, p, o, m) MSGPACK_PP_FOR_88_C(MSGPACK_PP_BOOL(p##(89, s)), s, p, o, m) +# define MSGPACK_PP_FOR_89(s, p, o, m) MSGPACK_PP_FOR_89_C(MSGPACK_PP_BOOL(p##(90, s)), s, p, o, m) +# define MSGPACK_PP_FOR_90(s, p, o, m) MSGPACK_PP_FOR_90_C(MSGPACK_PP_BOOL(p##(91, s)), s, p, o, m) +# define MSGPACK_PP_FOR_91(s, p, o, m) MSGPACK_PP_FOR_91_C(MSGPACK_PP_BOOL(p##(92, s)), s, p, o, m) +# define MSGPACK_PP_FOR_92(s, p, o, m) MSGPACK_PP_FOR_92_C(MSGPACK_PP_BOOL(p##(93, s)), s, p, o, m) +# define MSGPACK_PP_FOR_93(s, p, o, m) MSGPACK_PP_FOR_93_C(MSGPACK_PP_BOOL(p##(94, s)), s, p, o, m) +# define MSGPACK_PP_FOR_94(s, p, o, m) MSGPACK_PP_FOR_94_C(MSGPACK_PP_BOOL(p##(95, s)), s, p, o, m) +# define MSGPACK_PP_FOR_95(s, p, o, m) MSGPACK_PP_FOR_95_C(MSGPACK_PP_BOOL(p##(96, s)), s, p, o, m) +# define MSGPACK_PP_FOR_96(s, p, o, m) MSGPACK_PP_FOR_96_C(MSGPACK_PP_BOOL(p##(97, s)), s, p, o, m) +# define MSGPACK_PP_FOR_97(s, p, o, m) MSGPACK_PP_FOR_97_C(MSGPACK_PP_BOOL(p##(98, s)), s, p, o, m) +# define MSGPACK_PP_FOR_98(s, p, o, m) MSGPACK_PP_FOR_98_C(MSGPACK_PP_BOOL(p##(99, s)), s, p, o, m) +# define MSGPACK_PP_FOR_99(s, p, o, m) MSGPACK_PP_FOR_99_C(MSGPACK_PP_BOOL(p##(100, s)), s, p, o, m) +# define MSGPACK_PP_FOR_100(s, p, o, m) MSGPACK_PP_FOR_100_C(MSGPACK_PP_BOOL(p##(101, s)), s, p, o, m) +# define MSGPACK_PP_FOR_101(s, p, o, m) MSGPACK_PP_FOR_101_C(MSGPACK_PP_BOOL(p##(102, s)), s, p, o, m) +# define MSGPACK_PP_FOR_102(s, p, o, m) MSGPACK_PP_FOR_102_C(MSGPACK_PP_BOOL(p##(103, s)), s, p, o, m) +# define MSGPACK_PP_FOR_103(s, p, o, m) MSGPACK_PP_FOR_103_C(MSGPACK_PP_BOOL(p##(104, s)), s, p, o, m) +# define MSGPACK_PP_FOR_104(s, p, o, m) MSGPACK_PP_FOR_104_C(MSGPACK_PP_BOOL(p##(105, s)), s, p, o, m) +# define MSGPACK_PP_FOR_105(s, p, o, m) MSGPACK_PP_FOR_105_C(MSGPACK_PP_BOOL(p##(106, s)), s, p, o, m) +# define MSGPACK_PP_FOR_106(s, p, o, m) MSGPACK_PP_FOR_106_C(MSGPACK_PP_BOOL(p##(107, s)), s, p, o, m) +# define MSGPACK_PP_FOR_107(s, p, o, m) MSGPACK_PP_FOR_107_C(MSGPACK_PP_BOOL(p##(108, s)), s, p, o, m) +# define MSGPACK_PP_FOR_108(s, p, o, m) MSGPACK_PP_FOR_108_C(MSGPACK_PP_BOOL(p##(109, s)), s, p, o, m) +# define MSGPACK_PP_FOR_109(s, p, o, m) MSGPACK_PP_FOR_109_C(MSGPACK_PP_BOOL(p##(110, s)), s, p, o, m) +# define MSGPACK_PP_FOR_110(s, p, o, m) MSGPACK_PP_FOR_110_C(MSGPACK_PP_BOOL(p##(111, s)), s, p, o, m) +# define MSGPACK_PP_FOR_111(s, p, o, m) MSGPACK_PP_FOR_111_C(MSGPACK_PP_BOOL(p##(112, s)), s, p, o, m) +# define MSGPACK_PP_FOR_112(s, p, o, m) MSGPACK_PP_FOR_112_C(MSGPACK_PP_BOOL(p##(113, s)), s, p, o, m) +# define MSGPACK_PP_FOR_113(s, p, o, m) MSGPACK_PP_FOR_113_C(MSGPACK_PP_BOOL(p##(114, s)), s, p, o, m) +# define MSGPACK_PP_FOR_114(s, p, o, m) MSGPACK_PP_FOR_114_C(MSGPACK_PP_BOOL(p##(115, s)), s, p, o, m) +# define MSGPACK_PP_FOR_115(s, p, o, m) MSGPACK_PP_FOR_115_C(MSGPACK_PP_BOOL(p##(116, s)), s, p, o, m) +# define MSGPACK_PP_FOR_116(s, p, o, m) MSGPACK_PP_FOR_116_C(MSGPACK_PP_BOOL(p##(117, s)), s, p, o, m) +# define MSGPACK_PP_FOR_117(s, p, o, m) MSGPACK_PP_FOR_117_C(MSGPACK_PP_BOOL(p##(118, s)), s, p, o, m) +# define MSGPACK_PP_FOR_118(s, p, o, m) MSGPACK_PP_FOR_118_C(MSGPACK_PP_BOOL(p##(119, s)), s, p, o, m) +# define MSGPACK_PP_FOR_119(s, p, o, m) MSGPACK_PP_FOR_119_C(MSGPACK_PP_BOOL(p##(120, s)), s, p, o, m) +# define MSGPACK_PP_FOR_120(s, p, o, m) MSGPACK_PP_FOR_120_C(MSGPACK_PP_BOOL(p##(121, s)), s, p, o, m) +# define MSGPACK_PP_FOR_121(s, p, o, m) MSGPACK_PP_FOR_121_C(MSGPACK_PP_BOOL(p##(122, s)), s, p, o, m) +# define MSGPACK_PP_FOR_122(s, p, o, m) MSGPACK_PP_FOR_122_C(MSGPACK_PP_BOOL(p##(123, s)), s, p, o, m) +# define MSGPACK_PP_FOR_123(s, p, o, m) MSGPACK_PP_FOR_123_C(MSGPACK_PP_BOOL(p##(124, s)), s, p, o, m) +# define MSGPACK_PP_FOR_124(s, p, o, m) MSGPACK_PP_FOR_124_C(MSGPACK_PP_BOOL(p##(125, s)), s, p, o, m) +# define MSGPACK_PP_FOR_125(s, p, o, m) MSGPACK_PP_FOR_125_C(MSGPACK_PP_BOOL(p##(126, s)), s, p, o, m) +# define MSGPACK_PP_FOR_126(s, p, o, m) MSGPACK_PP_FOR_126_C(MSGPACK_PP_BOOL(p##(127, s)), s, p, o, m) +# define MSGPACK_PP_FOR_127(s, p, o, m) MSGPACK_PP_FOR_127_C(MSGPACK_PP_BOOL(p##(128, s)), s, p, o, m) +# define MSGPACK_PP_FOR_128(s, p, o, m) MSGPACK_PP_FOR_128_C(MSGPACK_PP_BOOL(p##(129, s)), s, p, o, m) +# define MSGPACK_PP_FOR_129(s, p, o, m) MSGPACK_PP_FOR_129_C(MSGPACK_PP_BOOL(p##(130, s)), s, p, o, m) +# define MSGPACK_PP_FOR_130(s, p, o, m) MSGPACK_PP_FOR_130_C(MSGPACK_PP_BOOL(p##(131, s)), s, p, o, m) +# define MSGPACK_PP_FOR_131(s, p, o, m) MSGPACK_PP_FOR_131_C(MSGPACK_PP_BOOL(p##(132, s)), s, p, o, m) +# define MSGPACK_PP_FOR_132(s, p, o, m) MSGPACK_PP_FOR_132_C(MSGPACK_PP_BOOL(p##(133, s)), s, p, o, m) +# define MSGPACK_PP_FOR_133(s, p, o, m) MSGPACK_PP_FOR_133_C(MSGPACK_PP_BOOL(p##(134, s)), s, p, o, m) +# define MSGPACK_PP_FOR_134(s, p, o, m) MSGPACK_PP_FOR_134_C(MSGPACK_PP_BOOL(p##(135, s)), s, p, o, m) +# define MSGPACK_PP_FOR_135(s, p, o, m) MSGPACK_PP_FOR_135_C(MSGPACK_PP_BOOL(p##(136, s)), s, p, o, m) +# define MSGPACK_PP_FOR_136(s, p, o, m) MSGPACK_PP_FOR_136_C(MSGPACK_PP_BOOL(p##(137, s)), s, p, o, m) +# define MSGPACK_PP_FOR_137(s, p, o, m) MSGPACK_PP_FOR_137_C(MSGPACK_PP_BOOL(p##(138, s)), s, p, o, m) +# define MSGPACK_PP_FOR_138(s, p, o, m) MSGPACK_PP_FOR_138_C(MSGPACK_PP_BOOL(p##(139, s)), s, p, o, m) +# define MSGPACK_PP_FOR_139(s, p, o, m) MSGPACK_PP_FOR_139_C(MSGPACK_PP_BOOL(p##(140, s)), s, p, o, m) +# define MSGPACK_PP_FOR_140(s, p, o, m) MSGPACK_PP_FOR_140_C(MSGPACK_PP_BOOL(p##(141, s)), s, p, o, m) +# define MSGPACK_PP_FOR_141(s, p, o, m) MSGPACK_PP_FOR_141_C(MSGPACK_PP_BOOL(p##(142, s)), s, p, o, m) +# define MSGPACK_PP_FOR_142(s, p, o, m) MSGPACK_PP_FOR_142_C(MSGPACK_PP_BOOL(p##(143, s)), s, p, o, m) +# define MSGPACK_PP_FOR_143(s, p, o, m) MSGPACK_PP_FOR_143_C(MSGPACK_PP_BOOL(p##(144, s)), s, p, o, m) +# define MSGPACK_PP_FOR_144(s, p, o, m) MSGPACK_PP_FOR_144_C(MSGPACK_PP_BOOL(p##(145, s)), s, p, o, m) +# define MSGPACK_PP_FOR_145(s, p, o, m) MSGPACK_PP_FOR_145_C(MSGPACK_PP_BOOL(p##(146, s)), s, p, o, m) +# define MSGPACK_PP_FOR_146(s, p, o, m) MSGPACK_PP_FOR_146_C(MSGPACK_PP_BOOL(p##(147, s)), s, p, o, m) +# define MSGPACK_PP_FOR_147(s, p, o, m) MSGPACK_PP_FOR_147_C(MSGPACK_PP_BOOL(p##(148, s)), s, p, o, m) +# define MSGPACK_PP_FOR_148(s, p, o, m) MSGPACK_PP_FOR_148_C(MSGPACK_PP_BOOL(p##(149, s)), s, p, o, m) +# define MSGPACK_PP_FOR_149(s, p, o, m) MSGPACK_PP_FOR_149_C(MSGPACK_PP_BOOL(p##(150, s)), s, p, o, m) +# define MSGPACK_PP_FOR_150(s, p, o, m) MSGPACK_PP_FOR_150_C(MSGPACK_PP_BOOL(p##(151, s)), s, p, o, m) +# define MSGPACK_PP_FOR_151(s, p, o, m) MSGPACK_PP_FOR_151_C(MSGPACK_PP_BOOL(p##(152, s)), s, p, o, m) +# define MSGPACK_PP_FOR_152(s, p, o, m) MSGPACK_PP_FOR_152_C(MSGPACK_PP_BOOL(p##(153, s)), s, p, o, m) +# define MSGPACK_PP_FOR_153(s, p, o, m) MSGPACK_PP_FOR_153_C(MSGPACK_PP_BOOL(p##(154, s)), s, p, o, m) +# define MSGPACK_PP_FOR_154(s, p, o, m) MSGPACK_PP_FOR_154_C(MSGPACK_PP_BOOL(p##(155, s)), s, p, o, m) +# define MSGPACK_PP_FOR_155(s, p, o, m) MSGPACK_PP_FOR_155_C(MSGPACK_PP_BOOL(p##(156, s)), s, p, o, m) +# define MSGPACK_PP_FOR_156(s, p, o, m) MSGPACK_PP_FOR_156_C(MSGPACK_PP_BOOL(p##(157, s)), s, p, o, m) +# define MSGPACK_PP_FOR_157(s, p, o, m) MSGPACK_PP_FOR_157_C(MSGPACK_PP_BOOL(p##(158, s)), s, p, o, m) +# define MSGPACK_PP_FOR_158(s, p, o, m) MSGPACK_PP_FOR_158_C(MSGPACK_PP_BOOL(p##(159, s)), s, p, o, m) +# define MSGPACK_PP_FOR_159(s, p, o, m) MSGPACK_PP_FOR_159_C(MSGPACK_PP_BOOL(p##(160, s)), s, p, o, m) +# define MSGPACK_PP_FOR_160(s, p, o, m) MSGPACK_PP_FOR_160_C(MSGPACK_PP_BOOL(p##(161, s)), s, p, o, m) +# define MSGPACK_PP_FOR_161(s, p, o, m) MSGPACK_PP_FOR_161_C(MSGPACK_PP_BOOL(p##(162, s)), s, p, o, m) +# define MSGPACK_PP_FOR_162(s, p, o, m) MSGPACK_PP_FOR_162_C(MSGPACK_PP_BOOL(p##(163, s)), s, p, o, m) +# define MSGPACK_PP_FOR_163(s, p, o, m) MSGPACK_PP_FOR_163_C(MSGPACK_PP_BOOL(p##(164, s)), s, p, o, m) +# define MSGPACK_PP_FOR_164(s, p, o, m) MSGPACK_PP_FOR_164_C(MSGPACK_PP_BOOL(p##(165, s)), s, p, o, m) +# define MSGPACK_PP_FOR_165(s, p, o, m) MSGPACK_PP_FOR_165_C(MSGPACK_PP_BOOL(p##(166, s)), s, p, o, m) +# define MSGPACK_PP_FOR_166(s, p, o, m) MSGPACK_PP_FOR_166_C(MSGPACK_PP_BOOL(p##(167, s)), s, p, o, m) +# define MSGPACK_PP_FOR_167(s, p, o, m) MSGPACK_PP_FOR_167_C(MSGPACK_PP_BOOL(p##(168, s)), s, p, o, m) +# define MSGPACK_PP_FOR_168(s, p, o, m) MSGPACK_PP_FOR_168_C(MSGPACK_PP_BOOL(p##(169, s)), s, p, o, m) +# define MSGPACK_PP_FOR_169(s, p, o, m) MSGPACK_PP_FOR_169_C(MSGPACK_PP_BOOL(p##(170, s)), s, p, o, m) +# define MSGPACK_PP_FOR_170(s, p, o, m) MSGPACK_PP_FOR_170_C(MSGPACK_PP_BOOL(p##(171, s)), s, p, o, m) +# define MSGPACK_PP_FOR_171(s, p, o, m) MSGPACK_PP_FOR_171_C(MSGPACK_PP_BOOL(p##(172, s)), s, p, o, m) +# define MSGPACK_PP_FOR_172(s, p, o, m) MSGPACK_PP_FOR_172_C(MSGPACK_PP_BOOL(p##(173, s)), s, p, o, m) +# define MSGPACK_PP_FOR_173(s, p, o, m) MSGPACK_PP_FOR_173_C(MSGPACK_PP_BOOL(p##(174, s)), s, p, o, m) +# define MSGPACK_PP_FOR_174(s, p, o, m) MSGPACK_PP_FOR_174_C(MSGPACK_PP_BOOL(p##(175, s)), s, p, o, m) +# define MSGPACK_PP_FOR_175(s, p, o, m) MSGPACK_PP_FOR_175_C(MSGPACK_PP_BOOL(p##(176, s)), s, p, o, m) +# define MSGPACK_PP_FOR_176(s, p, o, m) MSGPACK_PP_FOR_176_C(MSGPACK_PP_BOOL(p##(177, s)), s, p, o, m) +# define MSGPACK_PP_FOR_177(s, p, o, m) MSGPACK_PP_FOR_177_C(MSGPACK_PP_BOOL(p##(178, s)), s, p, o, m) +# define MSGPACK_PP_FOR_178(s, p, o, m) MSGPACK_PP_FOR_178_C(MSGPACK_PP_BOOL(p##(179, s)), s, p, o, m) +# define MSGPACK_PP_FOR_179(s, p, o, m) MSGPACK_PP_FOR_179_C(MSGPACK_PP_BOOL(p##(180, s)), s, p, o, m) +# define MSGPACK_PP_FOR_180(s, p, o, m) MSGPACK_PP_FOR_180_C(MSGPACK_PP_BOOL(p##(181, s)), s, p, o, m) +# define MSGPACK_PP_FOR_181(s, p, o, m) MSGPACK_PP_FOR_181_C(MSGPACK_PP_BOOL(p##(182, s)), s, p, o, m) +# define MSGPACK_PP_FOR_182(s, p, o, m) MSGPACK_PP_FOR_182_C(MSGPACK_PP_BOOL(p##(183, s)), s, p, o, m) +# define MSGPACK_PP_FOR_183(s, p, o, m) MSGPACK_PP_FOR_183_C(MSGPACK_PP_BOOL(p##(184, s)), s, p, o, m) +# define MSGPACK_PP_FOR_184(s, p, o, m) MSGPACK_PP_FOR_184_C(MSGPACK_PP_BOOL(p##(185, s)), s, p, o, m) +# define MSGPACK_PP_FOR_185(s, p, o, m) MSGPACK_PP_FOR_185_C(MSGPACK_PP_BOOL(p##(186, s)), s, p, o, m) +# define MSGPACK_PP_FOR_186(s, p, o, m) MSGPACK_PP_FOR_186_C(MSGPACK_PP_BOOL(p##(187, s)), s, p, o, m) +# define MSGPACK_PP_FOR_187(s, p, o, m) MSGPACK_PP_FOR_187_C(MSGPACK_PP_BOOL(p##(188, s)), s, p, o, m) +# define MSGPACK_PP_FOR_188(s, p, o, m) MSGPACK_PP_FOR_188_C(MSGPACK_PP_BOOL(p##(189, s)), s, p, o, m) +# define MSGPACK_PP_FOR_189(s, p, o, m) MSGPACK_PP_FOR_189_C(MSGPACK_PP_BOOL(p##(190, s)), s, p, o, m) +# define MSGPACK_PP_FOR_190(s, p, o, m) MSGPACK_PP_FOR_190_C(MSGPACK_PP_BOOL(p##(191, s)), s, p, o, m) +# define MSGPACK_PP_FOR_191(s, p, o, m) MSGPACK_PP_FOR_191_C(MSGPACK_PP_BOOL(p##(192, s)), s, p, o, m) +# define MSGPACK_PP_FOR_192(s, p, o, m) MSGPACK_PP_FOR_192_C(MSGPACK_PP_BOOL(p##(193, s)), s, p, o, m) +# define MSGPACK_PP_FOR_193(s, p, o, m) MSGPACK_PP_FOR_193_C(MSGPACK_PP_BOOL(p##(194, s)), s, p, o, m) +# define MSGPACK_PP_FOR_194(s, p, o, m) MSGPACK_PP_FOR_194_C(MSGPACK_PP_BOOL(p##(195, s)), s, p, o, m) +# define MSGPACK_PP_FOR_195(s, p, o, m) MSGPACK_PP_FOR_195_C(MSGPACK_PP_BOOL(p##(196, s)), s, p, o, m) +# define MSGPACK_PP_FOR_196(s, p, o, m) MSGPACK_PP_FOR_196_C(MSGPACK_PP_BOOL(p##(197, s)), s, p, o, m) +# define MSGPACK_PP_FOR_197(s, p, o, m) MSGPACK_PP_FOR_197_C(MSGPACK_PP_BOOL(p##(198, s)), s, p, o, m) +# define MSGPACK_PP_FOR_198(s, p, o, m) MSGPACK_PP_FOR_198_C(MSGPACK_PP_BOOL(p##(199, s)), s, p, o, m) +# define MSGPACK_PP_FOR_199(s, p, o, m) MSGPACK_PP_FOR_199_C(MSGPACK_PP_BOOL(p##(200, s)), s, p, o, m) +# define MSGPACK_PP_FOR_200(s, p, o, m) MSGPACK_PP_FOR_200_C(MSGPACK_PP_BOOL(p##(201, s)), s, p, o, m) +# define MSGPACK_PP_FOR_201(s, p, o, m) MSGPACK_PP_FOR_201_C(MSGPACK_PP_BOOL(p##(202, s)), s, p, o, m) +# define MSGPACK_PP_FOR_202(s, p, o, m) MSGPACK_PP_FOR_202_C(MSGPACK_PP_BOOL(p##(203, s)), s, p, o, m) +# define MSGPACK_PP_FOR_203(s, p, o, m) MSGPACK_PP_FOR_203_C(MSGPACK_PP_BOOL(p##(204, s)), s, p, o, m) +# define MSGPACK_PP_FOR_204(s, p, o, m) MSGPACK_PP_FOR_204_C(MSGPACK_PP_BOOL(p##(205, s)), s, p, o, m) +# define MSGPACK_PP_FOR_205(s, p, o, m) MSGPACK_PP_FOR_205_C(MSGPACK_PP_BOOL(p##(206, s)), s, p, o, m) +# define MSGPACK_PP_FOR_206(s, p, o, m) MSGPACK_PP_FOR_206_C(MSGPACK_PP_BOOL(p##(207, s)), s, p, o, m) +# define MSGPACK_PP_FOR_207(s, p, o, m) MSGPACK_PP_FOR_207_C(MSGPACK_PP_BOOL(p##(208, s)), s, p, o, m) +# define MSGPACK_PP_FOR_208(s, p, o, m) MSGPACK_PP_FOR_208_C(MSGPACK_PP_BOOL(p##(209, s)), s, p, o, m) +# define MSGPACK_PP_FOR_209(s, p, o, m) MSGPACK_PP_FOR_209_C(MSGPACK_PP_BOOL(p##(210, s)), s, p, o, m) +# define MSGPACK_PP_FOR_210(s, p, o, m) MSGPACK_PP_FOR_210_C(MSGPACK_PP_BOOL(p##(211, s)), s, p, o, m) +# define MSGPACK_PP_FOR_211(s, p, o, m) MSGPACK_PP_FOR_211_C(MSGPACK_PP_BOOL(p##(212, s)), s, p, o, m) +# define MSGPACK_PP_FOR_212(s, p, o, m) MSGPACK_PP_FOR_212_C(MSGPACK_PP_BOOL(p##(213, s)), s, p, o, m) +# define MSGPACK_PP_FOR_213(s, p, o, m) MSGPACK_PP_FOR_213_C(MSGPACK_PP_BOOL(p##(214, s)), s, p, o, m) +# define MSGPACK_PP_FOR_214(s, p, o, m) MSGPACK_PP_FOR_214_C(MSGPACK_PP_BOOL(p##(215, s)), s, p, o, m) +# define MSGPACK_PP_FOR_215(s, p, o, m) MSGPACK_PP_FOR_215_C(MSGPACK_PP_BOOL(p##(216, s)), s, p, o, m) +# define MSGPACK_PP_FOR_216(s, p, o, m) MSGPACK_PP_FOR_216_C(MSGPACK_PP_BOOL(p##(217, s)), s, p, o, m) +# define MSGPACK_PP_FOR_217(s, p, o, m) MSGPACK_PP_FOR_217_C(MSGPACK_PP_BOOL(p##(218, s)), s, p, o, m) +# define MSGPACK_PP_FOR_218(s, p, o, m) MSGPACK_PP_FOR_218_C(MSGPACK_PP_BOOL(p##(219, s)), s, p, o, m) +# define MSGPACK_PP_FOR_219(s, p, o, m) MSGPACK_PP_FOR_219_C(MSGPACK_PP_BOOL(p##(220, s)), s, p, o, m) +# define MSGPACK_PP_FOR_220(s, p, o, m) MSGPACK_PP_FOR_220_C(MSGPACK_PP_BOOL(p##(221, s)), s, p, o, m) +# define MSGPACK_PP_FOR_221(s, p, o, m) MSGPACK_PP_FOR_221_C(MSGPACK_PP_BOOL(p##(222, s)), s, p, o, m) +# define MSGPACK_PP_FOR_222(s, p, o, m) MSGPACK_PP_FOR_222_C(MSGPACK_PP_BOOL(p##(223, s)), s, p, o, m) +# define MSGPACK_PP_FOR_223(s, p, o, m) MSGPACK_PP_FOR_223_C(MSGPACK_PP_BOOL(p##(224, s)), s, p, o, m) +# define MSGPACK_PP_FOR_224(s, p, o, m) MSGPACK_PP_FOR_224_C(MSGPACK_PP_BOOL(p##(225, s)), s, p, o, m) +# define MSGPACK_PP_FOR_225(s, p, o, m) MSGPACK_PP_FOR_225_C(MSGPACK_PP_BOOL(p##(226, s)), s, p, o, m) +# define MSGPACK_PP_FOR_226(s, p, o, m) MSGPACK_PP_FOR_226_C(MSGPACK_PP_BOOL(p##(227, s)), s, p, o, m) +# define MSGPACK_PP_FOR_227(s, p, o, m) MSGPACK_PP_FOR_227_C(MSGPACK_PP_BOOL(p##(228, s)), s, p, o, m) +# define MSGPACK_PP_FOR_228(s, p, o, m) MSGPACK_PP_FOR_228_C(MSGPACK_PP_BOOL(p##(229, s)), s, p, o, m) +# define MSGPACK_PP_FOR_229(s, p, o, m) MSGPACK_PP_FOR_229_C(MSGPACK_PP_BOOL(p##(230, s)), s, p, o, m) +# define MSGPACK_PP_FOR_230(s, p, o, m) MSGPACK_PP_FOR_230_C(MSGPACK_PP_BOOL(p##(231, s)), s, p, o, m) +# define MSGPACK_PP_FOR_231(s, p, o, m) MSGPACK_PP_FOR_231_C(MSGPACK_PP_BOOL(p##(232, s)), s, p, o, m) +# define MSGPACK_PP_FOR_232(s, p, o, m) MSGPACK_PP_FOR_232_C(MSGPACK_PP_BOOL(p##(233, s)), s, p, o, m) +# define MSGPACK_PP_FOR_233(s, p, o, m) MSGPACK_PP_FOR_233_C(MSGPACK_PP_BOOL(p##(234, s)), s, p, o, m) +# define MSGPACK_PP_FOR_234(s, p, o, m) MSGPACK_PP_FOR_234_C(MSGPACK_PP_BOOL(p##(235, s)), s, p, o, m) +# define MSGPACK_PP_FOR_235(s, p, o, m) MSGPACK_PP_FOR_235_C(MSGPACK_PP_BOOL(p##(236, s)), s, p, o, m) +# define MSGPACK_PP_FOR_236(s, p, o, m) MSGPACK_PP_FOR_236_C(MSGPACK_PP_BOOL(p##(237, s)), s, p, o, m) +# define MSGPACK_PP_FOR_237(s, p, o, m) MSGPACK_PP_FOR_237_C(MSGPACK_PP_BOOL(p##(238, s)), s, p, o, m) +# define MSGPACK_PP_FOR_238(s, p, o, m) MSGPACK_PP_FOR_238_C(MSGPACK_PP_BOOL(p##(239, s)), s, p, o, m) +# define MSGPACK_PP_FOR_239(s, p, o, m) MSGPACK_PP_FOR_239_C(MSGPACK_PP_BOOL(p##(240, s)), s, p, o, m) +# define MSGPACK_PP_FOR_240(s, p, o, m) MSGPACK_PP_FOR_240_C(MSGPACK_PP_BOOL(p##(241, s)), s, p, o, m) +# define MSGPACK_PP_FOR_241(s, p, o, m) MSGPACK_PP_FOR_241_C(MSGPACK_PP_BOOL(p##(242, s)), s, p, o, m) +# define MSGPACK_PP_FOR_242(s, p, o, m) MSGPACK_PP_FOR_242_C(MSGPACK_PP_BOOL(p##(243, s)), s, p, o, m) +# define MSGPACK_PP_FOR_243(s, p, o, m) MSGPACK_PP_FOR_243_C(MSGPACK_PP_BOOL(p##(244, s)), s, p, o, m) +# define MSGPACK_PP_FOR_244(s, p, o, m) MSGPACK_PP_FOR_244_C(MSGPACK_PP_BOOL(p##(245, s)), s, p, o, m) +# define MSGPACK_PP_FOR_245(s, p, o, m) MSGPACK_PP_FOR_245_C(MSGPACK_PP_BOOL(p##(246, s)), s, p, o, m) +# define MSGPACK_PP_FOR_246(s, p, o, m) MSGPACK_PP_FOR_246_C(MSGPACK_PP_BOOL(p##(247, s)), s, p, o, m) +# define MSGPACK_PP_FOR_247(s, p, o, m) MSGPACK_PP_FOR_247_C(MSGPACK_PP_BOOL(p##(248, s)), s, p, o, m) +# define MSGPACK_PP_FOR_248(s, p, o, m) MSGPACK_PP_FOR_248_C(MSGPACK_PP_BOOL(p##(249, s)), s, p, o, m) +# define MSGPACK_PP_FOR_249(s, p, o, m) MSGPACK_PP_FOR_249_C(MSGPACK_PP_BOOL(p##(250, s)), s, p, o, m) +# define MSGPACK_PP_FOR_250(s, p, o, m) MSGPACK_PP_FOR_250_C(MSGPACK_PP_BOOL(p##(251, s)), s, p, o, m) +# define MSGPACK_PP_FOR_251(s, p, o, m) MSGPACK_PP_FOR_251_C(MSGPACK_PP_BOOL(p##(252, s)), s, p, o, m) +# define MSGPACK_PP_FOR_252(s, p, o, m) MSGPACK_PP_FOR_252_C(MSGPACK_PP_BOOL(p##(253, s)), s, p, o, m) +# define MSGPACK_PP_FOR_253(s, p, o, m) MSGPACK_PP_FOR_253_C(MSGPACK_PP_BOOL(p##(254, s)), s, p, o, m) +# define MSGPACK_PP_FOR_254(s, p, o, m) MSGPACK_PP_FOR_254_C(MSGPACK_PP_BOOL(p##(255, s)), s, p, o, m) +# define MSGPACK_PP_FOR_255(s, p, o, m) MSGPACK_PP_FOR_255_C(MSGPACK_PP_BOOL(p##(256, s)), s, p, o, m) +# define MSGPACK_PP_FOR_256(s, p, o, m) MSGPACK_PP_FOR_256_C(MSGPACK_PP_BOOL(p##(257, s)), s, p, o, m) +# +# define MSGPACK_PP_FOR_1_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(2, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_2, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(2, s), p, o, m) +# define MSGPACK_PP_FOR_2_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(3, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_3, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(3, s), p, o, m) +# define MSGPACK_PP_FOR_3_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(4, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_4, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(4, s), p, o, m) +# define MSGPACK_PP_FOR_4_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(5, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_5, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(5, s), p, o, m) +# define MSGPACK_PP_FOR_5_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(6, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_6, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(6, s), p, o, m) +# define MSGPACK_PP_FOR_6_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(7, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_7, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(7, s), p, o, m) +# define MSGPACK_PP_FOR_7_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(8, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_8, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(8, s), p, o, m) +# define MSGPACK_PP_FOR_8_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(9, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_9, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(9, s), p, o, m) +# define MSGPACK_PP_FOR_9_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(10, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_10, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(10, s), p, o, m) +# define MSGPACK_PP_FOR_10_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(11, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_11, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(11, s), p, o, m) +# define MSGPACK_PP_FOR_11_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(12, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_12, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(12, s), p, o, m) +# define MSGPACK_PP_FOR_12_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(13, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_13, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(13, s), p, o, m) +# define MSGPACK_PP_FOR_13_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(14, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_14, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(14, s), p, o, m) +# define MSGPACK_PP_FOR_14_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(15, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_15, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(15, s), p, o, m) +# define MSGPACK_PP_FOR_15_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(16, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_16, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(16, s), p, o, m) +# define MSGPACK_PP_FOR_16_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(17, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_17, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(17, s), p, o, m) +# define MSGPACK_PP_FOR_17_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(18, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_18, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(18, s), p, o, m) +# define MSGPACK_PP_FOR_18_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(19, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_19, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(19, s), p, o, m) +# define MSGPACK_PP_FOR_19_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(20, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_20, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(20, s), p, o, m) +# define MSGPACK_PP_FOR_20_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(21, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_21, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(21, s), p, o, m) +# define MSGPACK_PP_FOR_21_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(22, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_22, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(22, s), p, o, m) +# define MSGPACK_PP_FOR_22_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(23, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_23, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(23, s), p, o, m) +# define MSGPACK_PP_FOR_23_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(24, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_24, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(24, s), p, o, m) +# define MSGPACK_PP_FOR_24_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(25, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_25, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(25, s), p, o, m) +# define MSGPACK_PP_FOR_25_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(26, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_26, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(26, s), p, o, m) +# define MSGPACK_PP_FOR_26_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(27, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_27, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(27, s), p, o, m) +# define MSGPACK_PP_FOR_27_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(28, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_28, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(28, s), p, o, m) +# define MSGPACK_PP_FOR_28_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(29, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_29, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(29, s), p, o, m) +# define MSGPACK_PP_FOR_29_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(30, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_30, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(30, s), p, o, m) +# define MSGPACK_PP_FOR_30_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(31, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_31, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(31, s), p, o, m) +# define MSGPACK_PP_FOR_31_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(32, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_32, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(32, s), p, o, m) +# define MSGPACK_PP_FOR_32_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(33, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_33, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(33, s), p, o, m) +# define MSGPACK_PP_FOR_33_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(34, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_34, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(34, s), p, o, m) +# define MSGPACK_PP_FOR_34_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(35, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_35, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(35, s), p, o, m) +# define MSGPACK_PP_FOR_35_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(36, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_36, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(36, s), p, o, m) +# define MSGPACK_PP_FOR_36_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(37, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_37, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(37, s), p, o, m) +# define MSGPACK_PP_FOR_37_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(38, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_38, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(38, s), p, o, m) +# define MSGPACK_PP_FOR_38_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(39, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_39, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(39, s), p, o, m) +# define MSGPACK_PP_FOR_39_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(40, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_40, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(40, s), p, o, m) +# define MSGPACK_PP_FOR_40_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(41, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_41, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(41, s), p, o, m) +# define MSGPACK_PP_FOR_41_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(42, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_42, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(42, s), p, o, m) +# define MSGPACK_PP_FOR_42_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(43, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_43, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(43, s), p, o, m) +# define MSGPACK_PP_FOR_43_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(44, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_44, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(44, s), p, o, m) +# define MSGPACK_PP_FOR_44_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(45, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_45, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(45, s), p, o, m) +# define MSGPACK_PP_FOR_45_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(46, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_46, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(46, s), p, o, m) +# define MSGPACK_PP_FOR_46_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(47, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_47, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(47, s), p, o, m) +# define MSGPACK_PP_FOR_47_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(48, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_48, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(48, s), p, o, m) +# define MSGPACK_PP_FOR_48_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(49, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_49, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(49, s), p, o, m) +# define MSGPACK_PP_FOR_49_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(50, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_50, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(50, s), p, o, m) +# define MSGPACK_PP_FOR_50_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(51, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_51, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(51, s), p, o, m) +# define MSGPACK_PP_FOR_51_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(52, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_52, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(52, s), p, o, m) +# define MSGPACK_PP_FOR_52_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(53, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_53, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(53, s), p, o, m) +# define MSGPACK_PP_FOR_53_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(54, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_54, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(54, s), p, o, m) +# define MSGPACK_PP_FOR_54_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(55, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_55, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(55, s), p, o, m) +# define MSGPACK_PP_FOR_55_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(56, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_56, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(56, s), p, o, m) +# define MSGPACK_PP_FOR_56_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(57, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_57, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(57, s), p, o, m) +# define MSGPACK_PP_FOR_57_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(58, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_58, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(58, s), p, o, m) +# define MSGPACK_PP_FOR_58_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(59, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_59, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(59, s), p, o, m) +# define MSGPACK_PP_FOR_59_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(60, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_60, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(60, s), p, o, m) +# define MSGPACK_PP_FOR_60_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(61, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_61, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(61, s), p, o, m) +# define MSGPACK_PP_FOR_61_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(62, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_62, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(62, s), p, o, m) +# define MSGPACK_PP_FOR_62_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(63, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_63, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(63, s), p, o, m) +# define MSGPACK_PP_FOR_63_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(64, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_64, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(64, s), p, o, m) +# define MSGPACK_PP_FOR_64_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(65, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_65, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(65, s), p, o, m) +# define MSGPACK_PP_FOR_65_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(66, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_66, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(66, s), p, o, m) +# define MSGPACK_PP_FOR_66_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(67, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_67, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(67, s), p, o, m) +# define MSGPACK_PP_FOR_67_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(68, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_68, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(68, s), p, o, m) +# define MSGPACK_PP_FOR_68_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(69, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_69, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(69, s), p, o, m) +# define MSGPACK_PP_FOR_69_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(70, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_70, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(70, s), p, o, m) +# define MSGPACK_PP_FOR_70_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(71, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_71, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(71, s), p, o, m) +# define MSGPACK_PP_FOR_71_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(72, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_72, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(72, s), p, o, m) +# define MSGPACK_PP_FOR_72_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(73, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_73, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(73, s), p, o, m) +# define MSGPACK_PP_FOR_73_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(74, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_74, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(74, s), p, o, m) +# define MSGPACK_PP_FOR_74_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(75, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_75, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(75, s), p, o, m) +# define MSGPACK_PP_FOR_75_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(76, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_76, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(76, s), p, o, m) +# define MSGPACK_PP_FOR_76_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(77, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_77, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(77, s), p, o, m) +# define MSGPACK_PP_FOR_77_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(78, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_78, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(78, s), p, o, m) +# define MSGPACK_PP_FOR_78_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(79, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_79, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(79, s), p, o, m) +# define MSGPACK_PP_FOR_79_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(80, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_80, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(80, s), p, o, m) +# define MSGPACK_PP_FOR_80_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(81, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_81, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(81, s), p, o, m) +# define MSGPACK_PP_FOR_81_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(82, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_82, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(82, s), p, o, m) +# define MSGPACK_PP_FOR_82_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(83, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_83, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(83, s), p, o, m) +# define MSGPACK_PP_FOR_83_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(84, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_84, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(84, s), p, o, m) +# define MSGPACK_PP_FOR_84_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(85, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_85, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(85, s), p, o, m) +# define MSGPACK_PP_FOR_85_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(86, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_86, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(86, s), p, o, m) +# define MSGPACK_PP_FOR_86_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(87, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_87, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(87, s), p, o, m) +# define MSGPACK_PP_FOR_87_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(88, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_88, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(88, s), p, o, m) +# define MSGPACK_PP_FOR_88_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(89, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_89, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(89, s), p, o, m) +# define MSGPACK_PP_FOR_89_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(90, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_90, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(90, s), p, o, m) +# define MSGPACK_PP_FOR_90_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(91, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_91, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(91, s), p, o, m) +# define MSGPACK_PP_FOR_91_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(92, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_92, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(92, s), p, o, m) +# define MSGPACK_PP_FOR_92_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(93, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_93, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(93, s), p, o, m) +# define MSGPACK_PP_FOR_93_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(94, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_94, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(94, s), p, o, m) +# define MSGPACK_PP_FOR_94_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(95, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_95, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(95, s), p, o, m) +# define MSGPACK_PP_FOR_95_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(96, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_96, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(96, s), p, o, m) +# define MSGPACK_PP_FOR_96_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(97, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_97, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(97, s), p, o, m) +# define MSGPACK_PP_FOR_97_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(98, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_98, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(98, s), p, o, m) +# define MSGPACK_PP_FOR_98_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(99, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_99, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(99, s), p, o, m) +# define MSGPACK_PP_FOR_99_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(100, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_100, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(100, s), p, o, m) +# define MSGPACK_PP_FOR_100_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(101, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_101, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(101, s), p, o, m) +# define MSGPACK_PP_FOR_101_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(102, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_102, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(102, s), p, o, m) +# define MSGPACK_PP_FOR_102_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(103, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_103, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(103, s), p, o, m) +# define MSGPACK_PP_FOR_103_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(104, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_104, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(104, s), p, o, m) +# define MSGPACK_PP_FOR_104_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(105, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_105, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(105, s), p, o, m) +# define MSGPACK_PP_FOR_105_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(106, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_106, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(106, s), p, o, m) +# define MSGPACK_PP_FOR_106_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(107, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_107, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(107, s), p, o, m) +# define MSGPACK_PP_FOR_107_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(108, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_108, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(108, s), p, o, m) +# define MSGPACK_PP_FOR_108_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(109, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_109, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(109, s), p, o, m) +# define MSGPACK_PP_FOR_109_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(110, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_110, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(110, s), p, o, m) +# define MSGPACK_PP_FOR_110_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(111, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_111, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(111, s), p, o, m) +# define MSGPACK_PP_FOR_111_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(112, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_112, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(112, s), p, o, m) +# define MSGPACK_PP_FOR_112_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(113, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_113, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(113, s), p, o, m) +# define MSGPACK_PP_FOR_113_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(114, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_114, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(114, s), p, o, m) +# define MSGPACK_PP_FOR_114_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(115, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_115, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(115, s), p, o, m) +# define MSGPACK_PP_FOR_115_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(116, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_116, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(116, s), p, o, m) +# define MSGPACK_PP_FOR_116_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(117, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_117, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(117, s), p, o, m) +# define MSGPACK_PP_FOR_117_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(118, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_118, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(118, s), p, o, m) +# define MSGPACK_PP_FOR_118_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(119, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_119, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(119, s), p, o, m) +# define MSGPACK_PP_FOR_119_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(120, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_120, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(120, s), p, o, m) +# define MSGPACK_PP_FOR_120_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(121, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_121, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(121, s), p, o, m) +# define MSGPACK_PP_FOR_121_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(122, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_122, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(122, s), p, o, m) +# define MSGPACK_PP_FOR_122_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(123, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_123, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(123, s), p, o, m) +# define MSGPACK_PP_FOR_123_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(124, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_124, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(124, s), p, o, m) +# define MSGPACK_PP_FOR_124_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(125, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_125, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(125, s), p, o, m) +# define MSGPACK_PP_FOR_125_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(126, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_126, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(126, s), p, o, m) +# define MSGPACK_PP_FOR_126_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(127, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_127, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(127, s), p, o, m) +# define MSGPACK_PP_FOR_127_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(128, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_128, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(128, s), p, o, m) +# define MSGPACK_PP_FOR_128_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(129, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_129, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(129, s), p, o, m) +# define MSGPACK_PP_FOR_129_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(130, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_130, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(130, s), p, o, m) +# define MSGPACK_PP_FOR_130_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(131, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_131, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(131, s), p, o, m) +# define MSGPACK_PP_FOR_131_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(132, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_132, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(132, s), p, o, m) +# define MSGPACK_PP_FOR_132_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(133, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_133, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(133, s), p, o, m) +# define MSGPACK_PP_FOR_133_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(134, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_134, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(134, s), p, o, m) +# define MSGPACK_PP_FOR_134_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(135, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_135, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(135, s), p, o, m) +# define MSGPACK_PP_FOR_135_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(136, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_136, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(136, s), p, o, m) +# define MSGPACK_PP_FOR_136_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(137, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_137, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(137, s), p, o, m) +# define MSGPACK_PP_FOR_137_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(138, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_138, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(138, s), p, o, m) +# define MSGPACK_PP_FOR_138_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(139, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_139, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(139, s), p, o, m) +# define MSGPACK_PP_FOR_139_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(140, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_140, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(140, s), p, o, m) +# define MSGPACK_PP_FOR_140_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(141, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_141, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(141, s), p, o, m) +# define MSGPACK_PP_FOR_141_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(142, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_142, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(142, s), p, o, m) +# define MSGPACK_PP_FOR_142_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(143, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_143, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(143, s), p, o, m) +# define MSGPACK_PP_FOR_143_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(144, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_144, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(144, s), p, o, m) +# define MSGPACK_PP_FOR_144_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(145, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_145, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(145, s), p, o, m) +# define MSGPACK_PP_FOR_145_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(146, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_146, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(146, s), p, o, m) +# define MSGPACK_PP_FOR_146_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(147, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_147, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(147, s), p, o, m) +# define MSGPACK_PP_FOR_147_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(148, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_148, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(148, s), p, o, m) +# define MSGPACK_PP_FOR_148_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(149, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_149, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(149, s), p, o, m) +# define MSGPACK_PP_FOR_149_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(150, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_150, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(150, s), p, o, m) +# define MSGPACK_PP_FOR_150_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(151, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_151, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(151, s), p, o, m) +# define MSGPACK_PP_FOR_151_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(152, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_152, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(152, s), p, o, m) +# define MSGPACK_PP_FOR_152_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(153, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_153, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(153, s), p, o, m) +# define MSGPACK_PP_FOR_153_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(154, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_154, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(154, s), p, o, m) +# define MSGPACK_PP_FOR_154_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(155, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_155, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(155, s), p, o, m) +# define MSGPACK_PP_FOR_155_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(156, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_156, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(156, s), p, o, m) +# define MSGPACK_PP_FOR_156_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(157, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_157, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(157, s), p, o, m) +# define MSGPACK_PP_FOR_157_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(158, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_158, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(158, s), p, o, m) +# define MSGPACK_PP_FOR_158_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(159, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_159, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(159, s), p, o, m) +# define MSGPACK_PP_FOR_159_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(160, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_160, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(160, s), p, o, m) +# define MSGPACK_PP_FOR_160_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(161, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_161, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(161, s), p, o, m) +# define MSGPACK_PP_FOR_161_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(162, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_162, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(162, s), p, o, m) +# define MSGPACK_PP_FOR_162_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(163, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_163, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(163, s), p, o, m) +# define MSGPACK_PP_FOR_163_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(164, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_164, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(164, s), p, o, m) +# define MSGPACK_PP_FOR_164_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(165, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_165, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(165, s), p, o, m) +# define MSGPACK_PP_FOR_165_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(166, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_166, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(166, s), p, o, m) +# define MSGPACK_PP_FOR_166_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(167, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_167, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(167, s), p, o, m) +# define MSGPACK_PP_FOR_167_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(168, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_168, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(168, s), p, o, m) +# define MSGPACK_PP_FOR_168_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(169, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_169, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(169, s), p, o, m) +# define MSGPACK_PP_FOR_169_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(170, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_170, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(170, s), p, o, m) +# define MSGPACK_PP_FOR_170_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(171, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_171, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(171, s), p, o, m) +# define MSGPACK_PP_FOR_171_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(172, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_172, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(172, s), p, o, m) +# define MSGPACK_PP_FOR_172_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(173, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_173, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(173, s), p, o, m) +# define MSGPACK_PP_FOR_173_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(174, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_174, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(174, s), p, o, m) +# define MSGPACK_PP_FOR_174_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(175, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_175, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(175, s), p, o, m) +# define MSGPACK_PP_FOR_175_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(176, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_176, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(176, s), p, o, m) +# define MSGPACK_PP_FOR_176_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(177, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_177, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(177, s), p, o, m) +# define MSGPACK_PP_FOR_177_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(178, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_178, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(178, s), p, o, m) +# define MSGPACK_PP_FOR_178_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(179, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_179, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(179, s), p, o, m) +# define MSGPACK_PP_FOR_179_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(180, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_180, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(180, s), p, o, m) +# define MSGPACK_PP_FOR_180_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(181, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_181, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(181, s), p, o, m) +# define MSGPACK_PP_FOR_181_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(182, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_182, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(182, s), p, o, m) +# define MSGPACK_PP_FOR_182_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(183, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_183, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(183, s), p, o, m) +# define MSGPACK_PP_FOR_183_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(184, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_184, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(184, s), p, o, m) +# define MSGPACK_PP_FOR_184_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(185, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_185, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(185, s), p, o, m) +# define MSGPACK_PP_FOR_185_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(186, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_186, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(186, s), p, o, m) +# define MSGPACK_PP_FOR_186_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(187, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_187, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(187, s), p, o, m) +# define MSGPACK_PP_FOR_187_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(188, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_188, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(188, s), p, o, m) +# define MSGPACK_PP_FOR_188_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(189, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_189, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(189, s), p, o, m) +# define MSGPACK_PP_FOR_189_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(190, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_190, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(190, s), p, o, m) +# define MSGPACK_PP_FOR_190_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(191, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_191, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(191, s), p, o, m) +# define MSGPACK_PP_FOR_191_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(192, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_192, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(192, s), p, o, m) +# define MSGPACK_PP_FOR_192_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(193, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_193, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(193, s), p, o, m) +# define MSGPACK_PP_FOR_193_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(194, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_194, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(194, s), p, o, m) +# define MSGPACK_PP_FOR_194_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(195, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_195, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(195, s), p, o, m) +# define MSGPACK_PP_FOR_195_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(196, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_196, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(196, s), p, o, m) +# define MSGPACK_PP_FOR_196_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(197, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_197, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(197, s), p, o, m) +# define MSGPACK_PP_FOR_197_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(198, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_198, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(198, s), p, o, m) +# define MSGPACK_PP_FOR_198_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(199, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_199, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(199, s), p, o, m) +# define MSGPACK_PP_FOR_199_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(200, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_200, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(200, s), p, o, m) +# define MSGPACK_PP_FOR_200_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(201, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_201, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(201, s), p, o, m) +# define MSGPACK_PP_FOR_201_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(202, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_202, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(202, s), p, o, m) +# define MSGPACK_PP_FOR_202_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(203, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_203, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(203, s), p, o, m) +# define MSGPACK_PP_FOR_203_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(204, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_204, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(204, s), p, o, m) +# define MSGPACK_PP_FOR_204_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(205, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_205, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(205, s), p, o, m) +# define MSGPACK_PP_FOR_205_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(206, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_206, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(206, s), p, o, m) +# define MSGPACK_PP_FOR_206_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(207, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_207, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(207, s), p, o, m) +# define MSGPACK_PP_FOR_207_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(208, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_208, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(208, s), p, o, m) +# define MSGPACK_PP_FOR_208_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(209, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_209, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(209, s), p, o, m) +# define MSGPACK_PP_FOR_209_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(210, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_210, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(210, s), p, o, m) +# define MSGPACK_PP_FOR_210_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(211, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_211, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(211, s), p, o, m) +# define MSGPACK_PP_FOR_211_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(212, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_212, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(212, s), p, o, m) +# define MSGPACK_PP_FOR_212_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(213, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_213, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(213, s), p, o, m) +# define MSGPACK_PP_FOR_213_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(214, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_214, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(214, s), p, o, m) +# define MSGPACK_PP_FOR_214_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(215, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_215, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(215, s), p, o, m) +# define MSGPACK_PP_FOR_215_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(216, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_216, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(216, s), p, o, m) +# define MSGPACK_PP_FOR_216_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(217, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_217, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(217, s), p, o, m) +# define MSGPACK_PP_FOR_217_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(218, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_218, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(218, s), p, o, m) +# define MSGPACK_PP_FOR_218_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(219, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_219, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(219, s), p, o, m) +# define MSGPACK_PP_FOR_219_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(220, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_220, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(220, s), p, o, m) +# define MSGPACK_PP_FOR_220_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(221, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_221, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(221, s), p, o, m) +# define MSGPACK_PP_FOR_221_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(222, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_222, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(222, s), p, o, m) +# define MSGPACK_PP_FOR_222_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(223, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_223, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(223, s), p, o, m) +# define MSGPACK_PP_FOR_223_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(224, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_224, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(224, s), p, o, m) +# define MSGPACK_PP_FOR_224_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(225, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_225, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(225, s), p, o, m) +# define MSGPACK_PP_FOR_225_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(226, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_226, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(226, s), p, o, m) +# define MSGPACK_PP_FOR_226_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(227, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_227, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(227, s), p, o, m) +# define MSGPACK_PP_FOR_227_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(228, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_228, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(228, s), p, o, m) +# define MSGPACK_PP_FOR_228_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(229, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_229, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(229, s), p, o, m) +# define MSGPACK_PP_FOR_229_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(230, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_230, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(230, s), p, o, m) +# define MSGPACK_PP_FOR_230_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(231, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_231, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(231, s), p, o, m) +# define MSGPACK_PP_FOR_231_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(232, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_232, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(232, s), p, o, m) +# define MSGPACK_PP_FOR_232_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(233, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_233, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(233, s), p, o, m) +# define MSGPACK_PP_FOR_233_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(234, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_234, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(234, s), p, o, m) +# define MSGPACK_PP_FOR_234_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(235, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_235, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(235, s), p, o, m) +# define MSGPACK_PP_FOR_235_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(236, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_236, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(236, s), p, o, m) +# define MSGPACK_PP_FOR_236_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(237, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_237, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(237, s), p, o, m) +# define MSGPACK_PP_FOR_237_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(238, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_238, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(238, s), p, o, m) +# define MSGPACK_PP_FOR_238_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(239, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_239, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(239, s), p, o, m) +# define MSGPACK_PP_FOR_239_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(240, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_240, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(240, s), p, o, m) +# define MSGPACK_PP_FOR_240_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(241, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_241, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(241, s), p, o, m) +# define MSGPACK_PP_FOR_241_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(242, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_242, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(242, s), p, o, m) +# define MSGPACK_PP_FOR_242_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(243, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_243, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(243, s), p, o, m) +# define MSGPACK_PP_FOR_243_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(244, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_244, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(244, s), p, o, m) +# define MSGPACK_PP_FOR_244_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(245, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_245, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(245, s), p, o, m) +# define MSGPACK_PP_FOR_245_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(246, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_246, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(246, s), p, o, m) +# define MSGPACK_PP_FOR_246_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(247, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_247, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(247, s), p, o, m) +# define MSGPACK_PP_FOR_247_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(248, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_248, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(248, s), p, o, m) +# define MSGPACK_PP_FOR_248_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(249, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_249, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(249, s), p, o, m) +# define MSGPACK_PP_FOR_249_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(250, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_250, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(250, s), p, o, m) +# define MSGPACK_PP_FOR_250_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(251, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_251, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(251, s), p, o, m) +# define MSGPACK_PP_FOR_251_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(252, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_252, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(252, s), p, o, m) +# define MSGPACK_PP_FOR_252_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(253, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_253, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(253, s), p, o, m) +# define MSGPACK_PP_FOR_253_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(254, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_254, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(254, s), p, o, m) +# define MSGPACK_PP_FOR_254_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(255, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_255, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(255, s), p, o, m) +# define MSGPACK_PP_FOR_255_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(256, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_256, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(256, s), p, o, m) +# define MSGPACK_PP_FOR_256_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(257, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_257, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(257, s), p, o, m) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/detail/edg/for.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/detail/edg/for.hpp new file mode 100644 index 000000000000..b9a510f6c6c0 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/detail/edg/for.hpp @@ -0,0 +1,534 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_DETAIL_EDG_FOR_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_DETAIL_EDG_FOR_HPP +# +# include +# include +# +# define MSGPACK_PP_FOR_1(s, p, o, m) MSGPACK_PP_FOR_1_I(s, p, o, m) +# define MSGPACK_PP_FOR_2(s, p, o, m) MSGPACK_PP_FOR_2_I(s, p, o, m) +# define MSGPACK_PP_FOR_3(s, p, o, m) MSGPACK_PP_FOR_3_I(s, p, o, m) +# define MSGPACK_PP_FOR_4(s, p, o, m) MSGPACK_PP_FOR_4_I(s, p, o, m) +# define MSGPACK_PP_FOR_5(s, p, o, m) MSGPACK_PP_FOR_5_I(s, p, o, m) +# define MSGPACK_PP_FOR_6(s, p, o, m) MSGPACK_PP_FOR_6_I(s, p, o, m) +# define MSGPACK_PP_FOR_7(s, p, o, m) MSGPACK_PP_FOR_7_I(s, p, o, m) +# define MSGPACK_PP_FOR_8(s, p, o, m) MSGPACK_PP_FOR_8_I(s, p, o, m) +# define MSGPACK_PP_FOR_9(s, p, o, m) MSGPACK_PP_FOR_9_I(s, p, o, m) +# define MSGPACK_PP_FOR_10(s, p, o, m) MSGPACK_PP_FOR_10_I(s, p, o, m) +# define MSGPACK_PP_FOR_11(s, p, o, m) MSGPACK_PP_FOR_11_I(s, p, o, m) +# define MSGPACK_PP_FOR_12(s, p, o, m) MSGPACK_PP_FOR_12_I(s, p, o, m) +# define MSGPACK_PP_FOR_13(s, p, o, m) MSGPACK_PP_FOR_13_I(s, p, o, m) +# define MSGPACK_PP_FOR_14(s, p, o, m) MSGPACK_PP_FOR_14_I(s, p, o, m) +# define MSGPACK_PP_FOR_15(s, p, o, m) MSGPACK_PP_FOR_15_I(s, p, o, m) +# define MSGPACK_PP_FOR_16(s, p, o, m) MSGPACK_PP_FOR_16_I(s, p, o, m) +# define MSGPACK_PP_FOR_17(s, p, o, m) MSGPACK_PP_FOR_17_I(s, p, o, m) +# define MSGPACK_PP_FOR_18(s, p, o, m) MSGPACK_PP_FOR_18_I(s, p, o, m) +# define MSGPACK_PP_FOR_19(s, p, o, m) MSGPACK_PP_FOR_19_I(s, p, o, m) +# define MSGPACK_PP_FOR_20(s, p, o, m) MSGPACK_PP_FOR_20_I(s, p, o, m) +# define MSGPACK_PP_FOR_21(s, p, o, m) MSGPACK_PP_FOR_21_I(s, p, o, m) +# define MSGPACK_PP_FOR_22(s, p, o, m) MSGPACK_PP_FOR_22_I(s, p, o, m) +# define MSGPACK_PP_FOR_23(s, p, o, m) MSGPACK_PP_FOR_23_I(s, p, o, m) +# define MSGPACK_PP_FOR_24(s, p, o, m) MSGPACK_PP_FOR_24_I(s, p, o, m) +# define MSGPACK_PP_FOR_25(s, p, o, m) MSGPACK_PP_FOR_25_I(s, p, o, m) +# define MSGPACK_PP_FOR_26(s, p, o, m) MSGPACK_PP_FOR_26_I(s, p, o, m) +# define MSGPACK_PP_FOR_27(s, p, o, m) MSGPACK_PP_FOR_27_I(s, p, o, m) +# define MSGPACK_PP_FOR_28(s, p, o, m) MSGPACK_PP_FOR_28_I(s, p, o, m) +# define MSGPACK_PP_FOR_29(s, p, o, m) MSGPACK_PP_FOR_29_I(s, p, o, m) +# define MSGPACK_PP_FOR_30(s, p, o, m) MSGPACK_PP_FOR_30_I(s, p, o, m) +# define MSGPACK_PP_FOR_31(s, p, o, m) MSGPACK_PP_FOR_31_I(s, p, o, m) +# define MSGPACK_PP_FOR_32(s, p, o, m) MSGPACK_PP_FOR_32_I(s, p, o, m) +# define MSGPACK_PP_FOR_33(s, p, o, m) MSGPACK_PP_FOR_33_I(s, p, o, m) +# define MSGPACK_PP_FOR_34(s, p, o, m) MSGPACK_PP_FOR_34_I(s, p, o, m) +# define MSGPACK_PP_FOR_35(s, p, o, m) MSGPACK_PP_FOR_35_I(s, p, o, m) +# define MSGPACK_PP_FOR_36(s, p, o, m) MSGPACK_PP_FOR_36_I(s, p, o, m) +# define MSGPACK_PP_FOR_37(s, p, o, m) MSGPACK_PP_FOR_37_I(s, p, o, m) +# define MSGPACK_PP_FOR_38(s, p, o, m) MSGPACK_PP_FOR_38_I(s, p, o, m) +# define MSGPACK_PP_FOR_39(s, p, o, m) MSGPACK_PP_FOR_39_I(s, p, o, m) +# define MSGPACK_PP_FOR_40(s, p, o, m) MSGPACK_PP_FOR_40_I(s, p, o, m) +# define MSGPACK_PP_FOR_41(s, p, o, m) MSGPACK_PP_FOR_41_I(s, p, o, m) +# define MSGPACK_PP_FOR_42(s, p, o, m) MSGPACK_PP_FOR_42_I(s, p, o, m) +# define MSGPACK_PP_FOR_43(s, p, o, m) MSGPACK_PP_FOR_43_I(s, p, o, m) +# define MSGPACK_PP_FOR_44(s, p, o, m) MSGPACK_PP_FOR_44_I(s, p, o, m) +# define MSGPACK_PP_FOR_45(s, p, o, m) MSGPACK_PP_FOR_45_I(s, p, o, m) +# define MSGPACK_PP_FOR_46(s, p, o, m) MSGPACK_PP_FOR_46_I(s, p, o, m) +# define MSGPACK_PP_FOR_47(s, p, o, m) MSGPACK_PP_FOR_47_I(s, p, o, m) +# define MSGPACK_PP_FOR_48(s, p, o, m) MSGPACK_PP_FOR_48_I(s, p, o, m) +# define MSGPACK_PP_FOR_49(s, p, o, m) MSGPACK_PP_FOR_49_I(s, p, o, m) +# define MSGPACK_PP_FOR_50(s, p, o, m) MSGPACK_PP_FOR_50_I(s, p, o, m) +# define MSGPACK_PP_FOR_51(s, p, o, m) MSGPACK_PP_FOR_51_I(s, p, o, m) +# define MSGPACK_PP_FOR_52(s, p, o, m) MSGPACK_PP_FOR_52_I(s, p, o, m) +# define MSGPACK_PP_FOR_53(s, p, o, m) MSGPACK_PP_FOR_53_I(s, p, o, m) +# define MSGPACK_PP_FOR_54(s, p, o, m) MSGPACK_PP_FOR_54_I(s, p, o, m) +# define MSGPACK_PP_FOR_55(s, p, o, m) MSGPACK_PP_FOR_55_I(s, p, o, m) +# define MSGPACK_PP_FOR_56(s, p, o, m) MSGPACK_PP_FOR_56_I(s, p, o, m) +# define MSGPACK_PP_FOR_57(s, p, o, m) MSGPACK_PP_FOR_57_I(s, p, o, m) +# define MSGPACK_PP_FOR_58(s, p, o, m) MSGPACK_PP_FOR_58_I(s, p, o, m) +# define MSGPACK_PP_FOR_59(s, p, o, m) MSGPACK_PP_FOR_59_I(s, p, o, m) +# define MSGPACK_PP_FOR_60(s, p, o, m) MSGPACK_PP_FOR_60_I(s, p, o, m) +# define MSGPACK_PP_FOR_61(s, p, o, m) MSGPACK_PP_FOR_61_I(s, p, o, m) +# define MSGPACK_PP_FOR_62(s, p, o, m) MSGPACK_PP_FOR_62_I(s, p, o, m) +# define MSGPACK_PP_FOR_63(s, p, o, m) MSGPACK_PP_FOR_63_I(s, p, o, m) +# define MSGPACK_PP_FOR_64(s, p, o, m) MSGPACK_PP_FOR_64_I(s, p, o, m) +# define MSGPACK_PP_FOR_65(s, p, o, m) MSGPACK_PP_FOR_65_I(s, p, o, m) +# define MSGPACK_PP_FOR_66(s, p, o, m) MSGPACK_PP_FOR_66_I(s, p, o, m) +# define MSGPACK_PP_FOR_67(s, p, o, m) MSGPACK_PP_FOR_67_I(s, p, o, m) +# define MSGPACK_PP_FOR_68(s, p, o, m) MSGPACK_PP_FOR_68_I(s, p, o, m) +# define MSGPACK_PP_FOR_69(s, p, o, m) MSGPACK_PP_FOR_69_I(s, p, o, m) +# define MSGPACK_PP_FOR_70(s, p, o, m) MSGPACK_PP_FOR_70_I(s, p, o, m) +# define MSGPACK_PP_FOR_71(s, p, o, m) MSGPACK_PP_FOR_71_I(s, p, o, m) +# define MSGPACK_PP_FOR_72(s, p, o, m) MSGPACK_PP_FOR_72_I(s, p, o, m) +# define MSGPACK_PP_FOR_73(s, p, o, m) MSGPACK_PP_FOR_73_I(s, p, o, m) +# define MSGPACK_PP_FOR_74(s, p, o, m) MSGPACK_PP_FOR_74_I(s, p, o, m) +# define MSGPACK_PP_FOR_75(s, p, o, m) MSGPACK_PP_FOR_75_I(s, p, o, m) +# define MSGPACK_PP_FOR_76(s, p, o, m) MSGPACK_PP_FOR_76_I(s, p, o, m) +# define MSGPACK_PP_FOR_77(s, p, o, m) MSGPACK_PP_FOR_77_I(s, p, o, m) +# define MSGPACK_PP_FOR_78(s, p, o, m) MSGPACK_PP_FOR_78_I(s, p, o, m) +# define MSGPACK_PP_FOR_79(s, p, o, m) MSGPACK_PP_FOR_79_I(s, p, o, m) +# define MSGPACK_PP_FOR_80(s, p, o, m) MSGPACK_PP_FOR_80_I(s, p, o, m) +# define MSGPACK_PP_FOR_81(s, p, o, m) MSGPACK_PP_FOR_81_I(s, p, o, m) +# define MSGPACK_PP_FOR_82(s, p, o, m) MSGPACK_PP_FOR_82_I(s, p, o, m) +# define MSGPACK_PP_FOR_83(s, p, o, m) MSGPACK_PP_FOR_83_I(s, p, o, m) +# define MSGPACK_PP_FOR_84(s, p, o, m) MSGPACK_PP_FOR_84_I(s, p, o, m) +# define MSGPACK_PP_FOR_85(s, p, o, m) MSGPACK_PP_FOR_85_I(s, p, o, m) +# define MSGPACK_PP_FOR_86(s, p, o, m) MSGPACK_PP_FOR_86_I(s, p, o, m) +# define MSGPACK_PP_FOR_87(s, p, o, m) MSGPACK_PP_FOR_87_I(s, p, o, m) +# define MSGPACK_PP_FOR_88(s, p, o, m) MSGPACK_PP_FOR_88_I(s, p, o, m) +# define MSGPACK_PP_FOR_89(s, p, o, m) MSGPACK_PP_FOR_89_I(s, p, o, m) +# define MSGPACK_PP_FOR_90(s, p, o, m) MSGPACK_PP_FOR_90_I(s, p, o, m) +# define MSGPACK_PP_FOR_91(s, p, o, m) MSGPACK_PP_FOR_91_I(s, p, o, m) +# define MSGPACK_PP_FOR_92(s, p, o, m) MSGPACK_PP_FOR_92_I(s, p, o, m) +# define MSGPACK_PP_FOR_93(s, p, o, m) MSGPACK_PP_FOR_93_I(s, p, o, m) +# define MSGPACK_PP_FOR_94(s, p, o, m) MSGPACK_PP_FOR_94_I(s, p, o, m) +# define MSGPACK_PP_FOR_95(s, p, o, m) MSGPACK_PP_FOR_95_I(s, p, o, m) +# define MSGPACK_PP_FOR_96(s, p, o, m) MSGPACK_PP_FOR_96_I(s, p, o, m) +# define MSGPACK_PP_FOR_97(s, p, o, m) MSGPACK_PP_FOR_97_I(s, p, o, m) +# define MSGPACK_PP_FOR_98(s, p, o, m) MSGPACK_PP_FOR_98_I(s, p, o, m) +# define MSGPACK_PP_FOR_99(s, p, o, m) MSGPACK_PP_FOR_99_I(s, p, o, m) +# define MSGPACK_PP_FOR_100(s, p, o, m) MSGPACK_PP_FOR_100_I(s, p, o, m) +# define MSGPACK_PP_FOR_101(s, p, o, m) MSGPACK_PP_FOR_101_I(s, p, o, m) +# define MSGPACK_PP_FOR_102(s, p, o, m) MSGPACK_PP_FOR_102_I(s, p, o, m) +# define MSGPACK_PP_FOR_103(s, p, o, m) MSGPACK_PP_FOR_103_I(s, p, o, m) +# define MSGPACK_PP_FOR_104(s, p, o, m) MSGPACK_PP_FOR_104_I(s, p, o, m) +# define MSGPACK_PP_FOR_105(s, p, o, m) MSGPACK_PP_FOR_105_I(s, p, o, m) +# define MSGPACK_PP_FOR_106(s, p, o, m) MSGPACK_PP_FOR_106_I(s, p, o, m) +# define MSGPACK_PP_FOR_107(s, p, o, m) MSGPACK_PP_FOR_107_I(s, p, o, m) +# define MSGPACK_PP_FOR_108(s, p, o, m) MSGPACK_PP_FOR_108_I(s, p, o, m) +# define MSGPACK_PP_FOR_109(s, p, o, m) MSGPACK_PP_FOR_109_I(s, p, o, m) +# define MSGPACK_PP_FOR_110(s, p, o, m) MSGPACK_PP_FOR_110_I(s, p, o, m) +# define MSGPACK_PP_FOR_111(s, p, o, m) MSGPACK_PP_FOR_111_I(s, p, o, m) +# define MSGPACK_PP_FOR_112(s, p, o, m) MSGPACK_PP_FOR_112_I(s, p, o, m) +# define MSGPACK_PP_FOR_113(s, p, o, m) MSGPACK_PP_FOR_113_I(s, p, o, m) +# define MSGPACK_PP_FOR_114(s, p, o, m) MSGPACK_PP_FOR_114_I(s, p, o, m) +# define MSGPACK_PP_FOR_115(s, p, o, m) MSGPACK_PP_FOR_115_I(s, p, o, m) +# define MSGPACK_PP_FOR_116(s, p, o, m) MSGPACK_PP_FOR_116_I(s, p, o, m) +# define MSGPACK_PP_FOR_117(s, p, o, m) MSGPACK_PP_FOR_117_I(s, p, o, m) +# define MSGPACK_PP_FOR_118(s, p, o, m) MSGPACK_PP_FOR_118_I(s, p, o, m) +# define MSGPACK_PP_FOR_119(s, p, o, m) MSGPACK_PP_FOR_119_I(s, p, o, m) +# define MSGPACK_PP_FOR_120(s, p, o, m) MSGPACK_PP_FOR_120_I(s, p, o, m) +# define MSGPACK_PP_FOR_121(s, p, o, m) MSGPACK_PP_FOR_121_I(s, p, o, m) +# define MSGPACK_PP_FOR_122(s, p, o, m) MSGPACK_PP_FOR_122_I(s, p, o, m) +# define MSGPACK_PP_FOR_123(s, p, o, m) MSGPACK_PP_FOR_123_I(s, p, o, m) +# define MSGPACK_PP_FOR_124(s, p, o, m) MSGPACK_PP_FOR_124_I(s, p, o, m) +# define MSGPACK_PP_FOR_125(s, p, o, m) MSGPACK_PP_FOR_125_I(s, p, o, m) +# define MSGPACK_PP_FOR_126(s, p, o, m) MSGPACK_PP_FOR_126_I(s, p, o, m) +# define MSGPACK_PP_FOR_127(s, p, o, m) MSGPACK_PP_FOR_127_I(s, p, o, m) +# define MSGPACK_PP_FOR_128(s, p, o, m) MSGPACK_PP_FOR_128_I(s, p, o, m) +# define MSGPACK_PP_FOR_129(s, p, o, m) MSGPACK_PP_FOR_129_I(s, p, o, m) +# define MSGPACK_PP_FOR_130(s, p, o, m) MSGPACK_PP_FOR_130_I(s, p, o, m) +# define MSGPACK_PP_FOR_131(s, p, o, m) MSGPACK_PP_FOR_131_I(s, p, o, m) +# define MSGPACK_PP_FOR_132(s, p, o, m) MSGPACK_PP_FOR_132_I(s, p, o, m) +# define MSGPACK_PP_FOR_133(s, p, o, m) MSGPACK_PP_FOR_133_I(s, p, o, m) +# define MSGPACK_PP_FOR_134(s, p, o, m) MSGPACK_PP_FOR_134_I(s, p, o, m) +# define MSGPACK_PP_FOR_135(s, p, o, m) MSGPACK_PP_FOR_135_I(s, p, o, m) +# define MSGPACK_PP_FOR_136(s, p, o, m) MSGPACK_PP_FOR_136_I(s, p, o, m) +# define MSGPACK_PP_FOR_137(s, p, o, m) MSGPACK_PP_FOR_137_I(s, p, o, m) +# define MSGPACK_PP_FOR_138(s, p, o, m) MSGPACK_PP_FOR_138_I(s, p, o, m) +# define MSGPACK_PP_FOR_139(s, p, o, m) MSGPACK_PP_FOR_139_I(s, p, o, m) +# define MSGPACK_PP_FOR_140(s, p, o, m) MSGPACK_PP_FOR_140_I(s, p, o, m) +# define MSGPACK_PP_FOR_141(s, p, o, m) MSGPACK_PP_FOR_141_I(s, p, o, m) +# define MSGPACK_PP_FOR_142(s, p, o, m) MSGPACK_PP_FOR_142_I(s, p, o, m) +# define MSGPACK_PP_FOR_143(s, p, o, m) MSGPACK_PP_FOR_143_I(s, p, o, m) +# define MSGPACK_PP_FOR_144(s, p, o, m) MSGPACK_PP_FOR_144_I(s, p, o, m) +# define MSGPACK_PP_FOR_145(s, p, o, m) MSGPACK_PP_FOR_145_I(s, p, o, m) +# define MSGPACK_PP_FOR_146(s, p, o, m) MSGPACK_PP_FOR_146_I(s, p, o, m) +# define MSGPACK_PP_FOR_147(s, p, o, m) MSGPACK_PP_FOR_147_I(s, p, o, m) +# define MSGPACK_PP_FOR_148(s, p, o, m) MSGPACK_PP_FOR_148_I(s, p, o, m) +# define MSGPACK_PP_FOR_149(s, p, o, m) MSGPACK_PP_FOR_149_I(s, p, o, m) +# define MSGPACK_PP_FOR_150(s, p, o, m) MSGPACK_PP_FOR_150_I(s, p, o, m) +# define MSGPACK_PP_FOR_151(s, p, o, m) MSGPACK_PP_FOR_151_I(s, p, o, m) +# define MSGPACK_PP_FOR_152(s, p, o, m) MSGPACK_PP_FOR_152_I(s, p, o, m) +# define MSGPACK_PP_FOR_153(s, p, o, m) MSGPACK_PP_FOR_153_I(s, p, o, m) +# define MSGPACK_PP_FOR_154(s, p, o, m) MSGPACK_PP_FOR_154_I(s, p, o, m) +# define MSGPACK_PP_FOR_155(s, p, o, m) MSGPACK_PP_FOR_155_I(s, p, o, m) +# define MSGPACK_PP_FOR_156(s, p, o, m) MSGPACK_PP_FOR_156_I(s, p, o, m) +# define MSGPACK_PP_FOR_157(s, p, o, m) MSGPACK_PP_FOR_157_I(s, p, o, m) +# define MSGPACK_PP_FOR_158(s, p, o, m) MSGPACK_PP_FOR_158_I(s, p, o, m) +# define MSGPACK_PP_FOR_159(s, p, o, m) MSGPACK_PP_FOR_159_I(s, p, o, m) +# define MSGPACK_PP_FOR_160(s, p, o, m) MSGPACK_PP_FOR_160_I(s, p, o, m) +# define MSGPACK_PP_FOR_161(s, p, o, m) MSGPACK_PP_FOR_161_I(s, p, o, m) +# define MSGPACK_PP_FOR_162(s, p, o, m) MSGPACK_PP_FOR_162_I(s, p, o, m) +# define MSGPACK_PP_FOR_163(s, p, o, m) MSGPACK_PP_FOR_163_I(s, p, o, m) +# define MSGPACK_PP_FOR_164(s, p, o, m) MSGPACK_PP_FOR_164_I(s, p, o, m) +# define MSGPACK_PP_FOR_165(s, p, o, m) MSGPACK_PP_FOR_165_I(s, p, o, m) +# define MSGPACK_PP_FOR_166(s, p, o, m) MSGPACK_PP_FOR_166_I(s, p, o, m) +# define MSGPACK_PP_FOR_167(s, p, o, m) MSGPACK_PP_FOR_167_I(s, p, o, m) +# define MSGPACK_PP_FOR_168(s, p, o, m) MSGPACK_PP_FOR_168_I(s, p, o, m) +# define MSGPACK_PP_FOR_169(s, p, o, m) MSGPACK_PP_FOR_169_I(s, p, o, m) +# define MSGPACK_PP_FOR_170(s, p, o, m) MSGPACK_PP_FOR_170_I(s, p, o, m) +# define MSGPACK_PP_FOR_171(s, p, o, m) MSGPACK_PP_FOR_171_I(s, p, o, m) +# define MSGPACK_PP_FOR_172(s, p, o, m) MSGPACK_PP_FOR_172_I(s, p, o, m) +# define MSGPACK_PP_FOR_173(s, p, o, m) MSGPACK_PP_FOR_173_I(s, p, o, m) +# define MSGPACK_PP_FOR_174(s, p, o, m) MSGPACK_PP_FOR_174_I(s, p, o, m) +# define MSGPACK_PP_FOR_175(s, p, o, m) MSGPACK_PP_FOR_175_I(s, p, o, m) +# define MSGPACK_PP_FOR_176(s, p, o, m) MSGPACK_PP_FOR_176_I(s, p, o, m) +# define MSGPACK_PP_FOR_177(s, p, o, m) MSGPACK_PP_FOR_177_I(s, p, o, m) +# define MSGPACK_PP_FOR_178(s, p, o, m) MSGPACK_PP_FOR_178_I(s, p, o, m) +# define MSGPACK_PP_FOR_179(s, p, o, m) MSGPACK_PP_FOR_179_I(s, p, o, m) +# define MSGPACK_PP_FOR_180(s, p, o, m) MSGPACK_PP_FOR_180_I(s, p, o, m) +# define MSGPACK_PP_FOR_181(s, p, o, m) MSGPACK_PP_FOR_181_I(s, p, o, m) +# define MSGPACK_PP_FOR_182(s, p, o, m) MSGPACK_PP_FOR_182_I(s, p, o, m) +# define MSGPACK_PP_FOR_183(s, p, o, m) MSGPACK_PP_FOR_183_I(s, p, o, m) +# define MSGPACK_PP_FOR_184(s, p, o, m) MSGPACK_PP_FOR_184_I(s, p, o, m) +# define MSGPACK_PP_FOR_185(s, p, o, m) MSGPACK_PP_FOR_185_I(s, p, o, m) +# define MSGPACK_PP_FOR_186(s, p, o, m) MSGPACK_PP_FOR_186_I(s, p, o, m) +# define MSGPACK_PP_FOR_187(s, p, o, m) MSGPACK_PP_FOR_187_I(s, p, o, m) +# define MSGPACK_PP_FOR_188(s, p, o, m) MSGPACK_PP_FOR_188_I(s, p, o, m) +# define MSGPACK_PP_FOR_189(s, p, o, m) MSGPACK_PP_FOR_189_I(s, p, o, m) +# define MSGPACK_PP_FOR_190(s, p, o, m) MSGPACK_PP_FOR_190_I(s, p, o, m) +# define MSGPACK_PP_FOR_191(s, p, o, m) MSGPACK_PP_FOR_191_I(s, p, o, m) +# define MSGPACK_PP_FOR_192(s, p, o, m) MSGPACK_PP_FOR_192_I(s, p, o, m) +# define MSGPACK_PP_FOR_193(s, p, o, m) MSGPACK_PP_FOR_193_I(s, p, o, m) +# define MSGPACK_PP_FOR_194(s, p, o, m) MSGPACK_PP_FOR_194_I(s, p, o, m) +# define MSGPACK_PP_FOR_195(s, p, o, m) MSGPACK_PP_FOR_195_I(s, p, o, m) +# define MSGPACK_PP_FOR_196(s, p, o, m) MSGPACK_PP_FOR_196_I(s, p, o, m) +# define MSGPACK_PP_FOR_197(s, p, o, m) MSGPACK_PP_FOR_197_I(s, p, o, m) +# define MSGPACK_PP_FOR_198(s, p, o, m) MSGPACK_PP_FOR_198_I(s, p, o, m) +# define MSGPACK_PP_FOR_199(s, p, o, m) MSGPACK_PP_FOR_199_I(s, p, o, m) +# define MSGPACK_PP_FOR_200(s, p, o, m) MSGPACK_PP_FOR_200_I(s, p, o, m) +# define MSGPACK_PP_FOR_201(s, p, o, m) MSGPACK_PP_FOR_201_I(s, p, o, m) +# define MSGPACK_PP_FOR_202(s, p, o, m) MSGPACK_PP_FOR_202_I(s, p, o, m) +# define MSGPACK_PP_FOR_203(s, p, o, m) MSGPACK_PP_FOR_203_I(s, p, o, m) +# define MSGPACK_PP_FOR_204(s, p, o, m) MSGPACK_PP_FOR_204_I(s, p, o, m) +# define MSGPACK_PP_FOR_205(s, p, o, m) MSGPACK_PP_FOR_205_I(s, p, o, m) +# define MSGPACK_PP_FOR_206(s, p, o, m) MSGPACK_PP_FOR_206_I(s, p, o, m) +# define MSGPACK_PP_FOR_207(s, p, o, m) MSGPACK_PP_FOR_207_I(s, p, o, m) +# define MSGPACK_PP_FOR_208(s, p, o, m) MSGPACK_PP_FOR_208_I(s, p, o, m) +# define MSGPACK_PP_FOR_209(s, p, o, m) MSGPACK_PP_FOR_209_I(s, p, o, m) +# define MSGPACK_PP_FOR_210(s, p, o, m) MSGPACK_PP_FOR_210_I(s, p, o, m) +# define MSGPACK_PP_FOR_211(s, p, o, m) MSGPACK_PP_FOR_211_I(s, p, o, m) +# define MSGPACK_PP_FOR_212(s, p, o, m) MSGPACK_PP_FOR_212_I(s, p, o, m) +# define MSGPACK_PP_FOR_213(s, p, o, m) MSGPACK_PP_FOR_213_I(s, p, o, m) +# define MSGPACK_PP_FOR_214(s, p, o, m) MSGPACK_PP_FOR_214_I(s, p, o, m) +# define MSGPACK_PP_FOR_215(s, p, o, m) MSGPACK_PP_FOR_215_I(s, p, o, m) +# define MSGPACK_PP_FOR_216(s, p, o, m) MSGPACK_PP_FOR_216_I(s, p, o, m) +# define MSGPACK_PP_FOR_217(s, p, o, m) MSGPACK_PP_FOR_217_I(s, p, o, m) +# define MSGPACK_PP_FOR_218(s, p, o, m) MSGPACK_PP_FOR_218_I(s, p, o, m) +# define MSGPACK_PP_FOR_219(s, p, o, m) MSGPACK_PP_FOR_219_I(s, p, o, m) +# define MSGPACK_PP_FOR_220(s, p, o, m) MSGPACK_PP_FOR_220_I(s, p, o, m) +# define MSGPACK_PP_FOR_221(s, p, o, m) MSGPACK_PP_FOR_221_I(s, p, o, m) +# define MSGPACK_PP_FOR_222(s, p, o, m) MSGPACK_PP_FOR_222_I(s, p, o, m) +# define MSGPACK_PP_FOR_223(s, p, o, m) MSGPACK_PP_FOR_223_I(s, p, o, m) +# define MSGPACK_PP_FOR_224(s, p, o, m) MSGPACK_PP_FOR_224_I(s, p, o, m) +# define MSGPACK_PP_FOR_225(s, p, o, m) MSGPACK_PP_FOR_225_I(s, p, o, m) +# define MSGPACK_PP_FOR_226(s, p, o, m) MSGPACK_PP_FOR_226_I(s, p, o, m) +# define MSGPACK_PP_FOR_227(s, p, o, m) MSGPACK_PP_FOR_227_I(s, p, o, m) +# define MSGPACK_PP_FOR_228(s, p, o, m) MSGPACK_PP_FOR_228_I(s, p, o, m) +# define MSGPACK_PP_FOR_229(s, p, o, m) MSGPACK_PP_FOR_229_I(s, p, o, m) +# define MSGPACK_PP_FOR_230(s, p, o, m) MSGPACK_PP_FOR_230_I(s, p, o, m) +# define MSGPACK_PP_FOR_231(s, p, o, m) MSGPACK_PP_FOR_231_I(s, p, o, m) +# define MSGPACK_PP_FOR_232(s, p, o, m) MSGPACK_PP_FOR_232_I(s, p, o, m) +# define MSGPACK_PP_FOR_233(s, p, o, m) MSGPACK_PP_FOR_233_I(s, p, o, m) +# define MSGPACK_PP_FOR_234(s, p, o, m) MSGPACK_PP_FOR_234_I(s, p, o, m) +# define MSGPACK_PP_FOR_235(s, p, o, m) MSGPACK_PP_FOR_235_I(s, p, o, m) +# define MSGPACK_PP_FOR_236(s, p, o, m) MSGPACK_PP_FOR_236_I(s, p, o, m) +# define MSGPACK_PP_FOR_237(s, p, o, m) MSGPACK_PP_FOR_237_I(s, p, o, m) +# define MSGPACK_PP_FOR_238(s, p, o, m) MSGPACK_PP_FOR_238_I(s, p, o, m) +# define MSGPACK_PP_FOR_239(s, p, o, m) MSGPACK_PP_FOR_239_I(s, p, o, m) +# define MSGPACK_PP_FOR_240(s, p, o, m) MSGPACK_PP_FOR_240_I(s, p, o, m) +# define MSGPACK_PP_FOR_241(s, p, o, m) MSGPACK_PP_FOR_241_I(s, p, o, m) +# define MSGPACK_PP_FOR_242(s, p, o, m) MSGPACK_PP_FOR_242_I(s, p, o, m) +# define MSGPACK_PP_FOR_243(s, p, o, m) MSGPACK_PP_FOR_243_I(s, p, o, m) +# define MSGPACK_PP_FOR_244(s, p, o, m) MSGPACK_PP_FOR_244_I(s, p, o, m) +# define MSGPACK_PP_FOR_245(s, p, o, m) MSGPACK_PP_FOR_245_I(s, p, o, m) +# define MSGPACK_PP_FOR_246(s, p, o, m) MSGPACK_PP_FOR_246_I(s, p, o, m) +# define MSGPACK_PP_FOR_247(s, p, o, m) MSGPACK_PP_FOR_247_I(s, p, o, m) +# define MSGPACK_PP_FOR_248(s, p, o, m) MSGPACK_PP_FOR_248_I(s, p, o, m) +# define MSGPACK_PP_FOR_249(s, p, o, m) MSGPACK_PP_FOR_249_I(s, p, o, m) +# define MSGPACK_PP_FOR_250(s, p, o, m) MSGPACK_PP_FOR_250_I(s, p, o, m) +# define MSGPACK_PP_FOR_251(s, p, o, m) MSGPACK_PP_FOR_251_I(s, p, o, m) +# define MSGPACK_PP_FOR_252(s, p, o, m) MSGPACK_PP_FOR_252_I(s, p, o, m) +# define MSGPACK_PP_FOR_253(s, p, o, m) MSGPACK_PP_FOR_253_I(s, p, o, m) +# define MSGPACK_PP_FOR_254(s, p, o, m) MSGPACK_PP_FOR_254_I(s, p, o, m) +# define MSGPACK_PP_FOR_255(s, p, o, m) MSGPACK_PP_FOR_255_I(s, p, o, m) +# define MSGPACK_PP_FOR_256(s, p, o, m) MSGPACK_PP_FOR_256_I(s, p, o, m) +# +# define MSGPACK_PP_FOR_1_I(s, p, o, m) MSGPACK_PP_IF(p(2, s), m, MSGPACK_PP_TUPLE_EAT_2)(2, s) MSGPACK_PP_IF(p(2, s), MSGPACK_PP_FOR_2, MSGPACK_PP_TUPLE_EAT_4)(o(2, s), p, o, m) +# define MSGPACK_PP_FOR_2_I(s, p, o, m) MSGPACK_PP_IF(p(3, s), m, MSGPACK_PP_TUPLE_EAT_2)(3, s) MSGPACK_PP_IF(p(3, s), MSGPACK_PP_FOR_3, MSGPACK_PP_TUPLE_EAT_4)(o(3, s), p, o, m) +# define MSGPACK_PP_FOR_3_I(s, p, o, m) MSGPACK_PP_IF(p(4, s), m, MSGPACK_PP_TUPLE_EAT_2)(4, s) MSGPACK_PP_IF(p(4, s), MSGPACK_PP_FOR_4, MSGPACK_PP_TUPLE_EAT_4)(o(4, s), p, o, m) +# define MSGPACK_PP_FOR_4_I(s, p, o, m) MSGPACK_PP_IF(p(5, s), m, MSGPACK_PP_TUPLE_EAT_2)(5, s) MSGPACK_PP_IF(p(5, s), MSGPACK_PP_FOR_5, MSGPACK_PP_TUPLE_EAT_4)(o(5, s), p, o, m) +# define MSGPACK_PP_FOR_5_I(s, p, o, m) MSGPACK_PP_IF(p(6, s), m, MSGPACK_PP_TUPLE_EAT_2)(6, s) MSGPACK_PP_IF(p(6, s), MSGPACK_PP_FOR_6, MSGPACK_PP_TUPLE_EAT_4)(o(6, s), p, o, m) +# define MSGPACK_PP_FOR_6_I(s, p, o, m) MSGPACK_PP_IF(p(7, s), m, MSGPACK_PP_TUPLE_EAT_2)(7, s) MSGPACK_PP_IF(p(7, s), MSGPACK_PP_FOR_7, MSGPACK_PP_TUPLE_EAT_4)(o(7, s), p, o, m) +# define MSGPACK_PP_FOR_7_I(s, p, o, m) MSGPACK_PP_IF(p(8, s), m, MSGPACK_PP_TUPLE_EAT_2)(8, s) MSGPACK_PP_IF(p(8, s), MSGPACK_PP_FOR_8, MSGPACK_PP_TUPLE_EAT_4)(o(8, s), p, o, m) +# define MSGPACK_PP_FOR_8_I(s, p, o, m) MSGPACK_PP_IF(p(9, s), m, MSGPACK_PP_TUPLE_EAT_2)(9, s) MSGPACK_PP_IF(p(9, s), MSGPACK_PP_FOR_9, MSGPACK_PP_TUPLE_EAT_4)(o(9, s), p, o, m) +# define MSGPACK_PP_FOR_9_I(s, p, o, m) MSGPACK_PP_IF(p(10, s), m, MSGPACK_PP_TUPLE_EAT_2)(10, s) MSGPACK_PP_IF(p(10, s), MSGPACK_PP_FOR_10, MSGPACK_PP_TUPLE_EAT_4)(o(10, s), p, o, m) +# define MSGPACK_PP_FOR_10_I(s, p, o, m) MSGPACK_PP_IF(p(11, s), m, MSGPACK_PP_TUPLE_EAT_2)(11, s) MSGPACK_PP_IF(p(11, s), MSGPACK_PP_FOR_11, MSGPACK_PP_TUPLE_EAT_4)(o(11, s), p, o, m) +# define MSGPACK_PP_FOR_11_I(s, p, o, m) MSGPACK_PP_IF(p(12, s), m, MSGPACK_PP_TUPLE_EAT_2)(12, s) MSGPACK_PP_IF(p(12, s), MSGPACK_PP_FOR_12, MSGPACK_PP_TUPLE_EAT_4)(o(12, s), p, o, m) +# define MSGPACK_PP_FOR_12_I(s, p, o, m) MSGPACK_PP_IF(p(13, s), m, MSGPACK_PP_TUPLE_EAT_2)(13, s) MSGPACK_PP_IF(p(13, s), MSGPACK_PP_FOR_13, MSGPACK_PP_TUPLE_EAT_4)(o(13, s), p, o, m) +# define MSGPACK_PP_FOR_13_I(s, p, o, m) MSGPACK_PP_IF(p(14, s), m, MSGPACK_PP_TUPLE_EAT_2)(14, s) MSGPACK_PP_IF(p(14, s), MSGPACK_PP_FOR_14, MSGPACK_PP_TUPLE_EAT_4)(o(14, s), p, o, m) +# define MSGPACK_PP_FOR_14_I(s, p, o, m) MSGPACK_PP_IF(p(15, s), m, MSGPACK_PP_TUPLE_EAT_2)(15, s) MSGPACK_PP_IF(p(15, s), MSGPACK_PP_FOR_15, MSGPACK_PP_TUPLE_EAT_4)(o(15, s), p, o, m) +# define MSGPACK_PP_FOR_15_I(s, p, o, m) MSGPACK_PP_IF(p(16, s), m, MSGPACK_PP_TUPLE_EAT_2)(16, s) MSGPACK_PP_IF(p(16, s), MSGPACK_PP_FOR_16, MSGPACK_PP_TUPLE_EAT_4)(o(16, s), p, o, m) +# define MSGPACK_PP_FOR_16_I(s, p, o, m) MSGPACK_PP_IF(p(17, s), m, MSGPACK_PP_TUPLE_EAT_2)(17, s) MSGPACK_PP_IF(p(17, s), MSGPACK_PP_FOR_17, MSGPACK_PP_TUPLE_EAT_4)(o(17, s), p, o, m) +# define MSGPACK_PP_FOR_17_I(s, p, o, m) MSGPACK_PP_IF(p(18, s), m, MSGPACK_PP_TUPLE_EAT_2)(18, s) MSGPACK_PP_IF(p(18, s), MSGPACK_PP_FOR_18, MSGPACK_PP_TUPLE_EAT_4)(o(18, s), p, o, m) +# define MSGPACK_PP_FOR_18_I(s, p, o, m) MSGPACK_PP_IF(p(19, s), m, MSGPACK_PP_TUPLE_EAT_2)(19, s) MSGPACK_PP_IF(p(19, s), MSGPACK_PP_FOR_19, MSGPACK_PP_TUPLE_EAT_4)(o(19, s), p, o, m) +# define MSGPACK_PP_FOR_19_I(s, p, o, m) MSGPACK_PP_IF(p(20, s), m, MSGPACK_PP_TUPLE_EAT_2)(20, s) MSGPACK_PP_IF(p(20, s), MSGPACK_PP_FOR_20, MSGPACK_PP_TUPLE_EAT_4)(o(20, s), p, o, m) +# define MSGPACK_PP_FOR_20_I(s, p, o, m) MSGPACK_PP_IF(p(21, s), m, MSGPACK_PP_TUPLE_EAT_2)(21, s) MSGPACK_PP_IF(p(21, s), MSGPACK_PP_FOR_21, MSGPACK_PP_TUPLE_EAT_4)(o(21, s), p, o, m) +# define MSGPACK_PP_FOR_21_I(s, p, o, m) MSGPACK_PP_IF(p(22, s), m, MSGPACK_PP_TUPLE_EAT_2)(22, s) MSGPACK_PP_IF(p(22, s), MSGPACK_PP_FOR_22, MSGPACK_PP_TUPLE_EAT_4)(o(22, s), p, o, m) +# define MSGPACK_PP_FOR_22_I(s, p, o, m) MSGPACK_PP_IF(p(23, s), m, MSGPACK_PP_TUPLE_EAT_2)(23, s) MSGPACK_PP_IF(p(23, s), MSGPACK_PP_FOR_23, MSGPACK_PP_TUPLE_EAT_4)(o(23, s), p, o, m) +# define MSGPACK_PP_FOR_23_I(s, p, o, m) MSGPACK_PP_IF(p(24, s), m, MSGPACK_PP_TUPLE_EAT_2)(24, s) MSGPACK_PP_IF(p(24, s), MSGPACK_PP_FOR_24, MSGPACK_PP_TUPLE_EAT_4)(o(24, s), p, o, m) +# define MSGPACK_PP_FOR_24_I(s, p, o, m) MSGPACK_PP_IF(p(25, s), m, MSGPACK_PP_TUPLE_EAT_2)(25, s) MSGPACK_PP_IF(p(25, s), MSGPACK_PP_FOR_25, MSGPACK_PP_TUPLE_EAT_4)(o(25, s), p, o, m) +# define MSGPACK_PP_FOR_25_I(s, p, o, m) MSGPACK_PP_IF(p(26, s), m, MSGPACK_PP_TUPLE_EAT_2)(26, s) MSGPACK_PP_IF(p(26, s), MSGPACK_PP_FOR_26, MSGPACK_PP_TUPLE_EAT_4)(o(26, s), p, o, m) +# define MSGPACK_PP_FOR_26_I(s, p, o, m) MSGPACK_PP_IF(p(27, s), m, MSGPACK_PP_TUPLE_EAT_2)(27, s) MSGPACK_PP_IF(p(27, s), MSGPACK_PP_FOR_27, MSGPACK_PP_TUPLE_EAT_4)(o(27, s), p, o, m) +# define MSGPACK_PP_FOR_27_I(s, p, o, m) MSGPACK_PP_IF(p(28, s), m, MSGPACK_PP_TUPLE_EAT_2)(28, s) MSGPACK_PP_IF(p(28, s), MSGPACK_PP_FOR_28, MSGPACK_PP_TUPLE_EAT_4)(o(28, s), p, o, m) +# define MSGPACK_PP_FOR_28_I(s, p, o, m) MSGPACK_PP_IF(p(29, s), m, MSGPACK_PP_TUPLE_EAT_2)(29, s) MSGPACK_PP_IF(p(29, s), MSGPACK_PP_FOR_29, MSGPACK_PP_TUPLE_EAT_4)(o(29, s), p, o, m) +# define MSGPACK_PP_FOR_29_I(s, p, o, m) MSGPACK_PP_IF(p(30, s), m, MSGPACK_PP_TUPLE_EAT_2)(30, s) MSGPACK_PP_IF(p(30, s), MSGPACK_PP_FOR_30, MSGPACK_PP_TUPLE_EAT_4)(o(30, s), p, o, m) +# define MSGPACK_PP_FOR_30_I(s, p, o, m) MSGPACK_PP_IF(p(31, s), m, MSGPACK_PP_TUPLE_EAT_2)(31, s) MSGPACK_PP_IF(p(31, s), MSGPACK_PP_FOR_31, MSGPACK_PP_TUPLE_EAT_4)(o(31, s), p, o, m) +# define MSGPACK_PP_FOR_31_I(s, p, o, m) MSGPACK_PP_IF(p(32, s), m, MSGPACK_PP_TUPLE_EAT_2)(32, s) MSGPACK_PP_IF(p(32, s), MSGPACK_PP_FOR_32, MSGPACK_PP_TUPLE_EAT_4)(o(32, s), p, o, m) +# define MSGPACK_PP_FOR_32_I(s, p, o, m) MSGPACK_PP_IF(p(33, s), m, MSGPACK_PP_TUPLE_EAT_2)(33, s) MSGPACK_PP_IF(p(33, s), MSGPACK_PP_FOR_33, MSGPACK_PP_TUPLE_EAT_4)(o(33, s), p, o, m) +# define MSGPACK_PP_FOR_33_I(s, p, o, m) MSGPACK_PP_IF(p(34, s), m, MSGPACK_PP_TUPLE_EAT_2)(34, s) MSGPACK_PP_IF(p(34, s), MSGPACK_PP_FOR_34, MSGPACK_PP_TUPLE_EAT_4)(o(34, s), p, o, m) +# define MSGPACK_PP_FOR_34_I(s, p, o, m) MSGPACK_PP_IF(p(35, s), m, MSGPACK_PP_TUPLE_EAT_2)(35, s) MSGPACK_PP_IF(p(35, s), MSGPACK_PP_FOR_35, MSGPACK_PP_TUPLE_EAT_4)(o(35, s), p, o, m) +# define MSGPACK_PP_FOR_35_I(s, p, o, m) MSGPACK_PP_IF(p(36, s), m, MSGPACK_PP_TUPLE_EAT_2)(36, s) MSGPACK_PP_IF(p(36, s), MSGPACK_PP_FOR_36, MSGPACK_PP_TUPLE_EAT_4)(o(36, s), p, o, m) +# define MSGPACK_PP_FOR_36_I(s, p, o, m) MSGPACK_PP_IF(p(37, s), m, MSGPACK_PP_TUPLE_EAT_2)(37, s) MSGPACK_PP_IF(p(37, s), MSGPACK_PP_FOR_37, MSGPACK_PP_TUPLE_EAT_4)(o(37, s), p, o, m) +# define MSGPACK_PP_FOR_37_I(s, p, o, m) MSGPACK_PP_IF(p(38, s), m, MSGPACK_PP_TUPLE_EAT_2)(38, s) MSGPACK_PP_IF(p(38, s), MSGPACK_PP_FOR_38, MSGPACK_PP_TUPLE_EAT_4)(o(38, s), p, o, m) +# define MSGPACK_PP_FOR_38_I(s, p, o, m) MSGPACK_PP_IF(p(39, s), m, MSGPACK_PP_TUPLE_EAT_2)(39, s) MSGPACK_PP_IF(p(39, s), MSGPACK_PP_FOR_39, MSGPACK_PP_TUPLE_EAT_4)(o(39, s), p, o, m) +# define MSGPACK_PP_FOR_39_I(s, p, o, m) MSGPACK_PP_IF(p(40, s), m, MSGPACK_PP_TUPLE_EAT_2)(40, s) MSGPACK_PP_IF(p(40, s), MSGPACK_PP_FOR_40, MSGPACK_PP_TUPLE_EAT_4)(o(40, s), p, o, m) +# define MSGPACK_PP_FOR_40_I(s, p, o, m) MSGPACK_PP_IF(p(41, s), m, MSGPACK_PP_TUPLE_EAT_2)(41, s) MSGPACK_PP_IF(p(41, s), MSGPACK_PP_FOR_41, MSGPACK_PP_TUPLE_EAT_4)(o(41, s), p, o, m) +# define MSGPACK_PP_FOR_41_I(s, p, o, m) MSGPACK_PP_IF(p(42, s), m, MSGPACK_PP_TUPLE_EAT_2)(42, s) MSGPACK_PP_IF(p(42, s), MSGPACK_PP_FOR_42, MSGPACK_PP_TUPLE_EAT_4)(o(42, s), p, o, m) +# define MSGPACK_PP_FOR_42_I(s, p, o, m) MSGPACK_PP_IF(p(43, s), m, MSGPACK_PP_TUPLE_EAT_2)(43, s) MSGPACK_PP_IF(p(43, s), MSGPACK_PP_FOR_43, MSGPACK_PP_TUPLE_EAT_4)(o(43, s), p, o, m) +# define MSGPACK_PP_FOR_43_I(s, p, o, m) MSGPACK_PP_IF(p(44, s), m, MSGPACK_PP_TUPLE_EAT_2)(44, s) MSGPACK_PP_IF(p(44, s), MSGPACK_PP_FOR_44, MSGPACK_PP_TUPLE_EAT_4)(o(44, s), p, o, m) +# define MSGPACK_PP_FOR_44_I(s, p, o, m) MSGPACK_PP_IF(p(45, s), m, MSGPACK_PP_TUPLE_EAT_2)(45, s) MSGPACK_PP_IF(p(45, s), MSGPACK_PP_FOR_45, MSGPACK_PP_TUPLE_EAT_4)(o(45, s), p, o, m) +# define MSGPACK_PP_FOR_45_I(s, p, o, m) MSGPACK_PP_IF(p(46, s), m, MSGPACK_PP_TUPLE_EAT_2)(46, s) MSGPACK_PP_IF(p(46, s), MSGPACK_PP_FOR_46, MSGPACK_PP_TUPLE_EAT_4)(o(46, s), p, o, m) +# define MSGPACK_PP_FOR_46_I(s, p, o, m) MSGPACK_PP_IF(p(47, s), m, MSGPACK_PP_TUPLE_EAT_2)(47, s) MSGPACK_PP_IF(p(47, s), MSGPACK_PP_FOR_47, MSGPACK_PP_TUPLE_EAT_4)(o(47, s), p, o, m) +# define MSGPACK_PP_FOR_47_I(s, p, o, m) MSGPACK_PP_IF(p(48, s), m, MSGPACK_PP_TUPLE_EAT_2)(48, s) MSGPACK_PP_IF(p(48, s), MSGPACK_PP_FOR_48, MSGPACK_PP_TUPLE_EAT_4)(o(48, s), p, o, m) +# define MSGPACK_PP_FOR_48_I(s, p, o, m) MSGPACK_PP_IF(p(49, s), m, MSGPACK_PP_TUPLE_EAT_2)(49, s) MSGPACK_PP_IF(p(49, s), MSGPACK_PP_FOR_49, MSGPACK_PP_TUPLE_EAT_4)(o(49, s), p, o, m) +# define MSGPACK_PP_FOR_49_I(s, p, o, m) MSGPACK_PP_IF(p(50, s), m, MSGPACK_PP_TUPLE_EAT_2)(50, s) MSGPACK_PP_IF(p(50, s), MSGPACK_PP_FOR_50, MSGPACK_PP_TUPLE_EAT_4)(o(50, s), p, o, m) +# define MSGPACK_PP_FOR_50_I(s, p, o, m) MSGPACK_PP_IF(p(51, s), m, MSGPACK_PP_TUPLE_EAT_2)(51, s) MSGPACK_PP_IF(p(51, s), MSGPACK_PP_FOR_51, MSGPACK_PP_TUPLE_EAT_4)(o(51, s), p, o, m) +# define MSGPACK_PP_FOR_51_I(s, p, o, m) MSGPACK_PP_IF(p(52, s), m, MSGPACK_PP_TUPLE_EAT_2)(52, s) MSGPACK_PP_IF(p(52, s), MSGPACK_PP_FOR_52, MSGPACK_PP_TUPLE_EAT_4)(o(52, s), p, o, m) +# define MSGPACK_PP_FOR_52_I(s, p, o, m) MSGPACK_PP_IF(p(53, s), m, MSGPACK_PP_TUPLE_EAT_2)(53, s) MSGPACK_PP_IF(p(53, s), MSGPACK_PP_FOR_53, MSGPACK_PP_TUPLE_EAT_4)(o(53, s), p, o, m) +# define MSGPACK_PP_FOR_53_I(s, p, o, m) MSGPACK_PP_IF(p(54, s), m, MSGPACK_PP_TUPLE_EAT_2)(54, s) MSGPACK_PP_IF(p(54, s), MSGPACK_PP_FOR_54, MSGPACK_PP_TUPLE_EAT_4)(o(54, s), p, o, m) +# define MSGPACK_PP_FOR_54_I(s, p, o, m) MSGPACK_PP_IF(p(55, s), m, MSGPACK_PP_TUPLE_EAT_2)(55, s) MSGPACK_PP_IF(p(55, s), MSGPACK_PP_FOR_55, MSGPACK_PP_TUPLE_EAT_4)(o(55, s), p, o, m) +# define MSGPACK_PP_FOR_55_I(s, p, o, m) MSGPACK_PP_IF(p(56, s), m, MSGPACK_PP_TUPLE_EAT_2)(56, s) MSGPACK_PP_IF(p(56, s), MSGPACK_PP_FOR_56, MSGPACK_PP_TUPLE_EAT_4)(o(56, s), p, o, m) +# define MSGPACK_PP_FOR_56_I(s, p, o, m) MSGPACK_PP_IF(p(57, s), m, MSGPACK_PP_TUPLE_EAT_2)(57, s) MSGPACK_PP_IF(p(57, s), MSGPACK_PP_FOR_57, MSGPACK_PP_TUPLE_EAT_4)(o(57, s), p, o, m) +# define MSGPACK_PP_FOR_57_I(s, p, o, m) MSGPACK_PP_IF(p(58, s), m, MSGPACK_PP_TUPLE_EAT_2)(58, s) MSGPACK_PP_IF(p(58, s), MSGPACK_PP_FOR_58, MSGPACK_PP_TUPLE_EAT_4)(o(58, s), p, o, m) +# define MSGPACK_PP_FOR_58_I(s, p, o, m) MSGPACK_PP_IF(p(59, s), m, MSGPACK_PP_TUPLE_EAT_2)(59, s) MSGPACK_PP_IF(p(59, s), MSGPACK_PP_FOR_59, MSGPACK_PP_TUPLE_EAT_4)(o(59, s), p, o, m) +# define MSGPACK_PP_FOR_59_I(s, p, o, m) MSGPACK_PP_IF(p(60, s), m, MSGPACK_PP_TUPLE_EAT_2)(60, s) MSGPACK_PP_IF(p(60, s), MSGPACK_PP_FOR_60, MSGPACK_PP_TUPLE_EAT_4)(o(60, s), p, o, m) +# define MSGPACK_PP_FOR_60_I(s, p, o, m) MSGPACK_PP_IF(p(61, s), m, MSGPACK_PP_TUPLE_EAT_2)(61, s) MSGPACK_PP_IF(p(61, s), MSGPACK_PP_FOR_61, MSGPACK_PP_TUPLE_EAT_4)(o(61, s), p, o, m) +# define MSGPACK_PP_FOR_61_I(s, p, o, m) MSGPACK_PP_IF(p(62, s), m, MSGPACK_PP_TUPLE_EAT_2)(62, s) MSGPACK_PP_IF(p(62, s), MSGPACK_PP_FOR_62, MSGPACK_PP_TUPLE_EAT_4)(o(62, s), p, o, m) +# define MSGPACK_PP_FOR_62_I(s, p, o, m) MSGPACK_PP_IF(p(63, s), m, MSGPACK_PP_TUPLE_EAT_2)(63, s) MSGPACK_PP_IF(p(63, s), MSGPACK_PP_FOR_63, MSGPACK_PP_TUPLE_EAT_4)(o(63, s), p, o, m) +# define MSGPACK_PP_FOR_63_I(s, p, o, m) MSGPACK_PP_IF(p(64, s), m, MSGPACK_PP_TUPLE_EAT_2)(64, s) MSGPACK_PP_IF(p(64, s), MSGPACK_PP_FOR_64, MSGPACK_PP_TUPLE_EAT_4)(o(64, s), p, o, m) +# define MSGPACK_PP_FOR_64_I(s, p, o, m) MSGPACK_PP_IF(p(65, s), m, MSGPACK_PP_TUPLE_EAT_2)(65, s) MSGPACK_PP_IF(p(65, s), MSGPACK_PP_FOR_65, MSGPACK_PP_TUPLE_EAT_4)(o(65, s), p, o, m) +# define MSGPACK_PP_FOR_65_I(s, p, o, m) MSGPACK_PP_IF(p(66, s), m, MSGPACK_PP_TUPLE_EAT_2)(66, s) MSGPACK_PP_IF(p(66, s), MSGPACK_PP_FOR_66, MSGPACK_PP_TUPLE_EAT_4)(o(66, s), p, o, m) +# define MSGPACK_PP_FOR_66_I(s, p, o, m) MSGPACK_PP_IF(p(67, s), m, MSGPACK_PP_TUPLE_EAT_2)(67, s) MSGPACK_PP_IF(p(67, s), MSGPACK_PP_FOR_67, MSGPACK_PP_TUPLE_EAT_4)(o(67, s), p, o, m) +# define MSGPACK_PP_FOR_67_I(s, p, o, m) MSGPACK_PP_IF(p(68, s), m, MSGPACK_PP_TUPLE_EAT_2)(68, s) MSGPACK_PP_IF(p(68, s), MSGPACK_PP_FOR_68, MSGPACK_PP_TUPLE_EAT_4)(o(68, s), p, o, m) +# define MSGPACK_PP_FOR_68_I(s, p, o, m) MSGPACK_PP_IF(p(69, s), m, MSGPACK_PP_TUPLE_EAT_2)(69, s) MSGPACK_PP_IF(p(69, s), MSGPACK_PP_FOR_69, MSGPACK_PP_TUPLE_EAT_4)(o(69, s), p, o, m) +# define MSGPACK_PP_FOR_69_I(s, p, o, m) MSGPACK_PP_IF(p(70, s), m, MSGPACK_PP_TUPLE_EAT_2)(70, s) MSGPACK_PP_IF(p(70, s), MSGPACK_PP_FOR_70, MSGPACK_PP_TUPLE_EAT_4)(o(70, s), p, o, m) +# define MSGPACK_PP_FOR_70_I(s, p, o, m) MSGPACK_PP_IF(p(71, s), m, MSGPACK_PP_TUPLE_EAT_2)(71, s) MSGPACK_PP_IF(p(71, s), MSGPACK_PP_FOR_71, MSGPACK_PP_TUPLE_EAT_4)(o(71, s), p, o, m) +# define MSGPACK_PP_FOR_71_I(s, p, o, m) MSGPACK_PP_IF(p(72, s), m, MSGPACK_PP_TUPLE_EAT_2)(72, s) MSGPACK_PP_IF(p(72, s), MSGPACK_PP_FOR_72, MSGPACK_PP_TUPLE_EAT_4)(o(72, s), p, o, m) +# define MSGPACK_PP_FOR_72_I(s, p, o, m) MSGPACK_PP_IF(p(73, s), m, MSGPACK_PP_TUPLE_EAT_2)(73, s) MSGPACK_PP_IF(p(73, s), MSGPACK_PP_FOR_73, MSGPACK_PP_TUPLE_EAT_4)(o(73, s), p, o, m) +# define MSGPACK_PP_FOR_73_I(s, p, o, m) MSGPACK_PP_IF(p(74, s), m, MSGPACK_PP_TUPLE_EAT_2)(74, s) MSGPACK_PP_IF(p(74, s), MSGPACK_PP_FOR_74, MSGPACK_PP_TUPLE_EAT_4)(o(74, s), p, o, m) +# define MSGPACK_PP_FOR_74_I(s, p, o, m) MSGPACK_PP_IF(p(75, s), m, MSGPACK_PP_TUPLE_EAT_2)(75, s) MSGPACK_PP_IF(p(75, s), MSGPACK_PP_FOR_75, MSGPACK_PP_TUPLE_EAT_4)(o(75, s), p, o, m) +# define MSGPACK_PP_FOR_75_I(s, p, o, m) MSGPACK_PP_IF(p(76, s), m, MSGPACK_PP_TUPLE_EAT_2)(76, s) MSGPACK_PP_IF(p(76, s), MSGPACK_PP_FOR_76, MSGPACK_PP_TUPLE_EAT_4)(o(76, s), p, o, m) +# define MSGPACK_PP_FOR_76_I(s, p, o, m) MSGPACK_PP_IF(p(77, s), m, MSGPACK_PP_TUPLE_EAT_2)(77, s) MSGPACK_PP_IF(p(77, s), MSGPACK_PP_FOR_77, MSGPACK_PP_TUPLE_EAT_4)(o(77, s), p, o, m) +# define MSGPACK_PP_FOR_77_I(s, p, o, m) MSGPACK_PP_IF(p(78, s), m, MSGPACK_PP_TUPLE_EAT_2)(78, s) MSGPACK_PP_IF(p(78, s), MSGPACK_PP_FOR_78, MSGPACK_PP_TUPLE_EAT_4)(o(78, s), p, o, m) +# define MSGPACK_PP_FOR_78_I(s, p, o, m) MSGPACK_PP_IF(p(79, s), m, MSGPACK_PP_TUPLE_EAT_2)(79, s) MSGPACK_PP_IF(p(79, s), MSGPACK_PP_FOR_79, MSGPACK_PP_TUPLE_EAT_4)(o(79, s), p, o, m) +# define MSGPACK_PP_FOR_79_I(s, p, o, m) MSGPACK_PP_IF(p(80, s), m, MSGPACK_PP_TUPLE_EAT_2)(80, s) MSGPACK_PP_IF(p(80, s), MSGPACK_PP_FOR_80, MSGPACK_PP_TUPLE_EAT_4)(o(80, s), p, o, m) +# define MSGPACK_PP_FOR_80_I(s, p, o, m) MSGPACK_PP_IF(p(81, s), m, MSGPACK_PP_TUPLE_EAT_2)(81, s) MSGPACK_PP_IF(p(81, s), MSGPACK_PP_FOR_81, MSGPACK_PP_TUPLE_EAT_4)(o(81, s), p, o, m) +# define MSGPACK_PP_FOR_81_I(s, p, o, m) MSGPACK_PP_IF(p(82, s), m, MSGPACK_PP_TUPLE_EAT_2)(82, s) MSGPACK_PP_IF(p(82, s), MSGPACK_PP_FOR_82, MSGPACK_PP_TUPLE_EAT_4)(o(82, s), p, o, m) +# define MSGPACK_PP_FOR_82_I(s, p, o, m) MSGPACK_PP_IF(p(83, s), m, MSGPACK_PP_TUPLE_EAT_2)(83, s) MSGPACK_PP_IF(p(83, s), MSGPACK_PP_FOR_83, MSGPACK_PP_TUPLE_EAT_4)(o(83, s), p, o, m) +# define MSGPACK_PP_FOR_83_I(s, p, o, m) MSGPACK_PP_IF(p(84, s), m, MSGPACK_PP_TUPLE_EAT_2)(84, s) MSGPACK_PP_IF(p(84, s), MSGPACK_PP_FOR_84, MSGPACK_PP_TUPLE_EAT_4)(o(84, s), p, o, m) +# define MSGPACK_PP_FOR_84_I(s, p, o, m) MSGPACK_PP_IF(p(85, s), m, MSGPACK_PP_TUPLE_EAT_2)(85, s) MSGPACK_PP_IF(p(85, s), MSGPACK_PP_FOR_85, MSGPACK_PP_TUPLE_EAT_4)(o(85, s), p, o, m) +# define MSGPACK_PP_FOR_85_I(s, p, o, m) MSGPACK_PP_IF(p(86, s), m, MSGPACK_PP_TUPLE_EAT_2)(86, s) MSGPACK_PP_IF(p(86, s), MSGPACK_PP_FOR_86, MSGPACK_PP_TUPLE_EAT_4)(o(86, s), p, o, m) +# define MSGPACK_PP_FOR_86_I(s, p, o, m) MSGPACK_PP_IF(p(87, s), m, MSGPACK_PP_TUPLE_EAT_2)(87, s) MSGPACK_PP_IF(p(87, s), MSGPACK_PP_FOR_87, MSGPACK_PP_TUPLE_EAT_4)(o(87, s), p, o, m) +# define MSGPACK_PP_FOR_87_I(s, p, o, m) MSGPACK_PP_IF(p(88, s), m, MSGPACK_PP_TUPLE_EAT_2)(88, s) MSGPACK_PP_IF(p(88, s), MSGPACK_PP_FOR_88, MSGPACK_PP_TUPLE_EAT_4)(o(88, s), p, o, m) +# define MSGPACK_PP_FOR_88_I(s, p, o, m) MSGPACK_PP_IF(p(89, s), m, MSGPACK_PP_TUPLE_EAT_2)(89, s) MSGPACK_PP_IF(p(89, s), MSGPACK_PP_FOR_89, MSGPACK_PP_TUPLE_EAT_4)(o(89, s), p, o, m) +# define MSGPACK_PP_FOR_89_I(s, p, o, m) MSGPACK_PP_IF(p(90, s), m, MSGPACK_PP_TUPLE_EAT_2)(90, s) MSGPACK_PP_IF(p(90, s), MSGPACK_PP_FOR_90, MSGPACK_PP_TUPLE_EAT_4)(o(90, s), p, o, m) +# define MSGPACK_PP_FOR_90_I(s, p, o, m) MSGPACK_PP_IF(p(91, s), m, MSGPACK_PP_TUPLE_EAT_2)(91, s) MSGPACK_PP_IF(p(91, s), MSGPACK_PP_FOR_91, MSGPACK_PP_TUPLE_EAT_4)(o(91, s), p, o, m) +# define MSGPACK_PP_FOR_91_I(s, p, o, m) MSGPACK_PP_IF(p(92, s), m, MSGPACK_PP_TUPLE_EAT_2)(92, s) MSGPACK_PP_IF(p(92, s), MSGPACK_PP_FOR_92, MSGPACK_PP_TUPLE_EAT_4)(o(92, s), p, o, m) +# define MSGPACK_PP_FOR_92_I(s, p, o, m) MSGPACK_PP_IF(p(93, s), m, MSGPACK_PP_TUPLE_EAT_2)(93, s) MSGPACK_PP_IF(p(93, s), MSGPACK_PP_FOR_93, MSGPACK_PP_TUPLE_EAT_4)(o(93, s), p, o, m) +# define MSGPACK_PP_FOR_93_I(s, p, o, m) MSGPACK_PP_IF(p(94, s), m, MSGPACK_PP_TUPLE_EAT_2)(94, s) MSGPACK_PP_IF(p(94, s), MSGPACK_PP_FOR_94, MSGPACK_PP_TUPLE_EAT_4)(o(94, s), p, o, m) +# define MSGPACK_PP_FOR_94_I(s, p, o, m) MSGPACK_PP_IF(p(95, s), m, MSGPACK_PP_TUPLE_EAT_2)(95, s) MSGPACK_PP_IF(p(95, s), MSGPACK_PP_FOR_95, MSGPACK_PP_TUPLE_EAT_4)(o(95, s), p, o, m) +# define MSGPACK_PP_FOR_95_I(s, p, o, m) MSGPACK_PP_IF(p(96, s), m, MSGPACK_PP_TUPLE_EAT_2)(96, s) MSGPACK_PP_IF(p(96, s), MSGPACK_PP_FOR_96, MSGPACK_PP_TUPLE_EAT_4)(o(96, s), p, o, m) +# define MSGPACK_PP_FOR_96_I(s, p, o, m) MSGPACK_PP_IF(p(97, s), m, MSGPACK_PP_TUPLE_EAT_2)(97, s) MSGPACK_PP_IF(p(97, s), MSGPACK_PP_FOR_97, MSGPACK_PP_TUPLE_EAT_4)(o(97, s), p, o, m) +# define MSGPACK_PP_FOR_97_I(s, p, o, m) MSGPACK_PP_IF(p(98, s), m, MSGPACK_PP_TUPLE_EAT_2)(98, s) MSGPACK_PP_IF(p(98, s), MSGPACK_PP_FOR_98, MSGPACK_PP_TUPLE_EAT_4)(o(98, s), p, o, m) +# define MSGPACK_PP_FOR_98_I(s, p, o, m) MSGPACK_PP_IF(p(99, s), m, MSGPACK_PP_TUPLE_EAT_2)(99, s) MSGPACK_PP_IF(p(99, s), MSGPACK_PP_FOR_99, MSGPACK_PP_TUPLE_EAT_4)(o(99, s), p, o, m) +# define MSGPACK_PP_FOR_99_I(s, p, o, m) MSGPACK_PP_IF(p(100, s), m, MSGPACK_PP_TUPLE_EAT_2)(100, s) MSGPACK_PP_IF(p(100, s), MSGPACK_PP_FOR_100, MSGPACK_PP_TUPLE_EAT_4)(o(100, s), p, o, m) +# define MSGPACK_PP_FOR_100_I(s, p, o, m) MSGPACK_PP_IF(p(101, s), m, MSGPACK_PP_TUPLE_EAT_2)(101, s) MSGPACK_PP_IF(p(101, s), MSGPACK_PP_FOR_101, MSGPACK_PP_TUPLE_EAT_4)(o(101, s), p, o, m) +# define MSGPACK_PP_FOR_101_I(s, p, o, m) MSGPACK_PP_IF(p(102, s), m, MSGPACK_PP_TUPLE_EAT_2)(102, s) MSGPACK_PP_IF(p(102, s), MSGPACK_PP_FOR_102, MSGPACK_PP_TUPLE_EAT_4)(o(102, s), p, o, m) +# define MSGPACK_PP_FOR_102_I(s, p, o, m) MSGPACK_PP_IF(p(103, s), m, MSGPACK_PP_TUPLE_EAT_2)(103, s) MSGPACK_PP_IF(p(103, s), MSGPACK_PP_FOR_103, MSGPACK_PP_TUPLE_EAT_4)(o(103, s), p, o, m) +# define MSGPACK_PP_FOR_103_I(s, p, o, m) MSGPACK_PP_IF(p(104, s), m, MSGPACK_PP_TUPLE_EAT_2)(104, s) MSGPACK_PP_IF(p(104, s), MSGPACK_PP_FOR_104, MSGPACK_PP_TUPLE_EAT_4)(o(104, s), p, o, m) +# define MSGPACK_PP_FOR_104_I(s, p, o, m) MSGPACK_PP_IF(p(105, s), m, MSGPACK_PP_TUPLE_EAT_2)(105, s) MSGPACK_PP_IF(p(105, s), MSGPACK_PP_FOR_105, MSGPACK_PP_TUPLE_EAT_4)(o(105, s), p, o, m) +# define MSGPACK_PP_FOR_105_I(s, p, o, m) MSGPACK_PP_IF(p(106, s), m, MSGPACK_PP_TUPLE_EAT_2)(106, s) MSGPACK_PP_IF(p(106, s), MSGPACK_PP_FOR_106, MSGPACK_PP_TUPLE_EAT_4)(o(106, s), p, o, m) +# define MSGPACK_PP_FOR_106_I(s, p, o, m) MSGPACK_PP_IF(p(107, s), m, MSGPACK_PP_TUPLE_EAT_2)(107, s) MSGPACK_PP_IF(p(107, s), MSGPACK_PP_FOR_107, MSGPACK_PP_TUPLE_EAT_4)(o(107, s), p, o, m) +# define MSGPACK_PP_FOR_107_I(s, p, o, m) MSGPACK_PP_IF(p(108, s), m, MSGPACK_PP_TUPLE_EAT_2)(108, s) MSGPACK_PP_IF(p(108, s), MSGPACK_PP_FOR_108, MSGPACK_PP_TUPLE_EAT_4)(o(108, s), p, o, m) +# define MSGPACK_PP_FOR_108_I(s, p, o, m) MSGPACK_PP_IF(p(109, s), m, MSGPACK_PP_TUPLE_EAT_2)(109, s) MSGPACK_PP_IF(p(109, s), MSGPACK_PP_FOR_109, MSGPACK_PP_TUPLE_EAT_4)(o(109, s), p, o, m) +# define MSGPACK_PP_FOR_109_I(s, p, o, m) MSGPACK_PP_IF(p(110, s), m, MSGPACK_PP_TUPLE_EAT_2)(110, s) MSGPACK_PP_IF(p(110, s), MSGPACK_PP_FOR_110, MSGPACK_PP_TUPLE_EAT_4)(o(110, s), p, o, m) +# define MSGPACK_PP_FOR_110_I(s, p, o, m) MSGPACK_PP_IF(p(111, s), m, MSGPACK_PP_TUPLE_EAT_2)(111, s) MSGPACK_PP_IF(p(111, s), MSGPACK_PP_FOR_111, MSGPACK_PP_TUPLE_EAT_4)(o(111, s), p, o, m) +# define MSGPACK_PP_FOR_111_I(s, p, o, m) MSGPACK_PP_IF(p(112, s), m, MSGPACK_PP_TUPLE_EAT_2)(112, s) MSGPACK_PP_IF(p(112, s), MSGPACK_PP_FOR_112, MSGPACK_PP_TUPLE_EAT_4)(o(112, s), p, o, m) +# define MSGPACK_PP_FOR_112_I(s, p, o, m) MSGPACK_PP_IF(p(113, s), m, MSGPACK_PP_TUPLE_EAT_2)(113, s) MSGPACK_PP_IF(p(113, s), MSGPACK_PP_FOR_113, MSGPACK_PP_TUPLE_EAT_4)(o(113, s), p, o, m) +# define MSGPACK_PP_FOR_113_I(s, p, o, m) MSGPACK_PP_IF(p(114, s), m, MSGPACK_PP_TUPLE_EAT_2)(114, s) MSGPACK_PP_IF(p(114, s), MSGPACK_PP_FOR_114, MSGPACK_PP_TUPLE_EAT_4)(o(114, s), p, o, m) +# define MSGPACK_PP_FOR_114_I(s, p, o, m) MSGPACK_PP_IF(p(115, s), m, MSGPACK_PP_TUPLE_EAT_2)(115, s) MSGPACK_PP_IF(p(115, s), MSGPACK_PP_FOR_115, MSGPACK_PP_TUPLE_EAT_4)(o(115, s), p, o, m) +# define MSGPACK_PP_FOR_115_I(s, p, o, m) MSGPACK_PP_IF(p(116, s), m, MSGPACK_PP_TUPLE_EAT_2)(116, s) MSGPACK_PP_IF(p(116, s), MSGPACK_PP_FOR_116, MSGPACK_PP_TUPLE_EAT_4)(o(116, s), p, o, m) +# define MSGPACK_PP_FOR_116_I(s, p, o, m) MSGPACK_PP_IF(p(117, s), m, MSGPACK_PP_TUPLE_EAT_2)(117, s) MSGPACK_PP_IF(p(117, s), MSGPACK_PP_FOR_117, MSGPACK_PP_TUPLE_EAT_4)(o(117, s), p, o, m) +# define MSGPACK_PP_FOR_117_I(s, p, o, m) MSGPACK_PP_IF(p(118, s), m, MSGPACK_PP_TUPLE_EAT_2)(118, s) MSGPACK_PP_IF(p(118, s), MSGPACK_PP_FOR_118, MSGPACK_PP_TUPLE_EAT_4)(o(118, s), p, o, m) +# define MSGPACK_PP_FOR_118_I(s, p, o, m) MSGPACK_PP_IF(p(119, s), m, MSGPACK_PP_TUPLE_EAT_2)(119, s) MSGPACK_PP_IF(p(119, s), MSGPACK_PP_FOR_119, MSGPACK_PP_TUPLE_EAT_4)(o(119, s), p, o, m) +# define MSGPACK_PP_FOR_119_I(s, p, o, m) MSGPACK_PP_IF(p(120, s), m, MSGPACK_PP_TUPLE_EAT_2)(120, s) MSGPACK_PP_IF(p(120, s), MSGPACK_PP_FOR_120, MSGPACK_PP_TUPLE_EAT_4)(o(120, s), p, o, m) +# define MSGPACK_PP_FOR_120_I(s, p, o, m) MSGPACK_PP_IF(p(121, s), m, MSGPACK_PP_TUPLE_EAT_2)(121, s) MSGPACK_PP_IF(p(121, s), MSGPACK_PP_FOR_121, MSGPACK_PP_TUPLE_EAT_4)(o(121, s), p, o, m) +# define MSGPACK_PP_FOR_121_I(s, p, o, m) MSGPACK_PP_IF(p(122, s), m, MSGPACK_PP_TUPLE_EAT_2)(122, s) MSGPACK_PP_IF(p(122, s), MSGPACK_PP_FOR_122, MSGPACK_PP_TUPLE_EAT_4)(o(122, s), p, o, m) +# define MSGPACK_PP_FOR_122_I(s, p, o, m) MSGPACK_PP_IF(p(123, s), m, MSGPACK_PP_TUPLE_EAT_2)(123, s) MSGPACK_PP_IF(p(123, s), MSGPACK_PP_FOR_123, MSGPACK_PP_TUPLE_EAT_4)(o(123, s), p, o, m) +# define MSGPACK_PP_FOR_123_I(s, p, o, m) MSGPACK_PP_IF(p(124, s), m, MSGPACK_PP_TUPLE_EAT_2)(124, s) MSGPACK_PP_IF(p(124, s), MSGPACK_PP_FOR_124, MSGPACK_PP_TUPLE_EAT_4)(o(124, s), p, o, m) +# define MSGPACK_PP_FOR_124_I(s, p, o, m) MSGPACK_PP_IF(p(125, s), m, MSGPACK_PP_TUPLE_EAT_2)(125, s) MSGPACK_PP_IF(p(125, s), MSGPACK_PP_FOR_125, MSGPACK_PP_TUPLE_EAT_4)(o(125, s), p, o, m) +# define MSGPACK_PP_FOR_125_I(s, p, o, m) MSGPACK_PP_IF(p(126, s), m, MSGPACK_PP_TUPLE_EAT_2)(126, s) MSGPACK_PP_IF(p(126, s), MSGPACK_PP_FOR_126, MSGPACK_PP_TUPLE_EAT_4)(o(126, s), p, o, m) +# define MSGPACK_PP_FOR_126_I(s, p, o, m) MSGPACK_PP_IF(p(127, s), m, MSGPACK_PP_TUPLE_EAT_2)(127, s) MSGPACK_PP_IF(p(127, s), MSGPACK_PP_FOR_127, MSGPACK_PP_TUPLE_EAT_4)(o(127, s), p, o, m) +# define MSGPACK_PP_FOR_127_I(s, p, o, m) MSGPACK_PP_IF(p(128, s), m, MSGPACK_PP_TUPLE_EAT_2)(128, s) MSGPACK_PP_IF(p(128, s), MSGPACK_PP_FOR_128, MSGPACK_PP_TUPLE_EAT_4)(o(128, s), p, o, m) +# define MSGPACK_PP_FOR_128_I(s, p, o, m) MSGPACK_PP_IF(p(129, s), m, MSGPACK_PP_TUPLE_EAT_2)(129, s) MSGPACK_PP_IF(p(129, s), MSGPACK_PP_FOR_129, MSGPACK_PP_TUPLE_EAT_4)(o(129, s), p, o, m) +# define MSGPACK_PP_FOR_129_I(s, p, o, m) MSGPACK_PP_IF(p(130, s), m, MSGPACK_PP_TUPLE_EAT_2)(130, s) MSGPACK_PP_IF(p(130, s), MSGPACK_PP_FOR_130, MSGPACK_PP_TUPLE_EAT_4)(o(130, s), p, o, m) +# define MSGPACK_PP_FOR_130_I(s, p, o, m) MSGPACK_PP_IF(p(131, s), m, MSGPACK_PP_TUPLE_EAT_2)(131, s) MSGPACK_PP_IF(p(131, s), MSGPACK_PP_FOR_131, MSGPACK_PP_TUPLE_EAT_4)(o(131, s), p, o, m) +# define MSGPACK_PP_FOR_131_I(s, p, o, m) MSGPACK_PP_IF(p(132, s), m, MSGPACK_PP_TUPLE_EAT_2)(132, s) MSGPACK_PP_IF(p(132, s), MSGPACK_PP_FOR_132, MSGPACK_PP_TUPLE_EAT_4)(o(132, s), p, o, m) +# define MSGPACK_PP_FOR_132_I(s, p, o, m) MSGPACK_PP_IF(p(133, s), m, MSGPACK_PP_TUPLE_EAT_2)(133, s) MSGPACK_PP_IF(p(133, s), MSGPACK_PP_FOR_133, MSGPACK_PP_TUPLE_EAT_4)(o(133, s), p, o, m) +# define MSGPACK_PP_FOR_133_I(s, p, o, m) MSGPACK_PP_IF(p(134, s), m, MSGPACK_PP_TUPLE_EAT_2)(134, s) MSGPACK_PP_IF(p(134, s), MSGPACK_PP_FOR_134, MSGPACK_PP_TUPLE_EAT_4)(o(134, s), p, o, m) +# define MSGPACK_PP_FOR_134_I(s, p, o, m) MSGPACK_PP_IF(p(135, s), m, MSGPACK_PP_TUPLE_EAT_2)(135, s) MSGPACK_PP_IF(p(135, s), MSGPACK_PP_FOR_135, MSGPACK_PP_TUPLE_EAT_4)(o(135, s), p, o, m) +# define MSGPACK_PP_FOR_135_I(s, p, o, m) MSGPACK_PP_IF(p(136, s), m, MSGPACK_PP_TUPLE_EAT_2)(136, s) MSGPACK_PP_IF(p(136, s), MSGPACK_PP_FOR_136, MSGPACK_PP_TUPLE_EAT_4)(o(136, s), p, o, m) +# define MSGPACK_PP_FOR_136_I(s, p, o, m) MSGPACK_PP_IF(p(137, s), m, MSGPACK_PP_TUPLE_EAT_2)(137, s) MSGPACK_PP_IF(p(137, s), MSGPACK_PP_FOR_137, MSGPACK_PP_TUPLE_EAT_4)(o(137, s), p, o, m) +# define MSGPACK_PP_FOR_137_I(s, p, o, m) MSGPACK_PP_IF(p(138, s), m, MSGPACK_PP_TUPLE_EAT_2)(138, s) MSGPACK_PP_IF(p(138, s), MSGPACK_PP_FOR_138, MSGPACK_PP_TUPLE_EAT_4)(o(138, s), p, o, m) +# define MSGPACK_PP_FOR_138_I(s, p, o, m) MSGPACK_PP_IF(p(139, s), m, MSGPACK_PP_TUPLE_EAT_2)(139, s) MSGPACK_PP_IF(p(139, s), MSGPACK_PP_FOR_139, MSGPACK_PP_TUPLE_EAT_4)(o(139, s), p, o, m) +# define MSGPACK_PP_FOR_139_I(s, p, o, m) MSGPACK_PP_IF(p(140, s), m, MSGPACK_PP_TUPLE_EAT_2)(140, s) MSGPACK_PP_IF(p(140, s), MSGPACK_PP_FOR_140, MSGPACK_PP_TUPLE_EAT_4)(o(140, s), p, o, m) +# define MSGPACK_PP_FOR_140_I(s, p, o, m) MSGPACK_PP_IF(p(141, s), m, MSGPACK_PP_TUPLE_EAT_2)(141, s) MSGPACK_PP_IF(p(141, s), MSGPACK_PP_FOR_141, MSGPACK_PP_TUPLE_EAT_4)(o(141, s), p, o, m) +# define MSGPACK_PP_FOR_141_I(s, p, o, m) MSGPACK_PP_IF(p(142, s), m, MSGPACK_PP_TUPLE_EAT_2)(142, s) MSGPACK_PP_IF(p(142, s), MSGPACK_PP_FOR_142, MSGPACK_PP_TUPLE_EAT_4)(o(142, s), p, o, m) +# define MSGPACK_PP_FOR_142_I(s, p, o, m) MSGPACK_PP_IF(p(143, s), m, MSGPACK_PP_TUPLE_EAT_2)(143, s) MSGPACK_PP_IF(p(143, s), MSGPACK_PP_FOR_143, MSGPACK_PP_TUPLE_EAT_4)(o(143, s), p, o, m) +# define MSGPACK_PP_FOR_143_I(s, p, o, m) MSGPACK_PP_IF(p(144, s), m, MSGPACK_PP_TUPLE_EAT_2)(144, s) MSGPACK_PP_IF(p(144, s), MSGPACK_PP_FOR_144, MSGPACK_PP_TUPLE_EAT_4)(o(144, s), p, o, m) +# define MSGPACK_PP_FOR_144_I(s, p, o, m) MSGPACK_PP_IF(p(145, s), m, MSGPACK_PP_TUPLE_EAT_2)(145, s) MSGPACK_PP_IF(p(145, s), MSGPACK_PP_FOR_145, MSGPACK_PP_TUPLE_EAT_4)(o(145, s), p, o, m) +# define MSGPACK_PP_FOR_145_I(s, p, o, m) MSGPACK_PP_IF(p(146, s), m, MSGPACK_PP_TUPLE_EAT_2)(146, s) MSGPACK_PP_IF(p(146, s), MSGPACK_PP_FOR_146, MSGPACK_PP_TUPLE_EAT_4)(o(146, s), p, o, m) +# define MSGPACK_PP_FOR_146_I(s, p, o, m) MSGPACK_PP_IF(p(147, s), m, MSGPACK_PP_TUPLE_EAT_2)(147, s) MSGPACK_PP_IF(p(147, s), MSGPACK_PP_FOR_147, MSGPACK_PP_TUPLE_EAT_4)(o(147, s), p, o, m) +# define MSGPACK_PP_FOR_147_I(s, p, o, m) MSGPACK_PP_IF(p(148, s), m, MSGPACK_PP_TUPLE_EAT_2)(148, s) MSGPACK_PP_IF(p(148, s), MSGPACK_PP_FOR_148, MSGPACK_PP_TUPLE_EAT_4)(o(148, s), p, o, m) +# define MSGPACK_PP_FOR_148_I(s, p, o, m) MSGPACK_PP_IF(p(149, s), m, MSGPACK_PP_TUPLE_EAT_2)(149, s) MSGPACK_PP_IF(p(149, s), MSGPACK_PP_FOR_149, MSGPACK_PP_TUPLE_EAT_4)(o(149, s), p, o, m) +# define MSGPACK_PP_FOR_149_I(s, p, o, m) MSGPACK_PP_IF(p(150, s), m, MSGPACK_PP_TUPLE_EAT_2)(150, s) MSGPACK_PP_IF(p(150, s), MSGPACK_PP_FOR_150, MSGPACK_PP_TUPLE_EAT_4)(o(150, s), p, o, m) +# define MSGPACK_PP_FOR_150_I(s, p, o, m) MSGPACK_PP_IF(p(151, s), m, MSGPACK_PP_TUPLE_EAT_2)(151, s) MSGPACK_PP_IF(p(151, s), MSGPACK_PP_FOR_151, MSGPACK_PP_TUPLE_EAT_4)(o(151, s), p, o, m) +# define MSGPACK_PP_FOR_151_I(s, p, o, m) MSGPACK_PP_IF(p(152, s), m, MSGPACK_PP_TUPLE_EAT_2)(152, s) MSGPACK_PP_IF(p(152, s), MSGPACK_PP_FOR_152, MSGPACK_PP_TUPLE_EAT_4)(o(152, s), p, o, m) +# define MSGPACK_PP_FOR_152_I(s, p, o, m) MSGPACK_PP_IF(p(153, s), m, MSGPACK_PP_TUPLE_EAT_2)(153, s) MSGPACK_PP_IF(p(153, s), MSGPACK_PP_FOR_153, MSGPACK_PP_TUPLE_EAT_4)(o(153, s), p, o, m) +# define MSGPACK_PP_FOR_153_I(s, p, o, m) MSGPACK_PP_IF(p(154, s), m, MSGPACK_PP_TUPLE_EAT_2)(154, s) MSGPACK_PP_IF(p(154, s), MSGPACK_PP_FOR_154, MSGPACK_PP_TUPLE_EAT_4)(o(154, s), p, o, m) +# define MSGPACK_PP_FOR_154_I(s, p, o, m) MSGPACK_PP_IF(p(155, s), m, MSGPACK_PP_TUPLE_EAT_2)(155, s) MSGPACK_PP_IF(p(155, s), MSGPACK_PP_FOR_155, MSGPACK_PP_TUPLE_EAT_4)(o(155, s), p, o, m) +# define MSGPACK_PP_FOR_155_I(s, p, o, m) MSGPACK_PP_IF(p(156, s), m, MSGPACK_PP_TUPLE_EAT_2)(156, s) MSGPACK_PP_IF(p(156, s), MSGPACK_PP_FOR_156, MSGPACK_PP_TUPLE_EAT_4)(o(156, s), p, o, m) +# define MSGPACK_PP_FOR_156_I(s, p, o, m) MSGPACK_PP_IF(p(157, s), m, MSGPACK_PP_TUPLE_EAT_2)(157, s) MSGPACK_PP_IF(p(157, s), MSGPACK_PP_FOR_157, MSGPACK_PP_TUPLE_EAT_4)(o(157, s), p, o, m) +# define MSGPACK_PP_FOR_157_I(s, p, o, m) MSGPACK_PP_IF(p(158, s), m, MSGPACK_PP_TUPLE_EAT_2)(158, s) MSGPACK_PP_IF(p(158, s), MSGPACK_PP_FOR_158, MSGPACK_PP_TUPLE_EAT_4)(o(158, s), p, o, m) +# define MSGPACK_PP_FOR_158_I(s, p, o, m) MSGPACK_PP_IF(p(159, s), m, MSGPACK_PP_TUPLE_EAT_2)(159, s) MSGPACK_PP_IF(p(159, s), MSGPACK_PP_FOR_159, MSGPACK_PP_TUPLE_EAT_4)(o(159, s), p, o, m) +# define MSGPACK_PP_FOR_159_I(s, p, o, m) MSGPACK_PP_IF(p(160, s), m, MSGPACK_PP_TUPLE_EAT_2)(160, s) MSGPACK_PP_IF(p(160, s), MSGPACK_PP_FOR_160, MSGPACK_PP_TUPLE_EAT_4)(o(160, s), p, o, m) +# define MSGPACK_PP_FOR_160_I(s, p, o, m) MSGPACK_PP_IF(p(161, s), m, MSGPACK_PP_TUPLE_EAT_2)(161, s) MSGPACK_PP_IF(p(161, s), MSGPACK_PP_FOR_161, MSGPACK_PP_TUPLE_EAT_4)(o(161, s), p, o, m) +# define MSGPACK_PP_FOR_161_I(s, p, o, m) MSGPACK_PP_IF(p(162, s), m, MSGPACK_PP_TUPLE_EAT_2)(162, s) MSGPACK_PP_IF(p(162, s), MSGPACK_PP_FOR_162, MSGPACK_PP_TUPLE_EAT_4)(o(162, s), p, o, m) +# define MSGPACK_PP_FOR_162_I(s, p, o, m) MSGPACK_PP_IF(p(163, s), m, MSGPACK_PP_TUPLE_EAT_2)(163, s) MSGPACK_PP_IF(p(163, s), MSGPACK_PP_FOR_163, MSGPACK_PP_TUPLE_EAT_4)(o(163, s), p, o, m) +# define MSGPACK_PP_FOR_163_I(s, p, o, m) MSGPACK_PP_IF(p(164, s), m, MSGPACK_PP_TUPLE_EAT_2)(164, s) MSGPACK_PP_IF(p(164, s), MSGPACK_PP_FOR_164, MSGPACK_PP_TUPLE_EAT_4)(o(164, s), p, o, m) +# define MSGPACK_PP_FOR_164_I(s, p, o, m) MSGPACK_PP_IF(p(165, s), m, MSGPACK_PP_TUPLE_EAT_2)(165, s) MSGPACK_PP_IF(p(165, s), MSGPACK_PP_FOR_165, MSGPACK_PP_TUPLE_EAT_4)(o(165, s), p, o, m) +# define MSGPACK_PP_FOR_165_I(s, p, o, m) MSGPACK_PP_IF(p(166, s), m, MSGPACK_PP_TUPLE_EAT_2)(166, s) MSGPACK_PP_IF(p(166, s), MSGPACK_PP_FOR_166, MSGPACK_PP_TUPLE_EAT_4)(o(166, s), p, o, m) +# define MSGPACK_PP_FOR_166_I(s, p, o, m) MSGPACK_PP_IF(p(167, s), m, MSGPACK_PP_TUPLE_EAT_2)(167, s) MSGPACK_PP_IF(p(167, s), MSGPACK_PP_FOR_167, MSGPACK_PP_TUPLE_EAT_4)(o(167, s), p, o, m) +# define MSGPACK_PP_FOR_167_I(s, p, o, m) MSGPACK_PP_IF(p(168, s), m, MSGPACK_PP_TUPLE_EAT_2)(168, s) MSGPACK_PP_IF(p(168, s), MSGPACK_PP_FOR_168, MSGPACK_PP_TUPLE_EAT_4)(o(168, s), p, o, m) +# define MSGPACK_PP_FOR_168_I(s, p, o, m) MSGPACK_PP_IF(p(169, s), m, MSGPACK_PP_TUPLE_EAT_2)(169, s) MSGPACK_PP_IF(p(169, s), MSGPACK_PP_FOR_169, MSGPACK_PP_TUPLE_EAT_4)(o(169, s), p, o, m) +# define MSGPACK_PP_FOR_169_I(s, p, o, m) MSGPACK_PP_IF(p(170, s), m, MSGPACK_PP_TUPLE_EAT_2)(170, s) MSGPACK_PP_IF(p(170, s), MSGPACK_PP_FOR_170, MSGPACK_PP_TUPLE_EAT_4)(o(170, s), p, o, m) +# define MSGPACK_PP_FOR_170_I(s, p, o, m) MSGPACK_PP_IF(p(171, s), m, MSGPACK_PP_TUPLE_EAT_2)(171, s) MSGPACK_PP_IF(p(171, s), MSGPACK_PP_FOR_171, MSGPACK_PP_TUPLE_EAT_4)(o(171, s), p, o, m) +# define MSGPACK_PP_FOR_171_I(s, p, o, m) MSGPACK_PP_IF(p(172, s), m, MSGPACK_PP_TUPLE_EAT_2)(172, s) MSGPACK_PP_IF(p(172, s), MSGPACK_PP_FOR_172, MSGPACK_PP_TUPLE_EAT_4)(o(172, s), p, o, m) +# define MSGPACK_PP_FOR_172_I(s, p, o, m) MSGPACK_PP_IF(p(173, s), m, MSGPACK_PP_TUPLE_EAT_2)(173, s) MSGPACK_PP_IF(p(173, s), MSGPACK_PP_FOR_173, MSGPACK_PP_TUPLE_EAT_4)(o(173, s), p, o, m) +# define MSGPACK_PP_FOR_173_I(s, p, o, m) MSGPACK_PP_IF(p(174, s), m, MSGPACK_PP_TUPLE_EAT_2)(174, s) MSGPACK_PP_IF(p(174, s), MSGPACK_PP_FOR_174, MSGPACK_PP_TUPLE_EAT_4)(o(174, s), p, o, m) +# define MSGPACK_PP_FOR_174_I(s, p, o, m) MSGPACK_PP_IF(p(175, s), m, MSGPACK_PP_TUPLE_EAT_2)(175, s) MSGPACK_PP_IF(p(175, s), MSGPACK_PP_FOR_175, MSGPACK_PP_TUPLE_EAT_4)(o(175, s), p, o, m) +# define MSGPACK_PP_FOR_175_I(s, p, o, m) MSGPACK_PP_IF(p(176, s), m, MSGPACK_PP_TUPLE_EAT_2)(176, s) MSGPACK_PP_IF(p(176, s), MSGPACK_PP_FOR_176, MSGPACK_PP_TUPLE_EAT_4)(o(176, s), p, o, m) +# define MSGPACK_PP_FOR_176_I(s, p, o, m) MSGPACK_PP_IF(p(177, s), m, MSGPACK_PP_TUPLE_EAT_2)(177, s) MSGPACK_PP_IF(p(177, s), MSGPACK_PP_FOR_177, MSGPACK_PP_TUPLE_EAT_4)(o(177, s), p, o, m) +# define MSGPACK_PP_FOR_177_I(s, p, o, m) MSGPACK_PP_IF(p(178, s), m, MSGPACK_PP_TUPLE_EAT_2)(178, s) MSGPACK_PP_IF(p(178, s), MSGPACK_PP_FOR_178, MSGPACK_PP_TUPLE_EAT_4)(o(178, s), p, o, m) +# define MSGPACK_PP_FOR_178_I(s, p, o, m) MSGPACK_PP_IF(p(179, s), m, MSGPACK_PP_TUPLE_EAT_2)(179, s) MSGPACK_PP_IF(p(179, s), MSGPACK_PP_FOR_179, MSGPACK_PP_TUPLE_EAT_4)(o(179, s), p, o, m) +# define MSGPACK_PP_FOR_179_I(s, p, o, m) MSGPACK_PP_IF(p(180, s), m, MSGPACK_PP_TUPLE_EAT_2)(180, s) MSGPACK_PP_IF(p(180, s), MSGPACK_PP_FOR_180, MSGPACK_PP_TUPLE_EAT_4)(o(180, s), p, o, m) +# define MSGPACK_PP_FOR_180_I(s, p, o, m) MSGPACK_PP_IF(p(181, s), m, MSGPACK_PP_TUPLE_EAT_2)(181, s) MSGPACK_PP_IF(p(181, s), MSGPACK_PP_FOR_181, MSGPACK_PP_TUPLE_EAT_4)(o(181, s), p, o, m) +# define MSGPACK_PP_FOR_181_I(s, p, o, m) MSGPACK_PP_IF(p(182, s), m, MSGPACK_PP_TUPLE_EAT_2)(182, s) MSGPACK_PP_IF(p(182, s), MSGPACK_PP_FOR_182, MSGPACK_PP_TUPLE_EAT_4)(o(182, s), p, o, m) +# define MSGPACK_PP_FOR_182_I(s, p, o, m) MSGPACK_PP_IF(p(183, s), m, MSGPACK_PP_TUPLE_EAT_2)(183, s) MSGPACK_PP_IF(p(183, s), MSGPACK_PP_FOR_183, MSGPACK_PP_TUPLE_EAT_4)(o(183, s), p, o, m) +# define MSGPACK_PP_FOR_183_I(s, p, o, m) MSGPACK_PP_IF(p(184, s), m, MSGPACK_PP_TUPLE_EAT_2)(184, s) MSGPACK_PP_IF(p(184, s), MSGPACK_PP_FOR_184, MSGPACK_PP_TUPLE_EAT_4)(o(184, s), p, o, m) +# define MSGPACK_PP_FOR_184_I(s, p, o, m) MSGPACK_PP_IF(p(185, s), m, MSGPACK_PP_TUPLE_EAT_2)(185, s) MSGPACK_PP_IF(p(185, s), MSGPACK_PP_FOR_185, MSGPACK_PP_TUPLE_EAT_4)(o(185, s), p, o, m) +# define MSGPACK_PP_FOR_185_I(s, p, o, m) MSGPACK_PP_IF(p(186, s), m, MSGPACK_PP_TUPLE_EAT_2)(186, s) MSGPACK_PP_IF(p(186, s), MSGPACK_PP_FOR_186, MSGPACK_PP_TUPLE_EAT_4)(o(186, s), p, o, m) +# define MSGPACK_PP_FOR_186_I(s, p, o, m) MSGPACK_PP_IF(p(187, s), m, MSGPACK_PP_TUPLE_EAT_2)(187, s) MSGPACK_PP_IF(p(187, s), MSGPACK_PP_FOR_187, MSGPACK_PP_TUPLE_EAT_4)(o(187, s), p, o, m) +# define MSGPACK_PP_FOR_187_I(s, p, o, m) MSGPACK_PP_IF(p(188, s), m, MSGPACK_PP_TUPLE_EAT_2)(188, s) MSGPACK_PP_IF(p(188, s), MSGPACK_PP_FOR_188, MSGPACK_PP_TUPLE_EAT_4)(o(188, s), p, o, m) +# define MSGPACK_PP_FOR_188_I(s, p, o, m) MSGPACK_PP_IF(p(189, s), m, MSGPACK_PP_TUPLE_EAT_2)(189, s) MSGPACK_PP_IF(p(189, s), MSGPACK_PP_FOR_189, MSGPACK_PP_TUPLE_EAT_4)(o(189, s), p, o, m) +# define MSGPACK_PP_FOR_189_I(s, p, o, m) MSGPACK_PP_IF(p(190, s), m, MSGPACK_PP_TUPLE_EAT_2)(190, s) MSGPACK_PP_IF(p(190, s), MSGPACK_PP_FOR_190, MSGPACK_PP_TUPLE_EAT_4)(o(190, s), p, o, m) +# define MSGPACK_PP_FOR_190_I(s, p, o, m) MSGPACK_PP_IF(p(191, s), m, MSGPACK_PP_TUPLE_EAT_2)(191, s) MSGPACK_PP_IF(p(191, s), MSGPACK_PP_FOR_191, MSGPACK_PP_TUPLE_EAT_4)(o(191, s), p, o, m) +# define MSGPACK_PP_FOR_191_I(s, p, o, m) MSGPACK_PP_IF(p(192, s), m, MSGPACK_PP_TUPLE_EAT_2)(192, s) MSGPACK_PP_IF(p(192, s), MSGPACK_PP_FOR_192, MSGPACK_PP_TUPLE_EAT_4)(o(192, s), p, o, m) +# define MSGPACK_PP_FOR_192_I(s, p, o, m) MSGPACK_PP_IF(p(193, s), m, MSGPACK_PP_TUPLE_EAT_2)(193, s) MSGPACK_PP_IF(p(193, s), MSGPACK_PP_FOR_193, MSGPACK_PP_TUPLE_EAT_4)(o(193, s), p, o, m) +# define MSGPACK_PP_FOR_193_I(s, p, o, m) MSGPACK_PP_IF(p(194, s), m, MSGPACK_PP_TUPLE_EAT_2)(194, s) MSGPACK_PP_IF(p(194, s), MSGPACK_PP_FOR_194, MSGPACK_PP_TUPLE_EAT_4)(o(194, s), p, o, m) +# define MSGPACK_PP_FOR_194_I(s, p, o, m) MSGPACK_PP_IF(p(195, s), m, MSGPACK_PP_TUPLE_EAT_2)(195, s) MSGPACK_PP_IF(p(195, s), MSGPACK_PP_FOR_195, MSGPACK_PP_TUPLE_EAT_4)(o(195, s), p, o, m) +# define MSGPACK_PP_FOR_195_I(s, p, o, m) MSGPACK_PP_IF(p(196, s), m, MSGPACK_PP_TUPLE_EAT_2)(196, s) MSGPACK_PP_IF(p(196, s), MSGPACK_PP_FOR_196, MSGPACK_PP_TUPLE_EAT_4)(o(196, s), p, o, m) +# define MSGPACK_PP_FOR_196_I(s, p, o, m) MSGPACK_PP_IF(p(197, s), m, MSGPACK_PP_TUPLE_EAT_2)(197, s) MSGPACK_PP_IF(p(197, s), MSGPACK_PP_FOR_197, MSGPACK_PP_TUPLE_EAT_4)(o(197, s), p, o, m) +# define MSGPACK_PP_FOR_197_I(s, p, o, m) MSGPACK_PP_IF(p(198, s), m, MSGPACK_PP_TUPLE_EAT_2)(198, s) MSGPACK_PP_IF(p(198, s), MSGPACK_PP_FOR_198, MSGPACK_PP_TUPLE_EAT_4)(o(198, s), p, o, m) +# define MSGPACK_PP_FOR_198_I(s, p, o, m) MSGPACK_PP_IF(p(199, s), m, MSGPACK_PP_TUPLE_EAT_2)(199, s) MSGPACK_PP_IF(p(199, s), MSGPACK_PP_FOR_199, MSGPACK_PP_TUPLE_EAT_4)(o(199, s), p, o, m) +# define MSGPACK_PP_FOR_199_I(s, p, o, m) MSGPACK_PP_IF(p(200, s), m, MSGPACK_PP_TUPLE_EAT_2)(200, s) MSGPACK_PP_IF(p(200, s), MSGPACK_PP_FOR_200, MSGPACK_PP_TUPLE_EAT_4)(o(200, s), p, o, m) +# define MSGPACK_PP_FOR_200_I(s, p, o, m) MSGPACK_PP_IF(p(201, s), m, MSGPACK_PP_TUPLE_EAT_2)(201, s) MSGPACK_PP_IF(p(201, s), MSGPACK_PP_FOR_201, MSGPACK_PP_TUPLE_EAT_4)(o(201, s), p, o, m) +# define MSGPACK_PP_FOR_201_I(s, p, o, m) MSGPACK_PP_IF(p(202, s), m, MSGPACK_PP_TUPLE_EAT_2)(202, s) MSGPACK_PP_IF(p(202, s), MSGPACK_PP_FOR_202, MSGPACK_PP_TUPLE_EAT_4)(o(202, s), p, o, m) +# define MSGPACK_PP_FOR_202_I(s, p, o, m) MSGPACK_PP_IF(p(203, s), m, MSGPACK_PP_TUPLE_EAT_2)(203, s) MSGPACK_PP_IF(p(203, s), MSGPACK_PP_FOR_203, MSGPACK_PP_TUPLE_EAT_4)(o(203, s), p, o, m) +# define MSGPACK_PP_FOR_203_I(s, p, o, m) MSGPACK_PP_IF(p(204, s), m, MSGPACK_PP_TUPLE_EAT_2)(204, s) MSGPACK_PP_IF(p(204, s), MSGPACK_PP_FOR_204, MSGPACK_PP_TUPLE_EAT_4)(o(204, s), p, o, m) +# define MSGPACK_PP_FOR_204_I(s, p, o, m) MSGPACK_PP_IF(p(205, s), m, MSGPACK_PP_TUPLE_EAT_2)(205, s) MSGPACK_PP_IF(p(205, s), MSGPACK_PP_FOR_205, MSGPACK_PP_TUPLE_EAT_4)(o(205, s), p, o, m) +# define MSGPACK_PP_FOR_205_I(s, p, o, m) MSGPACK_PP_IF(p(206, s), m, MSGPACK_PP_TUPLE_EAT_2)(206, s) MSGPACK_PP_IF(p(206, s), MSGPACK_PP_FOR_206, MSGPACK_PP_TUPLE_EAT_4)(o(206, s), p, o, m) +# define MSGPACK_PP_FOR_206_I(s, p, o, m) MSGPACK_PP_IF(p(207, s), m, MSGPACK_PP_TUPLE_EAT_2)(207, s) MSGPACK_PP_IF(p(207, s), MSGPACK_PP_FOR_207, MSGPACK_PP_TUPLE_EAT_4)(o(207, s), p, o, m) +# define MSGPACK_PP_FOR_207_I(s, p, o, m) MSGPACK_PP_IF(p(208, s), m, MSGPACK_PP_TUPLE_EAT_2)(208, s) MSGPACK_PP_IF(p(208, s), MSGPACK_PP_FOR_208, MSGPACK_PP_TUPLE_EAT_4)(o(208, s), p, o, m) +# define MSGPACK_PP_FOR_208_I(s, p, o, m) MSGPACK_PP_IF(p(209, s), m, MSGPACK_PP_TUPLE_EAT_2)(209, s) MSGPACK_PP_IF(p(209, s), MSGPACK_PP_FOR_209, MSGPACK_PP_TUPLE_EAT_4)(o(209, s), p, o, m) +# define MSGPACK_PP_FOR_209_I(s, p, o, m) MSGPACK_PP_IF(p(210, s), m, MSGPACK_PP_TUPLE_EAT_2)(210, s) MSGPACK_PP_IF(p(210, s), MSGPACK_PP_FOR_210, MSGPACK_PP_TUPLE_EAT_4)(o(210, s), p, o, m) +# define MSGPACK_PP_FOR_210_I(s, p, o, m) MSGPACK_PP_IF(p(211, s), m, MSGPACK_PP_TUPLE_EAT_2)(211, s) MSGPACK_PP_IF(p(211, s), MSGPACK_PP_FOR_211, MSGPACK_PP_TUPLE_EAT_4)(o(211, s), p, o, m) +# define MSGPACK_PP_FOR_211_I(s, p, o, m) MSGPACK_PP_IF(p(212, s), m, MSGPACK_PP_TUPLE_EAT_2)(212, s) MSGPACK_PP_IF(p(212, s), MSGPACK_PP_FOR_212, MSGPACK_PP_TUPLE_EAT_4)(o(212, s), p, o, m) +# define MSGPACK_PP_FOR_212_I(s, p, o, m) MSGPACK_PP_IF(p(213, s), m, MSGPACK_PP_TUPLE_EAT_2)(213, s) MSGPACK_PP_IF(p(213, s), MSGPACK_PP_FOR_213, MSGPACK_PP_TUPLE_EAT_4)(o(213, s), p, o, m) +# define MSGPACK_PP_FOR_213_I(s, p, o, m) MSGPACK_PP_IF(p(214, s), m, MSGPACK_PP_TUPLE_EAT_2)(214, s) MSGPACK_PP_IF(p(214, s), MSGPACK_PP_FOR_214, MSGPACK_PP_TUPLE_EAT_4)(o(214, s), p, o, m) +# define MSGPACK_PP_FOR_214_I(s, p, o, m) MSGPACK_PP_IF(p(215, s), m, MSGPACK_PP_TUPLE_EAT_2)(215, s) MSGPACK_PP_IF(p(215, s), MSGPACK_PP_FOR_215, MSGPACK_PP_TUPLE_EAT_4)(o(215, s), p, o, m) +# define MSGPACK_PP_FOR_215_I(s, p, o, m) MSGPACK_PP_IF(p(216, s), m, MSGPACK_PP_TUPLE_EAT_2)(216, s) MSGPACK_PP_IF(p(216, s), MSGPACK_PP_FOR_216, MSGPACK_PP_TUPLE_EAT_4)(o(216, s), p, o, m) +# define MSGPACK_PP_FOR_216_I(s, p, o, m) MSGPACK_PP_IF(p(217, s), m, MSGPACK_PP_TUPLE_EAT_2)(217, s) MSGPACK_PP_IF(p(217, s), MSGPACK_PP_FOR_217, MSGPACK_PP_TUPLE_EAT_4)(o(217, s), p, o, m) +# define MSGPACK_PP_FOR_217_I(s, p, o, m) MSGPACK_PP_IF(p(218, s), m, MSGPACK_PP_TUPLE_EAT_2)(218, s) MSGPACK_PP_IF(p(218, s), MSGPACK_PP_FOR_218, MSGPACK_PP_TUPLE_EAT_4)(o(218, s), p, o, m) +# define MSGPACK_PP_FOR_218_I(s, p, o, m) MSGPACK_PP_IF(p(219, s), m, MSGPACK_PP_TUPLE_EAT_2)(219, s) MSGPACK_PP_IF(p(219, s), MSGPACK_PP_FOR_219, MSGPACK_PP_TUPLE_EAT_4)(o(219, s), p, o, m) +# define MSGPACK_PP_FOR_219_I(s, p, o, m) MSGPACK_PP_IF(p(220, s), m, MSGPACK_PP_TUPLE_EAT_2)(220, s) MSGPACK_PP_IF(p(220, s), MSGPACK_PP_FOR_220, MSGPACK_PP_TUPLE_EAT_4)(o(220, s), p, o, m) +# define MSGPACK_PP_FOR_220_I(s, p, o, m) MSGPACK_PP_IF(p(221, s), m, MSGPACK_PP_TUPLE_EAT_2)(221, s) MSGPACK_PP_IF(p(221, s), MSGPACK_PP_FOR_221, MSGPACK_PP_TUPLE_EAT_4)(o(221, s), p, o, m) +# define MSGPACK_PP_FOR_221_I(s, p, o, m) MSGPACK_PP_IF(p(222, s), m, MSGPACK_PP_TUPLE_EAT_2)(222, s) MSGPACK_PP_IF(p(222, s), MSGPACK_PP_FOR_222, MSGPACK_PP_TUPLE_EAT_4)(o(222, s), p, o, m) +# define MSGPACK_PP_FOR_222_I(s, p, o, m) MSGPACK_PP_IF(p(223, s), m, MSGPACK_PP_TUPLE_EAT_2)(223, s) MSGPACK_PP_IF(p(223, s), MSGPACK_PP_FOR_223, MSGPACK_PP_TUPLE_EAT_4)(o(223, s), p, o, m) +# define MSGPACK_PP_FOR_223_I(s, p, o, m) MSGPACK_PP_IF(p(224, s), m, MSGPACK_PP_TUPLE_EAT_2)(224, s) MSGPACK_PP_IF(p(224, s), MSGPACK_PP_FOR_224, MSGPACK_PP_TUPLE_EAT_4)(o(224, s), p, o, m) +# define MSGPACK_PP_FOR_224_I(s, p, o, m) MSGPACK_PP_IF(p(225, s), m, MSGPACK_PP_TUPLE_EAT_2)(225, s) MSGPACK_PP_IF(p(225, s), MSGPACK_PP_FOR_225, MSGPACK_PP_TUPLE_EAT_4)(o(225, s), p, o, m) +# define MSGPACK_PP_FOR_225_I(s, p, o, m) MSGPACK_PP_IF(p(226, s), m, MSGPACK_PP_TUPLE_EAT_2)(226, s) MSGPACK_PP_IF(p(226, s), MSGPACK_PP_FOR_226, MSGPACK_PP_TUPLE_EAT_4)(o(226, s), p, o, m) +# define MSGPACK_PP_FOR_226_I(s, p, o, m) MSGPACK_PP_IF(p(227, s), m, MSGPACK_PP_TUPLE_EAT_2)(227, s) MSGPACK_PP_IF(p(227, s), MSGPACK_PP_FOR_227, MSGPACK_PP_TUPLE_EAT_4)(o(227, s), p, o, m) +# define MSGPACK_PP_FOR_227_I(s, p, o, m) MSGPACK_PP_IF(p(228, s), m, MSGPACK_PP_TUPLE_EAT_2)(228, s) MSGPACK_PP_IF(p(228, s), MSGPACK_PP_FOR_228, MSGPACK_PP_TUPLE_EAT_4)(o(228, s), p, o, m) +# define MSGPACK_PP_FOR_228_I(s, p, o, m) MSGPACK_PP_IF(p(229, s), m, MSGPACK_PP_TUPLE_EAT_2)(229, s) MSGPACK_PP_IF(p(229, s), MSGPACK_PP_FOR_229, MSGPACK_PP_TUPLE_EAT_4)(o(229, s), p, o, m) +# define MSGPACK_PP_FOR_229_I(s, p, o, m) MSGPACK_PP_IF(p(230, s), m, MSGPACK_PP_TUPLE_EAT_2)(230, s) MSGPACK_PP_IF(p(230, s), MSGPACK_PP_FOR_230, MSGPACK_PP_TUPLE_EAT_4)(o(230, s), p, o, m) +# define MSGPACK_PP_FOR_230_I(s, p, o, m) MSGPACK_PP_IF(p(231, s), m, MSGPACK_PP_TUPLE_EAT_2)(231, s) MSGPACK_PP_IF(p(231, s), MSGPACK_PP_FOR_231, MSGPACK_PP_TUPLE_EAT_4)(o(231, s), p, o, m) +# define MSGPACK_PP_FOR_231_I(s, p, o, m) MSGPACK_PP_IF(p(232, s), m, MSGPACK_PP_TUPLE_EAT_2)(232, s) MSGPACK_PP_IF(p(232, s), MSGPACK_PP_FOR_232, MSGPACK_PP_TUPLE_EAT_4)(o(232, s), p, o, m) +# define MSGPACK_PP_FOR_232_I(s, p, o, m) MSGPACK_PP_IF(p(233, s), m, MSGPACK_PP_TUPLE_EAT_2)(233, s) MSGPACK_PP_IF(p(233, s), MSGPACK_PP_FOR_233, MSGPACK_PP_TUPLE_EAT_4)(o(233, s), p, o, m) +# define MSGPACK_PP_FOR_233_I(s, p, o, m) MSGPACK_PP_IF(p(234, s), m, MSGPACK_PP_TUPLE_EAT_2)(234, s) MSGPACK_PP_IF(p(234, s), MSGPACK_PP_FOR_234, MSGPACK_PP_TUPLE_EAT_4)(o(234, s), p, o, m) +# define MSGPACK_PP_FOR_234_I(s, p, o, m) MSGPACK_PP_IF(p(235, s), m, MSGPACK_PP_TUPLE_EAT_2)(235, s) MSGPACK_PP_IF(p(235, s), MSGPACK_PP_FOR_235, MSGPACK_PP_TUPLE_EAT_4)(o(235, s), p, o, m) +# define MSGPACK_PP_FOR_235_I(s, p, o, m) MSGPACK_PP_IF(p(236, s), m, MSGPACK_PP_TUPLE_EAT_2)(236, s) MSGPACK_PP_IF(p(236, s), MSGPACK_PP_FOR_236, MSGPACK_PP_TUPLE_EAT_4)(o(236, s), p, o, m) +# define MSGPACK_PP_FOR_236_I(s, p, o, m) MSGPACK_PP_IF(p(237, s), m, MSGPACK_PP_TUPLE_EAT_2)(237, s) MSGPACK_PP_IF(p(237, s), MSGPACK_PP_FOR_237, MSGPACK_PP_TUPLE_EAT_4)(o(237, s), p, o, m) +# define MSGPACK_PP_FOR_237_I(s, p, o, m) MSGPACK_PP_IF(p(238, s), m, MSGPACK_PP_TUPLE_EAT_2)(238, s) MSGPACK_PP_IF(p(238, s), MSGPACK_PP_FOR_238, MSGPACK_PP_TUPLE_EAT_4)(o(238, s), p, o, m) +# define MSGPACK_PP_FOR_238_I(s, p, o, m) MSGPACK_PP_IF(p(239, s), m, MSGPACK_PP_TUPLE_EAT_2)(239, s) MSGPACK_PP_IF(p(239, s), MSGPACK_PP_FOR_239, MSGPACK_PP_TUPLE_EAT_4)(o(239, s), p, o, m) +# define MSGPACK_PP_FOR_239_I(s, p, o, m) MSGPACK_PP_IF(p(240, s), m, MSGPACK_PP_TUPLE_EAT_2)(240, s) MSGPACK_PP_IF(p(240, s), MSGPACK_PP_FOR_240, MSGPACK_PP_TUPLE_EAT_4)(o(240, s), p, o, m) +# define MSGPACK_PP_FOR_240_I(s, p, o, m) MSGPACK_PP_IF(p(241, s), m, MSGPACK_PP_TUPLE_EAT_2)(241, s) MSGPACK_PP_IF(p(241, s), MSGPACK_PP_FOR_241, MSGPACK_PP_TUPLE_EAT_4)(o(241, s), p, o, m) +# define MSGPACK_PP_FOR_241_I(s, p, o, m) MSGPACK_PP_IF(p(242, s), m, MSGPACK_PP_TUPLE_EAT_2)(242, s) MSGPACK_PP_IF(p(242, s), MSGPACK_PP_FOR_242, MSGPACK_PP_TUPLE_EAT_4)(o(242, s), p, o, m) +# define MSGPACK_PP_FOR_242_I(s, p, o, m) MSGPACK_PP_IF(p(243, s), m, MSGPACK_PP_TUPLE_EAT_2)(243, s) MSGPACK_PP_IF(p(243, s), MSGPACK_PP_FOR_243, MSGPACK_PP_TUPLE_EAT_4)(o(243, s), p, o, m) +# define MSGPACK_PP_FOR_243_I(s, p, o, m) MSGPACK_PP_IF(p(244, s), m, MSGPACK_PP_TUPLE_EAT_2)(244, s) MSGPACK_PP_IF(p(244, s), MSGPACK_PP_FOR_244, MSGPACK_PP_TUPLE_EAT_4)(o(244, s), p, o, m) +# define MSGPACK_PP_FOR_244_I(s, p, o, m) MSGPACK_PP_IF(p(245, s), m, MSGPACK_PP_TUPLE_EAT_2)(245, s) MSGPACK_PP_IF(p(245, s), MSGPACK_PP_FOR_245, MSGPACK_PP_TUPLE_EAT_4)(o(245, s), p, o, m) +# define MSGPACK_PP_FOR_245_I(s, p, o, m) MSGPACK_PP_IF(p(246, s), m, MSGPACK_PP_TUPLE_EAT_2)(246, s) MSGPACK_PP_IF(p(246, s), MSGPACK_PP_FOR_246, MSGPACK_PP_TUPLE_EAT_4)(o(246, s), p, o, m) +# define MSGPACK_PP_FOR_246_I(s, p, o, m) MSGPACK_PP_IF(p(247, s), m, MSGPACK_PP_TUPLE_EAT_2)(247, s) MSGPACK_PP_IF(p(247, s), MSGPACK_PP_FOR_247, MSGPACK_PP_TUPLE_EAT_4)(o(247, s), p, o, m) +# define MSGPACK_PP_FOR_247_I(s, p, o, m) MSGPACK_PP_IF(p(248, s), m, MSGPACK_PP_TUPLE_EAT_2)(248, s) MSGPACK_PP_IF(p(248, s), MSGPACK_PP_FOR_248, MSGPACK_PP_TUPLE_EAT_4)(o(248, s), p, o, m) +# define MSGPACK_PP_FOR_248_I(s, p, o, m) MSGPACK_PP_IF(p(249, s), m, MSGPACK_PP_TUPLE_EAT_2)(249, s) MSGPACK_PP_IF(p(249, s), MSGPACK_PP_FOR_249, MSGPACK_PP_TUPLE_EAT_4)(o(249, s), p, o, m) +# define MSGPACK_PP_FOR_249_I(s, p, o, m) MSGPACK_PP_IF(p(250, s), m, MSGPACK_PP_TUPLE_EAT_2)(250, s) MSGPACK_PP_IF(p(250, s), MSGPACK_PP_FOR_250, MSGPACK_PP_TUPLE_EAT_4)(o(250, s), p, o, m) +# define MSGPACK_PP_FOR_250_I(s, p, o, m) MSGPACK_PP_IF(p(251, s), m, MSGPACK_PP_TUPLE_EAT_2)(251, s) MSGPACK_PP_IF(p(251, s), MSGPACK_PP_FOR_251, MSGPACK_PP_TUPLE_EAT_4)(o(251, s), p, o, m) +# define MSGPACK_PP_FOR_251_I(s, p, o, m) MSGPACK_PP_IF(p(252, s), m, MSGPACK_PP_TUPLE_EAT_2)(252, s) MSGPACK_PP_IF(p(252, s), MSGPACK_PP_FOR_252, MSGPACK_PP_TUPLE_EAT_4)(o(252, s), p, o, m) +# define MSGPACK_PP_FOR_252_I(s, p, o, m) MSGPACK_PP_IF(p(253, s), m, MSGPACK_PP_TUPLE_EAT_2)(253, s) MSGPACK_PP_IF(p(253, s), MSGPACK_PP_FOR_253, MSGPACK_PP_TUPLE_EAT_4)(o(253, s), p, o, m) +# define MSGPACK_PP_FOR_253_I(s, p, o, m) MSGPACK_PP_IF(p(254, s), m, MSGPACK_PP_TUPLE_EAT_2)(254, s) MSGPACK_PP_IF(p(254, s), MSGPACK_PP_FOR_254, MSGPACK_PP_TUPLE_EAT_4)(o(254, s), p, o, m) +# define MSGPACK_PP_FOR_254_I(s, p, o, m) MSGPACK_PP_IF(p(255, s), m, MSGPACK_PP_TUPLE_EAT_2)(255, s) MSGPACK_PP_IF(p(255, s), MSGPACK_PP_FOR_255, MSGPACK_PP_TUPLE_EAT_4)(o(255, s), p, o, m) +# define MSGPACK_PP_FOR_255_I(s, p, o, m) MSGPACK_PP_IF(p(256, s), m, MSGPACK_PP_TUPLE_EAT_2)(256, s) MSGPACK_PP_IF(p(256, s), MSGPACK_PP_FOR_256, MSGPACK_PP_TUPLE_EAT_4)(o(256, s), p, o, m) +# define MSGPACK_PP_FOR_256_I(s, p, o, m) MSGPACK_PP_IF(p(257, s), m, MSGPACK_PP_TUPLE_EAT_2)(257, s) MSGPACK_PP_IF(p(257, s), MSGPACK_PP_FOR_257, MSGPACK_PP_TUPLE_EAT_4)(o(257, s), p, o, m) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/detail/for.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/detail/for.hpp new file mode 100644 index 000000000000..938681ca0c04 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/detail/for.hpp @@ -0,0 +1,536 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP +# +# include +# include +# include +# include +# +# define MSGPACK_PP_FOR_1(s, p, o, m) MSGPACK_PP_FOR_1_C(MSGPACK_PP_BOOL(p(2, s)), s, p, o, m) +# define MSGPACK_PP_FOR_2(s, p, o, m) MSGPACK_PP_FOR_2_C(MSGPACK_PP_BOOL(p(3, s)), s, p, o, m) +# define MSGPACK_PP_FOR_3(s, p, o, m) MSGPACK_PP_FOR_3_C(MSGPACK_PP_BOOL(p(4, s)), s, p, o, m) +# define MSGPACK_PP_FOR_4(s, p, o, m) MSGPACK_PP_FOR_4_C(MSGPACK_PP_BOOL(p(5, s)), s, p, o, m) +# define MSGPACK_PP_FOR_5(s, p, o, m) MSGPACK_PP_FOR_5_C(MSGPACK_PP_BOOL(p(6, s)), s, p, o, m) +# define MSGPACK_PP_FOR_6(s, p, o, m) MSGPACK_PP_FOR_6_C(MSGPACK_PP_BOOL(p(7, s)), s, p, o, m) +# define MSGPACK_PP_FOR_7(s, p, o, m) MSGPACK_PP_FOR_7_C(MSGPACK_PP_BOOL(p(8, s)), s, p, o, m) +# define MSGPACK_PP_FOR_8(s, p, o, m) MSGPACK_PP_FOR_8_C(MSGPACK_PP_BOOL(p(9, s)), s, p, o, m) +# define MSGPACK_PP_FOR_9(s, p, o, m) MSGPACK_PP_FOR_9_C(MSGPACK_PP_BOOL(p(10, s)), s, p, o, m) +# define MSGPACK_PP_FOR_10(s, p, o, m) MSGPACK_PP_FOR_10_C(MSGPACK_PP_BOOL(p(11, s)), s, p, o, m) +# define MSGPACK_PP_FOR_11(s, p, o, m) MSGPACK_PP_FOR_11_C(MSGPACK_PP_BOOL(p(12, s)), s, p, o, m) +# define MSGPACK_PP_FOR_12(s, p, o, m) MSGPACK_PP_FOR_12_C(MSGPACK_PP_BOOL(p(13, s)), s, p, o, m) +# define MSGPACK_PP_FOR_13(s, p, o, m) MSGPACK_PP_FOR_13_C(MSGPACK_PP_BOOL(p(14, s)), s, p, o, m) +# define MSGPACK_PP_FOR_14(s, p, o, m) MSGPACK_PP_FOR_14_C(MSGPACK_PP_BOOL(p(15, s)), s, p, o, m) +# define MSGPACK_PP_FOR_15(s, p, o, m) MSGPACK_PP_FOR_15_C(MSGPACK_PP_BOOL(p(16, s)), s, p, o, m) +# define MSGPACK_PP_FOR_16(s, p, o, m) MSGPACK_PP_FOR_16_C(MSGPACK_PP_BOOL(p(17, s)), s, p, o, m) +# define MSGPACK_PP_FOR_17(s, p, o, m) MSGPACK_PP_FOR_17_C(MSGPACK_PP_BOOL(p(18, s)), s, p, o, m) +# define MSGPACK_PP_FOR_18(s, p, o, m) MSGPACK_PP_FOR_18_C(MSGPACK_PP_BOOL(p(19, s)), s, p, o, m) +# define MSGPACK_PP_FOR_19(s, p, o, m) MSGPACK_PP_FOR_19_C(MSGPACK_PP_BOOL(p(20, s)), s, p, o, m) +# define MSGPACK_PP_FOR_20(s, p, o, m) MSGPACK_PP_FOR_20_C(MSGPACK_PP_BOOL(p(21, s)), s, p, o, m) +# define MSGPACK_PP_FOR_21(s, p, o, m) MSGPACK_PP_FOR_21_C(MSGPACK_PP_BOOL(p(22, s)), s, p, o, m) +# define MSGPACK_PP_FOR_22(s, p, o, m) MSGPACK_PP_FOR_22_C(MSGPACK_PP_BOOL(p(23, s)), s, p, o, m) +# define MSGPACK_PP_FOR_23(s, p, o, m) MSGPACK_PP_FOR_23_C(MSGPACK_PP_BOOL(p(24, s)), s, p, o, m) +# define MSGPACK_PP_FOR_24(s, p, o, m) MSGPACK_PP_FOR_24_C(MSGPACK_PP_BOOL(p(25, s)), s, p, o, m) +# define MSGPACK_PP_FOR_25(s, p, o, m) MSGPACK_PP_FOR_25_C(MSGPACK_PP_BOOL(p(26, s)), s, p, o, m) +# define MSGPACK_PP_FOR_26(s, p, o, m) MSGPACK_PP_FOR_26_C(MSGPACK_PP_BOOL(p(27, s)), s, p, o, m) +# define MSGPACK_PP_FOR_27(s, p, o, m) MSGPACK_PP_FOR_27_C(MSGPACK_PP_BOOL(p(28, s)), s, p, o, m) +# define MSGPACK_PP_FOR_28(s, p, o, m) MSGPACK_PP_FOR_28_C(MSGPACK_PP_BOOL(p(29, s)), s, p, o, m) +# define MSGPACK_PP_FOR_29(s, p, o, m) MSGPACK_PP_FOR_29_C(MSGPACK_PP_BOOL(p(30, s)), s, p, o, m) +# define MSGPACK_PP_FOR_30(s, p, o, m) MSGPACK_PP_FOR_30_C(MSGPACK_PP_BOOL(p(31, s)), s, p, o, m) +# define MSGPACK_PP_FOR_31(s, p, o, m) MSGPACK_PP_FOR_31_C(MSGPACK_PP_BOOL(p(32, s)), s, p, o, m) +# define MSGPACK_PP_FOR_32(s, p, o, m) MSGPACK_PP_FOR_32_C(MSGPACK_PP_BOOL(p(33, s)), s, p, o, m) +# define MSGPACK_PP_FOR_33(s, p, o, m) MSGPACK_PP_FOR_33_C(MSGPACK_PP_BOOL(p(34, s)), s, p, o, m) +# define MSGPACK_PP_FOR_34(s, p, o, m) MSGPACK_PP_FOR_34_C(MSGPACK_PP_BOOL(p(35, s)), s, p, o, m) +# define MSGPACK_PP_FOR_35(s, p, o, m) MSGPACK_PP_FOR_35_C(MSGPACK_PP_BOOL(p(36, s)), s, p, o, m) +# define MSGPACK_PP_FOR_36(s, p, o, m) MSGPACK_PP_FOR_36_C(MSGPACK_PP_BOOL(p(37, s)), s, p, o, m) +# define MSGPACK_PP_FOR_37(s, p, o, m) MSGPACK_PP_FOR_37_C(MSGPACK_PP_BOOL(p(38, s)), s, p, o, m) +# define MSGPACK_PP_FOR_38(s, p, o, m) MSGPACK_PP_FOR_38_C(MSGPACK_PP_BOOL(p(39, s)), s, p, o, m) +# define MSGPACK_PP_FOR_39(s, p, o, m) MSGPACK_PP_FOR_39_C(MSGPACK_PP_BOOL(p(40, s)), s, p, o, m) +# define MSGPACK_PP_FOR_40(s, p, o, m) MSGPACK_PP_FOR_40_C(MSGPACK_PP_BOOL(p(41, s)), s, p, o, m) +# define MSGPACK_PP_FOR_41(s, p, o, m) MSGPACK_PP_FOR_41_C(MSGPACK_PP_BOOL(p(42, s)), s, p, o, m) +# define MSGPACK_PP_FOR_42(s, p, o, m) MSGPACK_PP_FOR_42_C(MSGPACK_PP_BOOL(p(43, s)), s, p, o, m) +# define MSGPACK_PP_FOR_43(s, p, o, m) MSGPACK_PP_FOR_43_C(MSGPACK_PP_BOOL(p(44, s)), s, p, o, m) +# define MSGPACK_PP_FOR_44(s, p, o, m) MSGPACK_PP_FOR_44_C(MSGPACK_PP_BOOL(p(45, s)), s, p, o, m) +# define MSGPACK_PP_FOR_45(s, p, o, m) MSGPACK_PP_FOR_45_C(MSGPACK_PP_BOOL(p(46, s)), s, p, o, m) +# define MSGPACK_PP_FOR_46(s, p, o, m) MSGPACK_PP_FOR_46_C(MSGPACK_PP_BOOL(p(47, s)), s, p, o, m) +# define MSGPACK_PP_FOR_47(s, p, o, m) MSGPACK_PP_FOR_47_C(MSGPACK_PP_BOOL(p(48, s)), s, p, o, m) +# define MSGPACK_PP_FOR_48(s, p, o, m) MSGPACK_PP_FOR_48_C(MSGPACK_PP_BOOL(p(49, s)), s, p, o, m) +# define MSGPACK_PP_FOR_49(s, p, o, m) MSGPACK_PP_FOR_49_C(MSGPACK_PP_BOOL(p(50, s)), s, p, o, m) +# define MSGPACK_PP_FOR_50(s, p, o, m) MSGPACK_PP_FOR_50_C(MSGPACK_PP_BOOL(p(51, s)), s, p, o, m) +# define MSGPACK_PP_FOR_51(s, p, o, m) MSGPACK_PP_FOR_51_C(MSGPACK_PP_BOOL(p(52, s)), s, p, o, m) +# define MSGPACK_PP_FOR_52(s, p, o, m) MSGPACK_PP_FOR_52_C(MSGPACK_PP_BOOL(p(53, s)), s, p, o, m) +# define MSGPACK_PP_FOR_53(s, p, o, m) MSGPACK_PP_FOR_53_C(MSGPACK_PP_BOOL(p(54, s)), s, p, o, m) +# define MSGPACK_PP_FOR_54(s, p, o, m) MSGPACK_PP_FOR_54_C(MSGPACK_PP_BOOL(p(55, s)), s, p, o, m) +# define MSGPACK_PP_FOR_55(s, p, o, m) MSGPACK_PP_FOR_55_C(MSGPACK_PP_BOOL(p(56, s)), s, p, o, m) +# define MSGPACK_PP_FOR_56(s, p, o, m) MSGPACK_PP_FOR_56_C(MSGPACK_PP_BOOL(p(57, s)), s, p, o, m) +# define MSGPACK_PP_FOR_57(s, p, o, m) MSGPACK_PP_FOR_57_C(MSGPACK_PP_BOOL(p(58, s)), s, p, o, m) +# define MSGPACK_PP_FOR_58(s, p, o, m) MSGPACK_PP_FOR_58_C(MSGPACK_PP_BOOL(p(59, s)), s, p, o, m) +# define MSGPACK_PP_FOR_59(s, p, o, m) MSGPACK_PP_FOR_59_C(MSGPACK_PP_BOOL(p(60, s)), s, p, o, m) +# define MSGPACK_PP_FOR_60(s, p, o, m) MSGPACK_PP_FOR_60_C(MSGPACK_PP_BOOL(p(61, s)), s, p, o, m) +# define MSGPACK_PP_FOR_61(s, p, o, m) MSGPACK_PP_FOR_61_C(MSGPACK_PP_BOOL(p(62, s)), s, p, o, m) +# define MSGPACK_PP_FOR_62(s, p, o, m) MSGPACK_PP_FOR_62_C(MSGPACK_PP_BOOL(p(63, s)), s, p, o, m) +# define MSGPACK_PP_FOR_63(s, p, o, m) MSGPACK_PP_FOR_63_C(MSGPACK_PP_BOOL(p(64, s)), s, p, o, m) +# define MSGPACK_PP_FOR_64(s, p, o, m) MSGPACK_PP_FOR_64_C(MSGPACK_PP_BOOL(p(65, s)), s, p, o, m) +# define MSGPACK_PP_FOR_65(s, p, o, m) MSGPACK_PP_FOR_65_C(MSGPACK_PP_BOOL(p(66, s)), s, p, o, m) +# define MSGPACK_PP_FOR_66(s, p, o, m) MSGPACK_PP_FOR_66_C(MSGPACK_PP_BOOL(p(67, s)), s, p, o, m) +# define MSGPACK_PP_FOR_67(s, p, o, m) MSGPACK_PP_FOR_67_C(MSGPACK_PP_BOOL(p(68, s)), s, p, o, m) +# define MSGPACK_PP_FOR_68(s, p, o, m) MSGPACK_PP_FOR_68_C(MSGPACK_PP_BOOL(p(69, s)), s, p, o, m) +# define MSGPACK_PP_FOR_69(s, p, o, m) MSGPACK_PP_FOR_69_C(MSGPACK_PP_BOOL(p(70, s)), s, p, o, m) +# define MSGPACK_PP_FOR_70(s, p, o, m) MSGPACK_PP_FOR_70_C(MSGPACK_PP_BOOL(p(71, s)), s, p, o, m) +# define MSGPACK_PP_FOR_71(s, p, o, m) MSGPACK_PP_FOR_71_C(MSGPACK_PP_BOOL(p(72, s)), s, p, o, m) +# define MSGPACK_PP_FOR_72(s, p, o, m) MSGPACK_PP_FOR_72_C(MSGPACK_PP_BOOL(p(73, s)), s, p, o, m) +# define MSGPACK_PP_FOR_73(s, p, o, m) MSGPACK_PP_FOR_73_C(MSGPACK_PP_BOOL(p(74, s)), s, p, o, m) +# define MSGPACK_PP_FOR_74(s, p, o, m) MSGPACK_PP_FOR_74_C(MSGPACK_PP_BOOL(p(75, s)), s, p, o, m) +# define MSGPACK_PP_FOR_75(s, p, o, m) MSGPACK_PP_FOR_75_C(MSGPACK_PP_BOOL(p(76, s)), s, p, o, m) +# define MSGPACK_PP_FOR_76(s, p, o, m) MSGPACK_PP_FOR_76_C(MSGPACK_PP_BOOL(p(77, s)), s, p, o, m) +# define MSGPACK_PP_FOR_77(s, p, o, m) MSGPACK_PP_FOR_77_C(MSGPACK_PP_BOOL(p(78, s)), s, p, o, m) +# define MSGPACK_PP_FOR_78(s, p, o, m) MSGPACK_PP_FOR_78_C(MSGPACK_PP_BOOL(p(79, s)), s, p, o, m) +# define MSGPACK_PP_FOR_79(s, p, o, m) MSGPACK_PP_FOR_79_C(MSGPACK_PP_BOOL(p(80, s)), s, p, o, m) +# define MSGPACK_PP_FOR_80(s, p, o, m) MSGPACK_PP_FOR_80_C(MSGPACK_PP_BOOL(p(81, s)), s, p, o, m) +# define MSGPACK_PP_FOR_81(s, p, o, m) MSGPACK_PP_FOR_81_C(MSGPACK_PP_BOOL(p(82, s)), s, p, o, m) +# define MSGPACK_PP_FOR_82(s, p, o, m) MSGPACK_PP_FOR_82_C(MSGPACK_PP_BOOL(p(83, s)), s, p, o, m) +# define MSGPACK_PP_FOR_83(s, p, o, m) MSGPACK_PP_FOR_83_C(MSGPACK_PP_BOOL(p(84, s)), s, p, o, m) +# define MSGPACK_PP_FOR_84(s, p, o, m) MSGPACK_PP_FOR_84_C(MSGPACK_PP_BOOL(p(85, s)), s, p, o, m) +# define MSGPACK_PP_FOR_85(s, p, o, m) MSGPACK_PP_FOR_85_C(MSGPACK_PP_BOOL(p(86, s)), s, p, o, m) +# define MSGPACK_PP_FOR_86(s, p, o, m) MSGPACK_PP_FOR_86_C(MSGPACK_PP_BOOL(p(87, s)), s, p, o, m) +# define MSGPACK_PP_FOR_87(s, p, o, m) MSGPACK_PP_FOR_87_C(MSGPACK_PP_BOOL(p(88, s)), s, p, o, m) +# define MSGPACK_PP_FOR_88(s, p, o, m) MSGPACK_PP_FOR_88_C(MSGPACK_PP_BOOL(p(89, s)), s, p, o, m) +# define MSGPACK_PP_FOR_89(s, p, o, m) MSGPACK_PP_FOR_89_C(MSGPACK_PP_BOOL(p(90, s)), s, p, o, m) +# define MSGPACK_PP_FOR_90(s, p, o, m) MSGPACK_PP_FOR_90_C(MSGPACK_PP_BOOL(p(91, s)), s, p, o, m) +# define MSGPACK_PP_FOR_91(s, p, o, m) MSGPACK_PP_FOR_91_C(MSGPACK_PP_BOOL(p(92, s)), s, p, o, m) +# define MSGPACK_PP_FOR_92(s, p, o, m) MSGPACK_PP_FOR_92_C(MSGPACK_PP_BOOL(p(93, s)), s, p, o, m) +# define MSGPACK_PP_FOR_93(s, p, o, m) MSGPACK_PP_FOR_93_C(MSGPACK_PP_BOOL(p(94, s)), s, p, o, m) +# define MSGPACK_PP_FOR_94(s, p, o, m) MSGPACK_PP_FOR_94_C(MSGPACK_PP_BOOL(p(95, s)), s, p, o, m) +# define MSGPACK_PP_FOR_95(s, p, o, m) MSGPACK_PP_FOR_95_C(MSGPACK_PP_BOOL(p(96, s)), s, p, o, m) +# define MSGPACK_PP_FOR_96(s, p, o, m) MSGPACK_PP_FOR_96_C(MSGPACK_PP_BOOL(p(97, s)), s, p, o, m) +# define MSGPACK_PP_FOR_97(s, p, o, m) MSGPACK_PP_FOR_97_C(MSGPACK_PP_BOOL(p(98, s)), s, p, o, m) +# define MSGPACK_PP_FOR_98(s, p, o, m) MSGPACK_PP_FOR_98_C(MSGPACK_PP_BOOL(p(99, s)), s, p, o, m) +# define MSGPACK_PP_FOR_99(s, p, o, m) MSGPACK_PP_FOR_99_C(MSGPACK_PP_BOOL(p(100, s)), s, p, o, m) +# define MSGPACK_PP_FOR_100(s, p, o, m) MSGPACK_PP_FOR_100_C(MSGPACK_PP_BOOL(p(101, s)), s, p, o, m) +# define MSGPACK_PP_FOR_101(s, p, o, m) MSGPACK_PP_FOR_101_C(MSGPACK_PP_BOOL(p(102, s)), s, p, o, m) +# define MSGPACK_PP_FOR_102(s, p, o, m) MSGPACK_PP_FOR_102_C(MSGPACK_PP_BOOL(p(103, s)), s, p, o, m) +# define MSGPACK_PP_FOR_103(s, p, o, m) MSGPACK_PP_FOR_103_C(MSGPACK_PP_BOOL(p(104, s)), s, p, o, m) +# define MSGPACK_PP_FOR_104(s, p, o, m) MSGPACK_PP_FOR_104_C(MSGPACK_PP_BOOL(p(105, s)), s, p, o, m) +# define MSGPACK_PP_FOR_105(s, p, o, m) MSGPACK_PP_FOR_105_C(MSGPACK_PP_BOOL(p(106, s)), s, p, o, m) +# define MSGPACK_PP_FOR_106(s, p, o, m) MSGPACK_PP_FOR_106_C(MSGPACK_PP_BOOL(p(107, s)), s, p, o, m) +# define MSGPACK_PP_FOR_107(s, p, o, m) MSGPACK_PP_FOR_107_C(MSGPACK_PP_BOOL(p(108, s)), s, p, o, m) +# define MSGPACK_PP_FOR_108(s, p, o, m) MSGPACK_PP_FOR_108_C(MSGPACK_PP_BOOL(p(109, s)), s, p, o, m) +# define MSGPACK_PP_FOR_109(s, p, o, m) MSGPACK_PP_FOR_109_C(MSGPACK_PP_BOOL(p(110, s)), s, p, o, m) +# define MSGPACK_PP_FOR_110(s, p, o, m) MSGPACK_PP_FOR_110_C(MSGPACK_PP_BOOL(p(111, s)), s, p, o, m) +# define MSGPACK_PP_FOR_111(s, p, o, m) MSGPACK_PP_FOR_111_C(MSGPACK_PP_BOOL(p(112, s)), s, p, o, m) +# define MSGPACK_PP_FOR_112(s, p, o, m) MSGPACK_PP_FOR_112_C(MSGPACK_PP_BOOL(p(113, s)), s, p, o, m) +# define MSGPACK_PP_FOR_113(s, p, o, m) MSGPACK_PP_FOR_113_C(MSGPACK_PP_BOOL(p(114, s)), s, p, o, m) +# define MSGPACK_PP_FOR_114(s, p, o, m) MSGPACK_PP_FOR_114_C(MSGPACK_PP_BOOL(p(115, s)), s, p, o, m) +# define MSGPACK_PP_FOR_115(s, p, o, m) MSGPACK_PP_FOR_115_C(MSGPACK_PP_BOOL(p(116, s)), s, p, o, m) +# define MSGPACK_PP_FOR_116(s, p, o, m) MSGPACK_PP_FOR_116_C(MSGPACK_PP_BOOL(p(117, s)), s, p, o, m) +# define MSGPACK_PP_FOR_117(s, p, o, m) MSGPACK_PP_FOR_117_C(MSGPACK_PP_BOOL(p(118, s)), s, p, o, m) +# define MSGPACK_PP_FOR_118(s, p, o, m) MSGPACK_PP_FOR_118_C(MSGPACK_PP_BOOL(p(119, s)), s, p, o, m) +# define MSGPACK_PP_FOR_119(s, p, o, m) MSGPACK_PP_FOR_119_C(MSGPACK_PP_BOOL(p(120, s)), s, p, o, m) +# define MSGPACK_PP_FOR_120(s, p, o, m) MSGPACK_PP_FOR_120_C(MSGPACK_PP_BOOL(p(121, s)), s, p, o, m) +# define MSGPACK_PP_FOR_121(s, p, o, m) MSGPACK_PP_FOR_121_C(MSGPACK_PP_BOOL(p(122, s)), s, p, o, m) +# define MSGPACK_PP_FOR_122(s, p, o, m) MSGPACK_PP_FOR_122_C(MSGPACK_PP_BOOL(p(123, s)), s, p, o, m) +# define MSGPACK_PP_FOR_123(s, p, o, m) MSGPACK_PP_FOR_123_C(MSGPACK_PP_BOOL(p(124, s)), s, p, o, m) +# define MSGPACK_PP_FOR_124(s, p, o, m) MSGPACK_PP_FOR_124_C(MSGPACK_PP_BOOL(p(125, s)), s, p, o, m) +# define MSGPACK_PP_FOR_125(s, p, o, m) MSGPACK_PP_FOR_125_C(MSGPACK_PP_BOOL(p(126, s)), s, p, o, m) +# define MSGPACK_PP_FOR_126(s, p, o, m) MSGPACK_PP_FOR_126_C(MSGPACK_PP_BOOL(p(127, s)), s, p, o, m) +# define MSGPACK_PP_FOR_127(s, p, o, m) MSGPACK_PP_FOR_127_C(MSGPACK_PP_BOOL(p(128, s)), s, p, o, m) +# define MSGPACK_PP_FOR_128(s, p, o, m) MSGPACK_PP_FOR_128_C(MSGPACK_PP_BOOL(p(129, s)), s, p, o, m) +# define MSGPACK_PP_FOR_129(s, p, o, m) MSGPACK_PP_FOR_129_C(MSGPACK_PP_BOOL(p(130, s)), s, p, o, m) +# define MSGPACK_PP_FOR_130(s, p, o, m) MSGPACK_PP_FOR_130_C(MSGPACK_PP_BOOL(p(131, s)), s, p, o, m) +# define MSGPACK_PP_FOR_131(s, p, o, m) MSGPACK_PP_FOR_131_C(MSGPACK_PP_BOOL(p(132, s)), s, p, o, m) +# define MSGPACK_PP_FOR_132(s, p, o, m) MSGPACK_PP_FOR_132_C(MSGPACK_PP_BOOL(p(133, s)), s, p, o, m) +# define MSGPACK_PP_FOR_133(s, p, o, m) MSGPACK_PP_FOR_133_C(MSGPACK_PP_BOOL(p(134, s)), s, p, o, m) +# define MSGPACK_PP_FOR_134(s, p, o, m) MSGPACK_PP_FOR_134_C(MSGPACK_PP_BOOL(p(135, s)), s, p, o, m) +# define MSGPACK_PP_FOR_135(s, p, o, m) MSGPACK_PP_FOR_135_C(MSGPACK_PP_BOOL(p(136, s)), s, p, o, m) +# define MSGPACK_PP_FOR_136(s, p, o, m) MSGPACK_PP_FOR_136_C(MSGPACK_PP_BOOL(p(137, s)), s, p, o, m) +# define MSGPACK_PP_FOR_137(s, p, o, m) MSGPACK_PP_FOR_137_C(MSGPACK_PP_BOOL(p(138, s)), s, p, o, m) +# define MSGPACK_PP_FOR_138(s, p, o, m) MSGPACK_PP_FOR_138_C(MSGPACK_PP_BOOL(p(139, s)), s, p, o, m) +# define MSGPACK_PP_FOR_139(s, p, o, m) MSGPACK_PP_FOR_139_C(MSGPACK_PP_BOOL(p(140, s)), s, p, o, m) +# define MSGPACK_PP_FOR_140(s, p, o, m) MSGPACK_PP_FOR_140_C(MSGPACK_PP_BOOL(p(141, s)), s, p, o, m) +# define MSGPACK_PP_FOR_141(s, p, o, m) MSGPACK_PP_FOR_141_C(MSGPACK_PP_BOOL(p(142, s)), s, p, o, m) +# define MSGPACK_PP_FOR_142(s, p, o, m) MSGPACK_PP_FOR_142_C(MSGPACK_PP_BOOL(p(143, s)), s, p, o, m) +# define MSGPACK_PP_FOR_143(s, p, o, m) MSGPACK_PP_FOR_143_C(MSGPACK_PP_BOOL(p(144, s)), s, p, o, m) +# define MSGPACK_PP_FOR_144(s, p, o, m) MSGPACK_PP_FOR_144_C(MSGPACK_PP_BOOL(p(145, s)), s, p, o, m) +# define MSGPACK_PP_FOR_145(s, p, o, m) MSGPACK_PP_FOR_145_C(MSGPACK_PP_BOOL(p(146, s)), s, p, o, m) +# define MSGPACK_PP_FOR_146(s, p, o, m) MSGPACK_PP_FOR_146_C(MSGPACK_PP_BOOL(p(147, s)), s, p, o, m) +# define MSGPACK_PP_FOR_147(s, p, o, m) MSGPACK_PP_FOR_147_C(MSGPACK_PP_BOOL(p(148, s)), s, p, o, m) +# define MSGPACK_PP_FOR_148(s, p, o, m) MSGPACK_PP_FOR_148_C(MSGPACK_PP_BOOL(p(149, s)), s, p, o, m) +# define MSGPACK_PP_FOR_149(s, p, o, m) MSGPACK_PP_FOR_149_C(MSGPACK_PP_BOOL(p(150, s)), s, p, o, m) +# define MSGPACK_PP_FOR_150(s, p, o, m) MSGPACK_PP_FOR_150_C(MSGPACK_PP_BOOL(p(151, s)), s, p, o, m) +# define MSGPACK_PP_FOR_151(s, p, o, m) MSGPACK_PP_FOR_151_C(MSGPACK_PP_BOOL(p(152, s)), s, p, o, m) +# define MSGPACK_PP_FOR_152(s, p, o, m) MSGPACK_PP_FOR_152_C(MSGPACK_PP_BOOL(p(153, s)), s, p, o, m) +# define MSGPACK_PP_FOR_153(s, p, o, m) MSGPACK_PP_FOR_153_C(MSGPACK_PP_BOOL(p(154, s)), s, p, o, m) +# define MSGPACK_PP_FOR_154(s, p, o, m) MSGPACK_PP_FOR_154_C(MSGPACK_PP_BOOL(p(155, s)), s, p, o, m) +# define MSGPACK_PP_FOR_155(s, p, o, m) MSGPACK_PP_FOR_155_C(MSGPACK_PP_BOOL(p(156, s)), s, p, o, m) +# define MSGPACK_PP_FOR_156(s, p, o, m) MSGPACK_PP_FOR_156_C(MSGPACK_PP_BOOL(p(157, s)), s, p, o, m) +# define MSGPACK_PP_FOR_157(s, p, o, m) MSGPACK_PP_FOR_157_C(MSGPACK_PP_BOOL(p(158, s)), s, p, o, m) +# define MSGPACK_PP_FOR_158(s, p, o, m) MSGPACK_PP_FOR_158_C(MSGPACK_PP_BOOL(p(159, s)), s, p, o, m) +# define MSGPACK_PP_FOR_159(s, p, o, m) MSGPACK_PP_FOR_159_C(MSGPACK_PP_BOOL(p(160, s)), s, p, o, m) +# define MSGPACK_PP_FOR_160(s, p, o, m) MSGPACK_PP_FOR_160_C(MSGPACK_PP_BOOL(p(161, s)), s, p, o, m) +# define MSGPACK_PP_FOR_161(s, p, o, m) MSGPACK_PP_FOR_161_C(MSGPACK_PP_BOOL(p(162, s)), s, p, o, m) +# define MSGPACK_PP_FOR_162(s, p, o, m) MSGPACK_PP_FOR_162_C(MSGPACK_PP_BOOL(p(163, s)), s, p, o, m) +# define MSGPACK_PP_FOR_163(s, p, o, m) MSGPACK_PP_FOR_163_C(MSGPACK_PP_BOOL(p(164, s)), s, p, o, m) +# define MSGPACK_PP_FOR_164(s, p, o, m) MSGPACK_PP_FOR_164_C(MSGPACK_PP_BOOL(p(165, s)), s, p, o, m) +# define MSGPACK_PP_FOR_165(s, p, o, m) MSGPACK_PP_FOR_165_C(MSGPACK_PP_BOOL(p(166, s)), s, p, o, m) +# define MSGPACK_PP_FOR_166(s, p, o, m) MSGPACK_PP_FOR_166_C(MSGPACK_PP_BOOL(p(167, s)), s, p, o, m) +# define MSGPACK_PP_FOR_167(s, p, o, m) MSGPACK_PP_FOR_167_C(MSGPACK_PP_BOOL(p(168, s)), s, p, o, m) +# define MSGPACK_PP_FOR_168(s, p, o, m) MSGPACK_PP_FOR_168_C(MSGPACK_PP_BOOL(p(169, s)), s, p, o, m) +# define MSGPACK_PP_FOR_169(s, p, o, m) MSGPACK_PP_FOR_169_C(MSGPACK_PP_BOOL(p(170, s)), s, p, o, m) +# define MSGPACK_PP_FOR_170(s, p, o, m) MSGPACK_PP_FOR_170_C(MSGPACK_PP_BOOL(p(171, s)), s, p, o, m) +# define MSGPACK_PP_FOR_171(s, p, o, m) MSGPACK_PP_FOR_171_C(MSGPACK_PP_BOOL(p(172, s)), s, p, o, m) +# define MSGPACK_PP_FOR_172(s, p, o, m) MSGPACK_PP_FOR_172_C(MSGPACK_PP_BOOL(p(173, s)), s, p, o, m) +# define MSGPACK_PP_FOR_173(s, p, o, m) MSGPACK_PP_FOR_173_C(MSGPACK_PP_BOOL(p(174, s)), s, p, o, m) +# define MSGPACK_PP_FOR_174(s, p, o, m) MSGPACK_PP_FOR_174_C(MSGPACK_PP_BOOL(p(175, s)), s, p, o, m) +# define MSGPACK_PP_FOR_175(s, p, o, m) MSGPACK_PP_FOR_175_C(MSGPACK_PP_BOOL(p(176, s)), s, p, o, m) +# define MSGPACK_PP_FOR_176(s, p, o, m) MSGPACK_PP_FOR_176_C(MSGPACK_PP_BOOL(p(177, s)), s, p, o, m) +# define MSGPACK_PP_FOR_177(s, p, o, m) MSGPACK_PP_FOR_177_C(MSGPACK_PP_BOOL(p(178, s)), s, p, o, m) +# define MSGPACK_PP_FOR_178(s, p, o, m) MSGPACK_PP_FOR_178_C(MSGPACK_PP_BOOL(p(179, s)), s, p, o, m) +# define MSGPACK_PP_FOR_179(s, p, o, m) MSGPACK_PP_FOR_179_C(MSGPACK_PP_BOOL(p(180, s)), s, p, o, m) +# define MSGPACK_PP_FOR_180(s, p, o, m) MSGPACK_PP_FOR_180_C(MSGPACK_PP_BOOL(p(181, s)), s, p, o, m) +# define MSGPACK_PP_FOR_181(s, p, o, m) MSGPACK_PP_FOR_181_C(MSGPACK_PP_BOOL(p(182, s)), s, p, o, m) +# define MSGPACK_PP_FOR_182(s, p, o, m) MSGPACK_PP_FOR_182_C(MSGPACK_PP_BOOL(p(183, s)), s, p, o, m) +# define MSGPACK_PP_FOR_183(s, p, o, m) MSGPACK_PP_FOR_183_C(MSGPACK_PP_BOOL(p(184, s)), s, p, o, m) +# define MSGPACK_PP_FOR_184(s, p, o, m) MSGPACK_PP_FOR_184_C(MSGPACK_PP_BOOL(p(185, s)), s, p, o, m) +# define MSGPACK_PP_FOR_185(s, p, o, m) MSGPACK_PP_FOR_185_C(MSGPACK_PP_BOOL(p(186, s)), s, p, o, m) +# define MSGPACK_PP_FOR_186(s, p, o, m) MSGPACK_PP_FOR_186_C(MSGPACK_PP_BOOL(p(187, s)), s, p, o, m) +# define MSGPACK_PP_FOR_187(s, p, o, m) MSGPACK_PP_FOR_187_C(MSGPACK_PP_BOOL(p(188, s)), s, p, o, m) +# define MSGPACK_PP_FOR_188(s, p, o, m) MSGPACK_PP_FOR_188_C(MSGPACK_PP_BOOL(p(189, s)), s, p, o, m) +# define MSGPACK_PP_FOR_189(s, p, o, m) MSGPACK_PP_FOR_189_C(MSGPACK_PP_BOOL(p(190, s)), s, p, o, m) +# define MSGPACK_PP_FOR_190(s, p, o, m) MSGPACK_PP_FOR_190_C(MSGPACK_PP_BOOL(p(191, s)), s, p, o, m) +# define MSGPACK_PP_FOR_191(s, p, o, m) MSGPACK_PP_FOR_191_C(MSGPACK_PP_BOOL(p(192, s)), s, p, o, m) +# define MSGPACK_PP_FOR_192(s, p, o, m) MSGPACK_PP_FOR_192_C(MSGPACK_PP_BOOL(p(193, s)), s, p, o, m) +# define MSGPACK_PP_FOR_193(s, p, o, m) MSGPACK_PP_FOR_193_C(MSGPACK_PP_BOOL(p(194, s)), s, p, o, m) +# define MSGPACK_PP_FOR_194(s, p, o, m) MSGPACK_PP_FOR_194_C(MSGPACK_PP_BOOL(p(195, s)), s, p, o, m) +# define MSGPACK_PP_FOR_195(s, p, o, m) MSGPACK_PP_FOR_195_C(MSGPACK_PP_BOOL(p(196, s)), s, p, o, m) +# define MSGPACK_PP_FOR_196(s, p, o, m) MSGPACK_PP_FOR_196_C(MSGPACK_PP_BOOL(p(197, s)), s, p, o, m) +# define MSGPACK_PP_FOR_197(s, p, o, m) MSGPACK_PP_FOR_197_C(MSGPACK_PP_BOOL(p(198, s)), s, p, o, m) +# define MSGPACK_PP_FOR_198(s, p, o, m) MSGPACK_PP_FOR_198_C(MSGPACK_PP_BOOL(p(199, s)), s, p, o, m) +# define MSGPACK_PP_FOR_199(s, p, o, m) MSGPACK_PP_FOR_199_C(MSGPACK_PP_BOOL(p(200, s)), s, p, o, m) +# define MSGPACK_PP_FOR_200(s, p, o, m) MSGPACK_PP_FOR_200_C(MSGPACK_PP_BOOL(p(201, s)), s, p, o, m) +# define MSGPACK_PP_FOR_201(s, p, o, m) MSGPACK_PP_FOR_201_C(MSGPACK_PP_BOOL(p(202, s)), s, p, o, m) +# define MSGPACK_PP_FOR_202(s, p, o, m) MSGPACK_PP_FOR_202_C(MSGPACK_PP_BOOL(p(203, s)), s, p, o, m) +# define MSGPACK_PP_FOR_203(s, p, o, m) MSGPACK_PP_FOR_203_C(MSGPACK_PP_BOOL(p(204, s)), s, p, o, m) +# define MSGPACK_PP_FOR_204(s, p, o, m) MSGPACK_PP_FOR_204_C(MSGPACK_PP_BOOL(p(205, s)), s, p, o, m) +# define MSGPACK_PP_FOR_205(s, p, o, m) MSGPACK_PP_FOR_205_C(MSGPACK_PP_BOOL(p(206, s)), s, p, o, m) +# define MSGPACK_PP_FOR_206(s, p, o, m) MSGPACK_PP_FOR_206_C(MSGPACK_PP_BOOL(p(207, s)), s, p, o, m) +# define MSGPACK_PP_FOR_207(s, p, o, m) MSGPACK_PP_FOR_207_C(MSGPACK_PP_BOOL(p(208, s)), s, p, o, m) +# define MSGPACK_PP_FOR_208(s, p, o, m) MSGPACK_PP_FOR_208_C(MSGPACK_PP_BOOL(p(209, s)), s, p, o, m) +# define MSGPACK_PP_FOR_209(s, p, o, m) MSGPACK_PP_FOR_209_C(MSGPACK_PP_BOOL(p(210, s)), s, p, o, m) +# define MSGPACK_PP_FOR_210(s, p, o, m) MSGPACK_PP_FOR_210_C(MSGPACK_PP_BOOL(p(211, s)), s, p, o, m) +# define MSGPACK_PP_FOR_211(s, p, o, m) MSGPACK_PP_FOR_211_C(MSGPACK_PP_BOOL(p(212, s)), s, p, o, m) +# define MSGPACK_PP_FOR_212(s, p, o, m) MSGPACK_PP_FOR_212_C(MSGPACK_PP_BOOL(p(213, s)), s, p, o, m) +# define MSGPACK_PP_FOR_213(s, p, o, m) MSGPACK_PP_FOR_213_C(MSGPACK_PP_BOOL(p(214, s)), s, p, o, m) +# define MSGPACK_PP_FOR_214(s, p, o, m) MSGPACK_PP_FOR_214_C(MSGPACK_PP_BOOL(p(215, s)), s, p, o, m) +# define MSGPACK_PP_FOR_215(s, p, o, m) MSGPACK_PP_FOR_215_C(MSGPACK_PP_BOOL(p(216, s)), s, p, o, m) +# define MSGPACK_PP_FOR_216(s, p, o, m) MSGPACK_PP_FOR_216_C(MSGPACK_PP_BOOL(p(217, s)), s, p, o, m) +# define MSGPACK_PP_FOR_217(s, p, o, m) MSGPACK_PP_FOR_217_C(MSGPACK_PP_BOOL(p(218, s)), s, p, o, m) +# define MSGPACK_PP_FOR_218(s, p, o, m) MSGPACK_PP_FOR_218_C(MSGPACK_PP_BOOL(p(219, s)), s, p, o, m) +# define MSGPACK_PP_FOR_219(s, p, o, m) MSGPACK_PP_FOR_219_C(MSGPACK_PP_BOOL(p(220, s)), s, p, o, m) +# define MSGPACK_PP_FOR_220(s, p, o, m) MSGPACK_PP_FOR_220_C(MSGPACK_PP_BOOL(p(221, s)), s, p, o, m) +# define MSGPACK_PP_FOR_221(s, p, o, m) MSGPACK_PP_FOR_221_C(MSGPACK_PP_BOOL(p(222, s)), s, p, o, m) +# define MSGPACK_PP_FOR_222(s, p, o, m) MSGPACK_PP_FOR_222_C(MSGPACK_PP_BOOL(p(223, s)), s, p, o, m) +# define MSGPACK_PP_FOR_223(s, p, o, m) MSGPACK_PP_FOR_223_C(MSGPACK_PP_BOOL(p(224, s)), s, p, o, m) +# define MSGPACK_PP_FOR_224(s, p, o, m) MSGPACK_PP_FOR_224_C(MSGPACK_PP_BOOL(p(225, s)), s, p, o, m) +# define MSGPACK_PP_FOR_225(s, p, o, m) MSGPACK_PP_FOR_225_C(MSGPACK_PP_BOOL(p(226, s)), s, p, o, m) +# define MSGPACK_PP_FOR_226(s, p, o, m) MSGPACK_PP_FOR_226_C(MSGPACK_PP_BOOL(p(227, s)), s, p, o, m) +# define MSGPACK_PP_FOR_227(s, p, o, m) MSGPACK_PP_FOR_227_C(MSGPACK_PP_BOOL(p(228, s)), s, p, o, m) +# define MSGPACK_PP_FOR_228(s, p, o, m) MSGPACK_PP_FOR_228_C(MSGPACK_PP_BOOL(p(229, s)), s, p, o, m) +# define MSGPACK_PP_FOR_229(s, p, o, m) MSGPACK_PP_FOR_229_C(MSGPACK_PP_BOOL(p(230, s)), s, p, o, m) +# define MSGPACK_PP_FOR_230(s, p, o, m) MSGPACK_PP_FOR_230_C(MSGPACK_PP_BOOL(p(231, s)), s, p, o, m) +# define MSGPACK_PP_FOR_231(s, p, o, m) MSGPACK_PP_FOR_231_C(MSGPACK_PP_BOOL(p(232, s)), s, p, o, m) +# define MSGPACK_PP_FOR_232(s, p, o, m) MSGPACK_PP_FOR_232_C(MSGPACK_PP_BOOL(p(233, s)), s, p, o, m) +# define MSGPACK_PP_FOR_233(s, p, o, m) MSGPACK_PP_FOR_233_C(MSGPACK_PP_BOOL(p(234, s)), s, p, o, m) +# define MSGPACK_PP_FOR_234(s, p, o, m) MSGPACK_PP_FOR_234_C(MSGPACK_PP_BOOL(p(235, s)), s, p, o, m) +# define MSGPACK_PP_FOR_235(s, p, o, m) MSGPACK_PP_FOR_235_C(MSGPACK_PP_BOOL(p(236, s)), s, p, o, m) +# define MSGPACK_PP_FOR_236(s, p, o, m) MSGPACK_PP_FOR_236_C(MSGPACK_PP_BOOL(p(237, s)), s, p, o, m) +# define MSGPACK_PP_FOR_237(s, p, o, m) MSGPACK_PP_FOR_237_C(MSGPACK_PP_BOOL(p(238, s)), s, p, o, m) +# define MSGPACK_PP_FOR_238(s, p, o, m) MSGPACK_PP_FOR_238_C(MSGPACK_PP_BOOL(p(239, s)), s, p, o, m) +# define MSGPACK_PP_FOR_239(s, p, o, m) MSGPACK_PP_FOR_239_C(MSGPACK_PP_BOOL(p(240, s)), s, p, o, m) +# define MSGPACK_PP_FOR_240(s, p, o, m) MSGPACK_PP_FOR_240_C(MSGPACK_PP_BOOL(p(241, s)), s, p, o, m) +# define MSGPACK_PP_FOR_241(s, p, o, m) MSGPACK_PP_FOR_241_C(MSGPACK_PP_BOOL(p(242, s)), s, p, o, m) +# define MSGPACK_PP_FOR_242(s, p, o, m) MSGPACK_PP_FOR_242_C(MSGPACK_PP_BOOL(p(243, s)), s, p, o, m) +# define MSGPACK_PP_FOR_243(s, p, o, m) MSGPACK_PP_FOR_243_C(MSGPACK_PP_BOOL(p(244, s)), s, p, o, m) +# define MSGPACK_PP_FOR_244(s, p, o, m) MSGPACK_PP_FOR_244_C(MSGPACK_PP_BOOL(p(245, s)), s, p, o, m) +# define MSGPACK_PP_FOR_245(s, p, o, m) MSGPACK_PP_FOR_245_C(MSGPACK_PP_BOOL(p(246, s)), s, p, o, m) +# define MSGPACK_PP_FOR_246(s, p, o, m) MSGPACK_PP_FOR_246_C(MSGPACK_PP_BOOL(p(247, s)), s, p, o, m) +# define MSGPACK_PP_FOR_247(s, p, o, m) MSGPACK_PP_FOR_247_C(MSGPACK_PP_BOOL(p(248, s)), s, p, o, m) +# define MSGPACK_PP_FOR_248(s, p, o, m) MSGPACK_PP_FOR_248_C(MSGPACK_PP_BOOL(p(249, s)), s, p, o, m) +# define MSGPACK_PP_FOR_249(s, p, o, m) MSGPACK_PP_FOR_249_C(MSGPACK_PP_BOOL(p(250, s)), s, p, o, m) +# define MSGPACK_PP_FOR_250(s, p, o, m) MSGPACK_PP_FOR_250_C(MSGPACK_PP_BOOL(p(251, s)), s, p, o, m) +# define MSGPACK_PP_FOR_251(s, p, o, m) MSGPACK_PP_FOR_251_C(MSGPACK_PP_BOOL(p(252, s)), s, p, o, m) +# define MSGPACK_PP_FOR_252(s, p, o, m) MSGPACK_PP_FOR_252_C(MSGPACK_PP_BOOL(p(253, s)), s, p, o, m) +# define MSGPACK_PP_FOR_253(s, p, o, m) MSGPACK_PP_FOR_253_C(MSGPACK_PP_BOOL(p(254, s)), s, p, o, m) +# define MSGPACK_PP_FOR_254(s, p, o, m) MSGPACK_PP_FOR_254_C(MSGPACK_PP_BOOL(p(255, s)), s, p, o, m) +# define MSGPACK_PP_FOR_255(s, p, o, m) MSGPACK_PP_FOR_255_C(MSGPACK_PP_BOOL(p(256, s)), s, p, o, m) +# define MSGPACK_PP_FOR_256(s, p, o, m) MSGPACK_PP_FOR_256_C(MSGPACK_PP_BOOL(p(257, s)), s, p, o, m) +# +# define MSGPACK_PP_FOR_1_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(2, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_2, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(2, s), p, o, m) +# define MSGPACK_PP_FOR_2_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(3, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_3, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(3, s), p, o, m) +# define MSGPACK_PP_FOR_3_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(4, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_4, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(4, s), p, o, m) +# define MSGPACK_PP_FOR_4_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(5, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_5, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(5, s), p, o, m) +# define MSGPACK_PP_FOR_5_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(6, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_6, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(6, s), p, o, m) +# define MSGPACK_PP_FOR_6_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(7, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_7, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(7, s), p, o, m) +# define MSGPACK_PP_FOR_7_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(8, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_8, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(8, s), p, o, m) +# define MSGPACK_PP_FOR_8_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(9, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_9, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(9, s), p, o, m) +# define MSGPACK_PP_FOR_9_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(10, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_10, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(10, s), p, o, m) +# define MSGPACK_PP_FOR_10_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(11, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_11, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(11, s), p, o, m) +# define MSGPACK_PP_FOR_11_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(12, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_12, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(12, s), p, o, m) +# define MSGPACK_PP_FOR_12_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(13, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_13, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(13, s), p, o, m) +# define MSGPACK_PP_FOR_13_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(14, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_14, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(14, s), p, o, m) +# define MSGPACK_PP_FOR_14_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(15, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_15, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(15, s), p, o, m) +# define MSGPACK_PP_FOR_15_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(16, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_16, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(16, s), p, o, m) +# define MSGPACK_PP_FOR_16_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(17, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_17, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(17, s), p, o, m) +# define MSGPACK_PP_FOR_17_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(18, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_18, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(18, s), p, o, m) +# define MSGPACK_PP_FOR_18_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(19, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_19, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(19, s), p, o, m) +# define MSGPACK_PP_FOR_19_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(20, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_20, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(20, s), p, o, m) +# define MSGPACK_PP_FOR_20_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(21, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_21, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(21, s), p, o, m) +# define MSGPACK_PP_FOR_21_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(22, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_22, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(22, s), p, o, m) +# define MSGPACK_PP_FOR_22_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(23, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_23, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(23, s), p, o, m) +# define MSGPACK_PP_FOR_23_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(24, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_24, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(24, s), p, o, m) +# define MSGPACK_PP_FOR_24_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(25, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_25, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(25, s), p, o, m) +# define MSGPACK_PP_FOR_25_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(26, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_26, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(26, s), p, o, m) +# define MSGPACK_PP_FOR_26_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(27, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_27, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(27, s), p, o, m) +# define MSGPACK_PP_FOR_27_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(28, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_28, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(28, s), p, o, m) +# define MSGPACK_PP_FOR_28_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(29, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_29, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(29, s), p, o, m) +# define MSGPACK_PP_FOR_29_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(30, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_30, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(30, s), p, o, m) +# define MSGPACK_PP_FOR_30_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(31, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_31, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(31, s), p, o, m) +# define MSGPACK_PP_FOR_31_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(32, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_32, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(32, s), p, o, m) +# define MSGPACK_PP_FOR_32_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(33, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_33, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(33, s), p, o, m) +# define MSGPACK_PP_FOR_33_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(34, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_34, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(34, s), p, o, m) +# define MSGPACK_PP_FOR_34_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(35, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_35, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(35, s), p, o, m) +# define MSGPACK_PP_FOR_35_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(36, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_36, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(36, s), p, o, m) +# define MSGPACK_PP_FOR_36_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(37, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_37, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(37, s), p, o, m) +# define MSGPACK_PP_FOR_37_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(38, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_38, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(38, s), p, o, m) +# define MSGPACK_PP_FOR_38_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(39, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_39, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(39, s), p, o, m) +# define MSGPACK_PP_FOR_39_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(40, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_40, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(40, s), p, o, m) +# define MSGPACK_PP_FOR_40_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(41, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_41, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(41, s), p, o, m) +# define MSGPACK_PP_FOR_41_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(42, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_42, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(42, s), p, o, m) +# define MSGPACK_PP_FOR_42_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(43, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_43, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(43, s), p, o, m) +# define MSGPACK_PP_FOR_43_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(44, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_44, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(44, s), p, o, m) +# define MSGPACK_PP_FOR_44_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(45, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_45, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(45, s), p, o, m) +# define MSGPACK_PP_FOR_45_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(46, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_46, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(46, s), p, o, m) +# define MSGPACK_PP_FOR_46_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(47, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_47, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(47, s), p, o, m) +# define MSGPACK_PP_FOR_47_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(48, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_48, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(48, s), p, o, m) +# define MSGPACK_PP_FOR_48_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(49, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_49, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(49, s), p, o, m) +# define MSGPACK_PP_FOR_49_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(50, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_50, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(50, s), p, o, m) +# define MSGPACK_PP_FOR_50_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(51, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_51, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(51, s), p, o, m) +# define MSGPACK_PP_FOR_51_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(52, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_52, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(52, s), p, o, m) +# define MSGPACK_PP_FOR_52_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(53, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_53, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(53, s), p, o, m) +# define MSGPACK_PP_FOR_53_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(54, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_54, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(54, s), p, o, m) +# define MSGPACK_PP_FOR_54_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(55, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_55, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(55, s), p, o, m) +# define MSGPACK_PP_FOR_55_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(56, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_56, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(56, s), p, o, m) +# define MSGPACK_PP_FOR_56_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(57, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_57, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(57, s), p, o, m) +# define MSGPACK_PP_FOR_57_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(58, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_58, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(58, s), p, o, m) +# define MSGPACK_PP_FOR_58_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(59, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_59, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(59, s), p, o, m) +# define MSGPACK_PP_FOR_59_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(60, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_60, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(60, s), p, o, m) +# define MSGPACK_PP_FOR_60_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(61, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_61, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(61, s), p, o, m) +# define MSGPACK_PP_FOR_61_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(62, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_62, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(62, s), p, o, m) +# define MSGPACK_PP_FOR_62_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(63, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_63, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(63, s), p, o, m) +# define MSGPACK_PP_FOR_63_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(64, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_64, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(64, s), p, o, m) +# define MSGPACK_PP_FOR_64_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(65, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_65, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(65, s), p, o, m) +# define MSGPACK_PP_FOR_65_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(66, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_66, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(66, s), p, o, m) +# define MSGPACK_PP_FOR_66_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(67, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_67, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(67, s), p, o, m) +# define MSGPACK_PP_FOR_67_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(68, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_68, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(68, s), p, o, m) +# define MSGPACK_PP_FOR_68_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(69, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_69, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(69, s), p, o, m) +# define MSGPACK_PP_FOR_69_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(70, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_70, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(70, s), p, o, m) +# define MSGPACK_PP_FOR_70_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(71, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_71, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(71, s), p, o, m) +# define MSGPACK_PP_FOR_71_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(72, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_72, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(72, s), p, o, m) +# define MSGPACK_PP_FOR_72_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(73, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_73, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(73, s), p, o, m) +# define MSGPACK_PP_FOR_73_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(74, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_74, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(74, s), p, o, m) +# define MSGPACK_PP_FOR_74_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(75, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_75, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(75, s), p, o, m) +# define MSGPACK_PP_FOR_75_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(76, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_76, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(76, s), p, o, m) +# define MSGPACK_PP_FOR_76_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(77, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_77, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(77, s), p, o, m) +# define MSGPACK_PP_FOR_77_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(78, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_78, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(78, s), p, o, m) +# define MSGPACK_PP_FOR_78_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(79, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_79, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(79, s), p, o, m) +# define MSGPACK_PP_FOR_79_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(80, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_80, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(80, s), p, o, m) +# define MSGPACK_PP_FOR_80_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(81, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_81, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(81, s), p, o, m) +# define MSGPACK_PP_FOR_81_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(82, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_82, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(82, s), p, o, m) +# define MSGPACK_PP_FOR_82_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(83, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_83, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(83, s), p, o, m) +# define MSGPACK_PP_FOR_83_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(84, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_84, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(84, s), p, o, m) +# define MSGPACK_PP_FOR_84_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(85, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_85, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(85, s), p, o, m) +# define MSGPACK_PP_FOR_85_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(86, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_86, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(86, s), p, o, m) +# define MSGPACK_PP_FOR_86_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(87, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_87, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(87, s), p, o, m) +# define MSGPACK_PP_FOR_87_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(88, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_88, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(88, s), p, o, m) +# define MSGPACK_PP_FOR_88_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(89, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_89, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(89, s), p, o, m) +# define MSGPACK_PP_FOR_89_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(90, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_90, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(90, s), p, o, m) +# define MSGPACK_PP_FOR_90_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(91, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_91, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(91, s), p, o, m) +# define MSGPACK_PP_FOR_91_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(92, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_92, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(92, s), p, o, m) +# define MSGPACK_PP_FOR_92_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(93, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_93, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(93, s), p, o, m) +# define MSGPACK_PP_FOR_93_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(94, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_94, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(94, s), p, o, m) +# define MSGPACK_PP_FOR_94_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(95, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_95, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(95, s), p, o, m) +# define MSGPACK_PP_FOR_95_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(96, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_96, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(96, s), p, o, m) +# define MSGPACK_PP_FOR_96_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(97, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_97, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(97, s), p, o, m) +# define MSGPACK_PP_FOR_97_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(98, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_98, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(98, s), p, o, m) +# define MSGPACK_PP_FOR_98_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(99, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_99, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(99, s), p, o, m) +# define MSGPACK_PP_FOR_99_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(100, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_100, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(100, s), p, o, m) +# define MSGPACK_PP_FOR_100_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(101, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_101, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(101, s), p, o, m) +# define MSGPACK_PP_FOR_101_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(102, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_102, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(102, s), p, o, m) +# define MSGPACK_PP_FOR_102_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(103, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_103, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(103, s), p, o, m) +# define MSGPACK_PP_FOR_103_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(104, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_104, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(104, s), p, o, m) +# define MSGPACK_PP_FOR_104_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(105, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_105, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(105, s), p, o, m) +# define MSGPACK_PP_FOR_105_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(106, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_106, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(106, s), p, o, m) +# define MSGPACK_PP_FOR_106_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(107, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_107, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(107, s), p, o, m) +# define MSGPACK_PP_FOR_107_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(108, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_108, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(108, s), p, o, m) +# define MSGPACK_PP_FOR_108_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(109, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_109, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(109, s), p, o, m) +# define MSGPACK_PP_FOR_109_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(110, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_110, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(110, s), p, o, m) +# define MSGPACK_PP_FOR_110_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(111, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_111, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(111, s), p, o, m) +# define MSGPACK_PP_FOR_111_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(112, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_112, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(112, s), p, o, m) +# define MSGPACK_PP_FOR_112_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(113, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_113, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(113, s), p, o, m) +# define MSGPACK_PP_FOR_113_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(114, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_114, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(114, s), p, o, m) +# define MSGPACK_PP_FOR_114_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(115, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_115, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(115, s), p, o, m) +# define MSGPACK_PP_FOR_115_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(116, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_116, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(116, s), p, o, m) +# define MSGPACK_PP_FOR_116_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(117, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_117, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(117, s), p, o, m) +# define MSGPACK_PP_FOR_117_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(118, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_118, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(118, s), p, o, m) +# define MSGPACK_PP_FOR_118_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(119, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_119, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(119, s), p, o, m) +# define MSGPACK_PP_FOR_119_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(120, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_120, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(120, s), p, o, m) +# define MSGPACK_PP_FOR_120_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(121, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_121, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(121, s), p, o, m) +# define MSGPACK_PP_FOR_121_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(122, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_122, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(122, s), p, o, m) +# define MSGPACK_PP_FOR_122_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(123, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_123, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(123, s), p, o, m) +# define MSGPACK_PP_FOR_123_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(124, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_124, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(124, s), p, o, m) +# define MSGPACK_PP_FOR_124_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(125, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_125, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(125, s), p, o, m) +# define MSGPACK_PP_FOR_125_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(126, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_126, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(126, s), p, o, m) +# define MSGPACK_PP_FOR_126_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(127, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_127, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(127, s), p, o, m) +# define MSGPACK_PP_FOR_127_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(128, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_128, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(128, s), p, o, m) +# define MSGPACK_PP_FOR_128_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(129, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_129, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(129, s), p, o, m) +# define MSGPACK_PP_FOR_129_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(130, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_130, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(130, s), p, o, m) +# define MSGPACK_PP_FOR_130_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(131, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_131, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(131, s), p, o, m) +# define MSGPACK_PP_FOR_131_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(132, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_132, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(132, s), p, o, m) +# define MSGPACK_PP_FOR_132_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(133, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_133, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(133, s), p, o, m) +# define MSGPACK_PP_FOR_133_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(134, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_134, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(134, s), p, o, m) +# define MSGPACK_PP_FOR_134_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(135, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_135, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(135, s), p, o, m) +# define MSGPACK_PP_FOR_135_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(136, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_136, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(136, s), p, o, m) +# define MSGPACK_PP_FOR_136_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(137, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_137, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(137, s), p, o, m) +# define MSGPACK_PP_FOR_137_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(138, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_138, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(138, s), p, o, m) +# define MSGPACK_PP_FOR_138_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(139, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_139, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(139, s), p, o, m) +# define MSGPACK_PP_FOR_139_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(140, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_140, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(140, s), p, o, m) +# define MSGPACK_PP_FOR_140_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(141, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_141, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(141, s), p, o, m) +# define MSGPACK_PP_FOR_141_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(142, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_142, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(142, s), p, o, m) +# define MSGPACK_PP_FOR_142_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(143, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_143, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(143, s), p, o, m) +# define MSGPACK_PP_FOR_143_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(144, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_144, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(144, s), p, o, m) +# define MSGPACK_PP_FOR_144_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(145, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_145, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(145, s), p, o, m) +# define MSGPACK_PP_FOR_145_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(146, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_146, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(146, s), p, o, m) +# define MSGPACK_PP_FOR_146_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(147, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_147, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(147, s), p, o, m) +# define MSGPACK_PP_FOR_147_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(148, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_148, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(148, s), p, o, m) +# define MSGPACK_PP_FOR_148_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(149, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_149, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(149, s), p, o, m) +# define MSGPACK_PP_FOR_149_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(150, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_150, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(150, s), p, o, m) +# define MSGPACK_PP_FOR_150_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(151, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_151, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(151, s), p, o, m) +# define MSGPACK_PP_FOR_151_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(152, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_152, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(152, s), p, o, m) +# define MSGPACK_PP_FOR_152_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(153, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_153, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(153, s), p, o, m) +# define MSGPACK_PP_FOR_153_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(154, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_154, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(154, s), p, o, m) +# define MSGPACK_PP_FOR_154_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(155, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_155, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(155, s), p, o, m) +# define MSGPACK_PP_FOR_155_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(156, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_156, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(156, s), p, o, m) +# define MSGPACK_PP_FOR_156_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(157, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_157, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(157, s), p, o, m) +# define MSGPACK_PP_FOR_157_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(158, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_158, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(158, s), p, o, m) +# define MSGPACK_PP_FOR_158_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(159, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_159, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(159, s), p, o, m) +# define MSGPACK_PP_FOR_159_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(160, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_160, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(160, s), p, o, m) +# define MSGPACK_PP_FOR_160_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(161, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_161, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(161, s), p, o, m) +# define MSGPACK_PP_FOR_161_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(162, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_162, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(162, s), p, o, m) +# define MSGPACK_PP_FOR_162_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(163, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_163, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(163, s), p, o, m) +# define MSGPACK_PP_FOR_163_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(164, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_164, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(164, s), p, o, m) +# define MSGPACK_PP_FOR_164_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(165, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_165, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(165, s), p, o, m) +# define MSGPACK_PP_FOR_165_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(166, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_166, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(166, s), p, o, m) +# define MSGPACK_PP_FOR_166_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(167, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_167, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(167, s), p, o, m) +# define MSGPACK_PP_FOR_167_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(168, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_168, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(168, s), p, o, m) +# define MSGPACK_PP_FOR_168_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(169, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_169, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(169, s), p, o, m) +# define MSGPACK_PP_FOR_169_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(170, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_170, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(170, s), p, o, m) +# define MSGPACK_PP_FOR_170_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(171, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_171, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(171, s), p, o, m) +# define MSGPACK_PP_FOR_171_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(172, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_172, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(172, s), p, o, m) +# define MSGPACK_PP_FOR_172_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(173, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_173, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(173, s), p, o, m) +# define MSGPACK_PP_FOR_173_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(174, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_174, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(174, s), p, o, m) +# define MSGPACK_PP_FOR_174_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(175, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_175, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(175, s), p, o, m) +# define MSGPACK_PP_FOR_175_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(176, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_176, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(176, s), p, o, m) +# define MSGPACK_PP_FOR_176_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(177, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_177, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(177, s), p, o, m) +# define MSGPACK_PP_FOR_177_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(178, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_178, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(178, s), p, o, m) +# define MSGPACK_PP_FOR_178_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(179, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_179, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(179, s), p, o, m) +# define MSGPACK_PP_FOR_179_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(180, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_180, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(180, s), p, o, m) +# define MSGPACK_PP_FOR_180_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(181, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_181, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(181, s), p, o, m) +# define MSGPACK_PP_FOR_181_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(182, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_182, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(182, s), p, o, m) +# define MSGPACK_PP_FOR_182_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(183, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_183, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(183, s), p, o, m) +# define MSGPACK_PP_FOR_183_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(184, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_184, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(184, s), p, o, m) +# define MSGPACK_PP_FOR_184_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(185, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_185, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(185, s), p, o, m) +# define MSGPACK_PP_FOR_185_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(186, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_186, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(186, s), p, o, m) +# define MSGPACK_PP_FOR_186_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(187, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_187, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(187, s), p, o, m) +# define MSGPACK_PP_FOR_187_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(188, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_188, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(188, s), p, o, m) +# define MSGPACK_PP_FOR_188_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(189, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_189, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(189, s), p, o, m) +# define MSGPACK_PP_FOR_189_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(190, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_190, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(190, s), p, o, m) +# define MSGPACK_PP_FOR_190_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(191, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_191, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(191, s), p, o, m) +# define MSGPACK_PP_FOR_191_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(192, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_192, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(192, s), p, o, m) +# define MSGPACK_PP_FOR_192_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(193, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_193, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(193, s), p, o, m) +# define MSGPACK_PP_FOR_193_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(194, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_194, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(194, s), p, o, m) +# define MSGPACK_PP_FOR_194_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(195, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_195, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(195, s), p, o, m) +# define MSGPACK_PP_FOR_195_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(196, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_196, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(196, s), p, o, m) +# define MSGPACK_PP_FOR_196_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(197, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_197, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(197, s), p, o, m) +# define MSGPACK_PP_FOR_197_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(198, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_198, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(198, s), p, o, m) +# define MSGPACK_PP_FOR_198_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(199, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_199, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(199, s), p, o, m) +# define MSGPACK_PP_FOR_199_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(200, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_200, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(200, s), p, o, m) +# define MSGPACK_PP_FOR_200_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(201, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_201, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(201, s), p, o, m) +# define MSGPACK_PP_FOR_201_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(202, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_202, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(202, s), p, o, m) +# define MSGPACK_PP_FOR_202_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(203, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_203, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(203, s), p, o, m) +# define MSGPACK_PP_FOR_203_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(204, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_204, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(204, s), p, o, m) +# define MSGPACK_PP_FOR_204_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(205, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_205, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(205, s), p, o, m) +# define MSGPACK_PP_FOR_205_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(206, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_206, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(206, s), p, o, m) +# define MSGPACK_PP_FOR_206_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(207, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_207, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(207, s), p, o, m) +# define MSGPACK_PP_FOR_207_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(208, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_208, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(208, s), p, o, m) +# define MSGPACK_PP_FOR_208_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(209, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_209, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(209, s), p, o, m) +# define MSGPACK_PP_FOR_209_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(210, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_210, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(210, s), p, o, m) +# define MSGPACK_PP_FOR_210_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(211, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_211, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(211, s), p, o, m) +# define MSGPACK_PP_FOR_211_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(212, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_212, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(212, s), p, o, m) +# define MSGPACK_PP_FOR_212_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(213, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_213, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(213, s), p, o, m) +# define MSGPACK_PP_FOR_213_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(214, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_214, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(214, s), p, o, m) +# define MSGPACK_PP_FOR_214_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(215, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_215, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(215, s), p, o, m) +# define MSGPACK_PP_FOR_215_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(216, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_216, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(216, s), p, o, m) +# define MSGPACK_PP_FOR_216_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(217, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_217, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(217, s), p, o, m) +# define MSGPACK_PP_FOR_217_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(218, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_218, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(218, s), p, o, m) +# define MSGPACK_PP_FOR_218_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(219, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_219, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(219, s), p, o, m) +# define MSGPACK_PP_FOR_219_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(220, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_220, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(220, s), p, o, m) +# define MSGPACK_PP_FOR_220_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(221, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_221, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(221, s), p, o, m) +# define MSGPACK_PP_FOR_221_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(222, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_222, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(222, s), p, o, m) +# define MSGPACK_PP_FOR_222_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(223, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_223, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(223, s), p, o, m) +# define MSGPACK_PP_FOR_223_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(224, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_224, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(224, s), p, o, m) +# define MSGPACK_PP_FOR_224_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(225, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_225, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(225, s), p, o, m) +# define MSGPACK_PP_FOR_225_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(226, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_226, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(226, s), p, o, m) +# define MSGPACK_PP_FOR_226_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(227, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_227, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(227, s), p, o, m) +# define MSGPACK_PP_FOR_227_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(228, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_228, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(228, s), p, o, m) +# define MSGPACK_PP_FOR_228_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(229, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_229, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(229, s), p, o, m) +# define MSGPACK_PP_FOR_229_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(230, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_230, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(230, s), p, o, m) +# define MSGPACK_PP_FOR_230_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(231, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_231, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(231, s), p, o, m) +# define MSGPACK_PP_FOR_231_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(232, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_232, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(232, s), p, o, m) +# define MSGPACK_PP_FOR_232_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(233, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_233, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(233, s), p, o, m) +# define MSGPACK_PP_FOR_233_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(234, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_234, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(234, s), p, o, m) +# define MSGPACK_PP_FOR_234_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(235, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_235, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(235, s), p, o, m) +# define MSGPACK_PP_FOR_235_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(236, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_236, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(236, s), p, o, m) +# define MSGPACK_PP_FOR_236_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(237, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_237, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(237, s), p, o, m) +# define MSGPACK_PP_FOR_237_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(238, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_238, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(238, s), p, o, m) +# define MSGPACK_PP_FOR_238_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(239, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_239, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(239, s), p, o, m) +# define MSGPACK_PP_FOR_239_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(240, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_240, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(240, s), p, o, m) +# define MSGPACK_PP_FOR_240_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(241, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_241, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(241, s), p, o, m) +# define MSGPACK_PP_FOR_241_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(242, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_242, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(242, s), p, o, m) +# define MSGPACK_PP_FOR_242_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(243, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_243, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(243, s), p, o, m) +# define MSGPACK_PP_FOR_243_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(244, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_244, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(244, s), p, o, m) +# define MSGPACK_PP_FOR_244_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(245, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_245, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(245, s), p, o, m) +# define MSGPACK_PP_FOR_245_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(246, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_246, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(246, s), p, o, m) +# define MSGPACK_PP_FOR_246_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(247, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_247, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(247, s), p, o, m) +# define MSGPACK_PP_FOR_247_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(248, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_248, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(248, s), p, o, m) +# define MSGPACK_PP_FOR_248_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(249, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_249, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(249, s), p, o, m) +# define MSGPACK_PP_FOR_249_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(250, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_250, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(250, s), p, o, m) +# define MSGPACK_PP_FOR_250_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(251, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_251, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(251, s), p, o, m) +# define MSGPACK_PP_FOR_251_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(252, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_252, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(252, s), p, o, m) +# define MSGPACK_PP_FOR_252_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(253, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_253, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(253, s), p, o, m) +# define MSGPACK_PP_FOR_253_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(254, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_254, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(254, s), p, o, m) +# define MSGPACK_PP_FOR_254_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(255, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_255, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(255, s), p, o, m) +# define MSGPACK_PP_FOR_255_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(256, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_256, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(256, s), p, o, m) +# define MSGPACK_PP_FOR_256_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(257, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_257, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(257, s), p, o, m) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/detail/msvc/for.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/detail/msvc/for.hpp new file mode 100644 index 000000000000..40ff4c0f55aa --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/detail/msvc/for.hpp @@ -0,0 +1,277 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_DETAIL_MSVC_FOR_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_DETAIL_MSVC_FOR_HPP +# +# include +# include +# +# define MSGPACK_PP_FOR_1(s, p, o, m) MSGPACK_PP_IF(p(2, s), m, MSGPACK_PP_TUPLE_EAT_2)(2, s) MSGPACK_PP_IF(p(2, s), MSGPACK_PP_FOR_2, MSGPACK_PP_TUPLE_EAT_4)(o(2, s), p, o, m) +# define MSGPACK_PP_FOR_2(s, p, o, m) MSGPACK_PP_IF(p(3, s), m, MSGPACK_PP_TUPLE_EAT_2)(3, s) MSGPACK_PP_IF(p(3, s), MSGPACK_PP_FOR_3, MSGPACK_PP_TUPLE_EAT_4)(o(3, s), p, o, m) +# define MSGPACK_PP_FOR_3(s, p, o, m) MSGPACK_PP_IF(p(4, s), m, MSGPACK_PP_TUPLE_EAT_2)(4, s) MSGPACK_PP_IF(p(4, s), MSGPACK_PP_FOR_4, MSGPACK_PP_TUPLE_EAT_4)(o(4, s), p, o, m) +# define MSGPACK_PP_FOR_4(s, p, o, m) MSGPACK_PP_IF(p(5, s), m, MSGPACK_PP_TUPLE_EAT_2)(5, s) MSGPACK_PP_IF(p(5, s), MSGPACK_PP_FOR_5, MSGPACK_PP_TUPLE_EAT_4)(o(5, s), p, o, m) +# define MSGPACK_PP_FOR_5(s, p, o, m) MSGPACK_PP_IF(p(6, s), m, MSGPACK_PP_TUPLE_EAT_2)(6, s) MSGPACK_PP_IF(p(6, s), MSGPACK_PP_FOR_6, MSGPACK_PP_TUPLE_EAT_4)(o(6, s), p, o, m) +# define MSGPACK_PP_FOR_6(s, p, o, m) MSGPACK_PP_IF(p(7, s), m, MSGPACK_PP_TUPLE_EAT_2)(7, s) MSGPACK_PP_IF(p(7, s), MSGPACK_PP_FOR_7, MSGPACK_PP_TUPLE_EAT_4)(o(7, s), p, o, m) +# define MSGPACK_PP_FOR_7(s, p, o, m) MSGPACK_PP_IF(p(8, s), m, MSGPACK_PP_TUPLE_EAT_2)(8, s) MSGPACK_PP_IF(p(8, s), MSGPACK_PP_FOR_8, MSGPACK_PP_TUPLE_EAT_4)(o(8, s), p, o, m) +# define MSGPACK_PP_FOR_8(s, p, o, m) MSGPACK_PP_IF(p(9, s), m, MSGPACK_PP_TUPLE_EAT_2)(9, s) MSGPACK_PP_IF(p(9, s), MSGPACK_PP_FOR_9, MSGPACK_PP_TUPLE_EAT_4)(o(9, s), p, o, m) +# define MSGPACK_PP_FOR_9(s, p, o, m) MSGPACK_PP_IF(p(10, s), m, MSGPACK_PP_TUPLE_EAT_2)(10, s) MSGPACK_PP_IF(p(10, s), MSGPACK_PP_FOR_10, MSGPACK_PP_TUPLE_EAT_4)(o(10, s), p, o, m) +# define MSGPACK_PP_FOR_10(s, p, o, m) MSGPACK_PP_IF(p(11, s), m, MSGPACK_PP_TUPLE_EAT_2)(11, s) MSGPACK_PP_IF(p(11, s), MSGPACK_PP_FOR_11, MSGPACK_PP_TUPLE_EAT_4)(o(11, s), p, o, m) +# define MSGPACK_PP_FOR_11(s, p, o, m) MSGPACK_PP_IF(p(12, s), m, MSGPACK_PP_TUPLE_EAT_2)(12, s) MSGPACK_PP_IF(p(12, s), MSGPACK_PP_FOR_12, MSGPACK_PP_TUPLE_EAT_4)(o(12, s), p, o, m) +# define MSGPACK_PP_FOR_12(s, p, o, m) MSGPACK_PP_IF(p(13, s), m, MSGPACK_PP_TUPLE_EAT_2)(13, s) MSGPACK_PP_IF(p(13, s), MSGPACK_PP_FOR_13, MSGPACK_PP_TUPLE_EAT_4)(o(13, s), p, o, m) +# define MSGPACK_PP_FOR_13(s, p, o, m) MSGPACK_PP_IF(p(14, s), m, MSGPACK_PP_TUPLE_EAT_2)(14, s) MSGPACK_PP_IF(p(14, s), MSGPACK_PP_FOR_14, MSGPACK_PP_TUPLE_EAT_4)(o(14, s), p, o, m) +# define MSGPACK_PP_FOR_14(s, p, o, m) MSGPACK_PP_IF(p(15, s), m, MSGPACK_PP_TUPLE_EAT_2)(15, s) MSGPACK_PP_IF(p(15, s), MSGPACK_PP_FOR_15, MSGPACK_PP_TUPLE_EAT_4)(o(15, s), p, o, m) +# define MSGPACK_PP_FOR_15(s, p, o, m) MSGPACK_PP_IF(p(16, s), m, MSGPACK_PP_TUPLE_EAT_2)(16, s) MSGPACK_PP_IF(p(16, s), MSGPACK_PP_FOR_16, MSGPACK_PP_TUPLE_EAT_4)(o(16, s), p, o, m) +# define MSGPACK_PP_FOR_16(s, p, o, m) MSGPACK_PP_IF(p(17, s), m, MSGPACK_PP_TUPLE_EAT_2)(17, s) MSGPACK_PP_IF(p(17, s), MSGPACK_PP_FOR_17, MSGPACK_PP_TUPLE_EAT_4)(o(17, s), p, o, m) +# define MSGPACK_PP_FOR_17(s, p, o, m) MSGPACK_PP_IF(p(18, s), m, MSGPACK_PP_TUPLE_EAT_2)(18, s) MSGPACK_PP_IF(p(18, s), MSGPACK_PP_FOR_18, MSGPACK_PP_TUPLE_EAT_4)(o(18, s), p, o, m) +# define MSGPACK_PP_FOR_18(s, p, o, m) MSGPACK_PP_IF(p(19, s), m, MSGPACK_PP_TUPLE_EAT_2)(19, s) MSGPACK_PP_IF(p(19, s), MSGPACK_PP_FOR_19, MSGPACK_PP_TUPLE_EAT_4)(o(19, s), p, o, m) +# define MSGPACK_PP_FOR_19(s, p, o, m) MSGPACK_PP_IF(p(20, s), m, MSGPACK_PP_TUPLE_EAT_2)(20, s) MSGPACK_PP_IF(p(20, s), MSGPACK_PP_FOR_20, MSGPACK_PP_TUPLE_EAT_4)(o(20, s), p, o, m) +# define MSGPACK_PP_FOR_20(s, p, o, m) MSGPACK_PP_IF(p(21, s), m, MSGPACK_PP_TUPLE_EAT_2)(21, s) MSGPACK_PP_IF(p(21, s), MSGPACK_PP_FOR_21, MSGPACK_PP_TUPLE_EAT_4)(o(21, s), p, o, m) +# define MSGPACK_PP_FOR_21(s, p, o, m) MSGPACK_PP_IF(p(22, s), m, MSGPACK_PP_TUPLE_EAT_2)(22, s) MSGPACK_PP_IF(p(22, s), MSGPACK_PP_FOR_22, MSGPACK_PP_TUPLE_EAT_4)(o(22, s), p, o, m) +# define MSGPACK_PP_FOR_22(s, p, o, m) MSGPACK_PP_IF(p(23, s), m, MSGPACK_PP_TUPLE_EAT_2)(23, s) MSGPACK_PP_IF(p(23, s), MSGPACK_PP_FOR_23, MSGPACK_PP_TUPLE_EAT_4)(o(23, s), p, o, m) +# define MSGPACK_PP_FOR_23(s, p, o, m) MSGPACK_PP_IF(p(24, s), m, MSGPACK_PP_TUPLE_EAT_2)(24, s) MSGPACK_PP_IF(p(24, s), MSGPACK_PP_FOR_24, MSGPACK_PP_TUPLE_EAT_4)(o(24, s), p, o, m) +# define MSGPACK_PP_FOR_24(s, p, o, m) MSGPACK_PP_IF(p(25, s), m, MSGPACK_PP_TUPLE_EAT_2)(25, s) MSGPACK_PP_IF(p(25, s), MSGPACK_PP_FOR_25, MSGPACK_PP_TUPLE_EAT_4)(o(25, s), p, o, m) +# define MSGPACK_PP_FOR_25(s, p, o, m) MSGPACK_PP_IF(p(26, s), m, MSGPACK_PP_TUPLE_EAT_2)(26, s) MSGPACK_PP_IF(p(26, s), MSGPACK_PP_FOR_26, MSGPACK_PP_TUPLE_EAT_4)(o(26, s), p, o, m) +# define MSGPACK_PP_FOR_26(s, p, o, m) MSGPACK_PP_IF(p(27, s), m, MSGPACK_PP_TUPLE_EAT_2)(27, s) MSGPACK_PP_IF(p(27, s), MSGPACK_PP_FOR_27, MSGPACK_PP_TUPLE_EAT_4)(o(27, s), p, o, m) +# define MSGPACK_PP_FOR_27(s, p, o, m) MSGPACK_PP_IF(p(28, s), m, MSGPACK_PP_TUPLE_EAT_2)(28, s) MSGPACK_PP_IF(p(28, s), MSGPACK_PP_FOR_28, MSGPACK_PP_TUPLE_EAT_4)(o(28, s), p, o, m) +# define MSGPACK_PP_FOR_28(s, p, o, m) MSGPACK_PP_IF(p(29, s), m, MSGPACK_PP_TUPLE_EAT_2)(29, s) MSGPACK_PP_IF(p(29, s), MSGPACK_PP_FOR_29, MSGPACK_PP_TUPLE_EAT_4)(o(29, s), p, o, m) +# define MSGPACK_PP_FOR_29(s, p, o, m) MSGPACK_PP_IF(p(30, s), m, MSGPACK_PP_TUPLE_EAT_2)(30, s) MSGPACK_PP_IF(p(30, s), MSGPACK_PP_FOR_30, MSGPACK_PP_TUPLE_EAT_4)(o(30, s), p, o, m) +# define MSGPACK_PP_FOR_30(s, p, o, m) MSGPACK_PP_IF(p(31, s), m, MSGPACK_PP_TUPLE_EAT_2)(31, s) MSGPACK_PP_IF(p(31, s), MSGPACK_PP_FOR_31, MSGPACK_PP_TUPLE_EAT_4)(o(31, s), p, o, m) +# define MSGPACK_PP_FOR_31(s, p, o, m) MSGPACK_PP_IF(p(32, s), m, MSGPACK_PP_TUPLE_EAT_2)(32, s) MSGPACK_PP_IF(p(32, s), MSGPACK_PP_FOR_32, MSGPACK_PP_TUPLE_EAT_4)(o(32, s), p, o, m) +# define MSGPACK_PP_FOR_32(s, p, o, m) MSGPACK_PP_IF(p(33, s), m, MSGPACK_PP_TUPLE_EAT_2)(33, s) MSGPACK_PP_IF(p(33, s), MSGPACK_PP_FOR_33, MSGPACK_PP_TUPLE_EAT_4)(o(33, s), p, o, m) +# define MSGPACK_PP_FOR_33(s, p, o, m) MSGPACK_PP_IF(p(34, s), m, MSGPACK_PP_TUPLE_EAT_2)(34, s) MSGPACK_PP_IF(p(34, s), MSGPACK_PP_FOR_34, MSGPACK_PP_TUPLE_EAT_4)(o(34, s), p, o, m) +# define MSGPACK_PP_FOR_34(s, p, o, m) MSGPACK_PP_IF(p(35, s), m, MSGPACK_PP_TUPLE_EAT_2)(35, s) MSGPACK_PP_IF(p(35, s), MSGPACK_PP_FOR_35, MSGPACK_PP_TUPLE_EAT_4)(o(35, s), p, o, m) +# define MSGPACK_PP_FOR_35(s, p, o, m) MSGPACK_PP_IF(p(36, s), m, MSGPACK_PP_TUPLE_EAT_2)(36, s) MSGPACK_PP_IF(p(36, s), MSGPACK_PP_FOR_36, MSGPACK_PP_TUPLE_EAT_4)(o(36, s), p, o, m) +# define MSGPACK_PP_FOR_36(s, p, o, m) MSGPACK_PP_IF(p(37, s), m, MSGPACK_PP_TUPLE_EAT_2)(37, s) MSGPACK_PP_IF(p(37, s), MSGPACK_PP_FOR_37, MSGPACK_PP_TUPLE_EAT_4)(o(37, s), p, o, m) +# define MSGPACK_PP_FOR_37(s, p, o, m) MSGPACK_PP_IF(p(38, s), m, MSGPACK_PP_TUPLE_EAT_2)(38, s) MSGPACK_PP_IF(p(38, s), MSGPACK_PP_FOR_38, MSGPACK_PP_TUPLE_EAT_4)(o(38, s), p, o, m) +# define MSGPACK_PP_FOR_38(s, p, o, m) MSGPACK_PP_IF(p(39, s), m, MSGPACK_PP_TUPLE_EAT_2)(39, s) MSGPACK_PP_IF(p(39, s), MSGPACK_PP_FOR_39, MSGPACK_PP_TUPLE_EAT_4)(o(39, s), p, o, m) +# define MSGPACK_PP_FOR_39(s, p, o, m) MSGPACK_PP_IF(p(40, s), m, MSGPACK_PP_TUPLE_EAT_2)(40, s) MSGPACK_PP_IF(p(40, s), MSGPACK_PP_FOR_40, MSGPACK_PP_TUPLE_EAT_4)(o(40, s), p, o, m) +# define MSGPACK_PP_FOR_40(s, p, o, m) MSGPACK_PP_IF(p(41, s), m, MSGPACK_PP_TUPLE_EAT_2)(41, s) MSGPACK_PP_IF(p(41, s), MSGPACK_PP_FOR_41, MSGPACK_PP_TUPLE_EAT_4)(o(41, s), p, o, m) +# define MSGPACK_PP_FOR_41(s, p, o, m) MSGPACK_PP_IF(p(42, s), m, MSGPACK_PP_TUPLE_EAT_2)(42, s) MSGPACK_PP_IF(p(42, s), MSGPACK_PP_FOR_42, MSGPACK_PP_TUPLE_EAT_4)(o(42, s), p, o, m) +# define MSGPACK_PP_FOR_42(s, p, o, m) MSGPACK_PP_IF(p(43, s), m, MSGPACK_PP_TUPLE_EAT_2)(43, s) MSGPACK_PP_IF(p(43, s), MSGPACK_PP_FOR_43, MSGPACK_PP_TUPLE_EAT_4)(o(43, s), p, o, m) +# define MSGPACK_PP_FOR_43(s, p, o, m) MSGPACK_PP_IF(p(44, s), m, MSGPACK_PP_TUPLE_EAT_2)(44, s) MSGPACK_PP_IF(p(44, s), MSGPACK_PP_FOR_44, MSGPACK_PP_TUPLE_EAT_4)(o(44, s), p, o, m) +# define MSGPACK_PP_FOR_44(s, p, o, m) MSGPACK_PP_IF(p(45, s), m, MSGPACK_PP_TUPLE_EAT_2)(45, s) MSGPACK_PP_IF(p(45, s), MSGPACK_PP_FOR_45, MSGPACK_PP_TUPLE_EAT_4)(o(45, s), p, o, m) +# define MSGPACK_PP_FOR_45(s, p, o, m) MSGPACK_PP_IF(p(46, s), m, MSGPACK_PP_TUPLE_EAT_2)(46, s) MSGPACK_PP_IF(p(46, s), MSGPACK_PP_FOR_46, MSGPACK_PP_TUPLE_EAT_4)(o(46, s), p, o, m) +# define MSGPACK_PP_FOR_46(s, p, o, m) MSGPACK_PP_IF(p(47, s), m, MSGPACK_PP_TUPLE_EAT_2)(47, s) MSGPACK_PP_IF(p(47, s), MSGPACK_PP_FOR_47, MSGPACK_PP_TUPLE_EAT_4)(o(47, s), p, o, m) +# define MSGPACK_PP_FOR_47(s, p, o, m) MSGPACK_PP_IF(p(48, s), m, MSGPACK_PP_TUPLE_EAT_2)(48, s) MSGPACK_PP_IF(p(48, s), MSGPACK_PP_FOR_48, MSGPACK_PP_TUPLE_EAT_4)(o(48, s), p, o, m) +# define MSGPACK_PP_FOR_48(s, p, o, m) MSGPACK_PP_IF(p(49, s), m, MSGPACK_PP_TUPLE_EAT_2)(49, s) MSGPACK_PP_IF(p(49, s), MSGPACK_PP_FOR_49, MSGPACK_PP_TUPLE_EAT_4)(o(49, s), p, o, m) +# define MSGPACK_PP_FOR_49(s, p, o, m) MSGPACK_PP_IF(p(50, s), m, MSGPACK_PP_TUPLE_EAT_2)(50, s) MSGPACK_PP_IF(p(50, s), MSGPACK_PP_FOR_50, MSGPACK_PP_TUPLE_EAT_4)(o(50, s), p, o, m) +# define MSGPACK_PP_FOR_50(s, p, o, m) MSGPACK_PP_IF(p(51, s), m, MSGPACK_PP_TUPLE_EAT_2)(51, s) MSGPACK_PP_IF(p(51, s), MSGPACK_PP_FOR_51, MSGPACK_PP_TUPLE_EAT_4)(o(51, s), p, o, m) +# define MSGPACK_PP_FOR_51(s, p, o, m) MSGPACK_PP_IF(p(52, s), m, MSGPACK_PP_TUPLE_EAT_2)(52, s) MSGPACK_PP_IF(p(52, s), MSGPACK_PP_FOR_52, MSGPACK_PP_TUPLE_EAT_4)(o(52, s), p, o, m) +# define MSGPACK_PP_FOR_52(s, p, o, m) MSGPACK_PP_IF(p(53, s), m, MSGPACK_PP_TUPLE_EAT_2)(53, s) MSGPACK_PP_IF(p(53, s), MSGPACK_PP_FOR_53, MSGPACK_PP_TUPLE_EAT_4)(o(53, s), p, o, m) +# define MSGPACK_PP_FOR_53(s, p, o, m) MSGPACK_PP_IF(p(54, s), m, MSGPACK_PP_TUPLE_EAT_2)(54, s) MSGPACK_PP_IF(p(54, s), MSGPACK_PP_FOR_54, MSGPACK_PP_TUPLE_EAT_4)(o(54, s), p, o, m) +# define MSGPACK_PP_FOR_54(s, p, o, m) MSGPACK_PP_IF(p(55, s), m, MSGPACK_PP_TUPLE_EAT_2)(55, s) MSGPACK_PP_IF(p(55, s), MSGPACK_PP_FOR_55, MSGPACK_PP_TUPLE_EAT_4)(o(55, s), p, o, m) +# define MSGPACK_PP_FOR_55(s, p, o, m) MSGPACK_PP_IF(p(56, s), m, MSGPACK_PP_TUPLE_EAT_2)(56, s) MSGPACK_PP_IF(p(56, s), MSGPACK_PP_FOR_56, MSGPACK_PP_TUPLE_EAT_4)(o(56, s), p, o, m) +# define MSGPACK_PP_FOR_56(s, p, o, m) MSGPACK_PP_IF(p(57, s), m, MSGPACK_PP_TUPLE_EAT_2)(57, s) MSGPACK_PP_IF(p(57, s), MSGPACK_PP_FOR_57, MSGPACK_PP_TUPLE_EAT_4)(o(57, s), p, o, m) +# define MSGPACK_PP_FOR_57(s, p, o, m) MSGPACK_PP_IF(p(58, s), m, MSGPACK_PP_TUPLE_EAT_2)(58, s) MSGPACK_PP_IF(p(58, s), MSGPACK_PP_FOR_58, MSGPACK_PP_TUPLE_EAT_4)(o(58, s), p, o, m) +# define MSGPACK_PP_FOR_58(s, p, o, m) MSGPACK_PP_IF(p(59, s), m, MSGPACK_PP_TUPLE_EAT_2)(59, s) MSGPACK_PP_IF(p(59, s), MSGPACK_PP_FOR_59, MSGPACK_PP_TUPLE_EAT_4)(o(59, s), p, o, m) +# define MSGPACK_PP_FOR_59(s, p, o, m) MSGPACK_PP_IF(p(60, s), m, MSGPACK_PP_TUPLE_EAT_2)(60, s) MSGPACK_PP_IF(p(60, s), MSGPACK_PP_FOR_60, MSGPACK_PP_TUPLE_EAT_4)(o(60, s), p, o, m) +# define MSGPACK_PP_FOR_60(s, p, o, m) MSGPACK_PP_IF(p(61, s), m, MSGPACK_PP_TUPLE_EAT_2)(61, s) MSGPACK_PP_IF(p(61, s), MSGPACK_PP_FOR_61, MSGPACK_PP_TUPLE_EAT_4)(o(61, s), p, o, m) +# define MSGPACK_PP_FOR_61(s, p, o, m) MSGPACK_PP_IF(p(62, s), m, MSGPACK_PP_TUPLE_EAT_2)(62, s) MSGPACK_PP_IF(p(62, s), MSGPACK_PP_FOR_62, MSGPACK_PP_TUPLE_EAT_4)(o(62, s), p, o, m) +# define MSGPACK_PP_FOR_62(s, p, o, m) MSGPACK_PP_IF(p(63, s), m, MSGPACK_PP_TUPLE_EAT_2)(63, s) MSGPACK_PP_IF(p(63, s), MSGPACK_PP_FOR_63, MSGPACK_PP_TUPLE_EAT_4)(o(63, s), p, o, m) +# define MSGPACK_PP_FOR_63(s, p, o, m) MSGPACK_PP_IF(p(64, s), m, MSGPACK_PP_TUPLE_EAT_2)(64, s) MSGPACK_PP_IF(p(64, s), MSGPACK_PP_FOR_64, MSGPACK_PP_TUPLE_EAT_4)(o(64, s), p, o, m) +# define MSGPACK_PP_FOR_64(s, p, o, m) MSGPACK_PP_IF(p(65, s), m, MSGPACK_PP_TUPLE_EAT_2)(65, s) MSGPACK_PP_IF(p(65, s), MSGPACK_PP_FOR_65, MSGPACK_PP_TUPLE_EAT_4)(o(65, s), p, o, m) +# define MSGPACK_PP_FOR_65(s, p, o, m) MSGPACK_PP_IF(p(66, s), m, MSGPACK_PP_TUPLE_EAT_2)(66, s) MSGPACK_PP_IF(p(66, s), MSGPACK_PP_FOR_66, MSGPACK_PP_TUPLE_EAT_4)(o(66, s), p, o, m) +# define MSGPACK_PP_FOR_66(s, p, o, m) MSGPACK_PP_IF(p(67, s), m, MSGPACK_PP_TUPLE_EAT_2)(67, s) MSGPACK_PP_IF(p(67, s), MSGPACK_PP_FOR_67, MSGPACK_PP_TUPLE_EAT_4)(o(67, s), p, o, m) +# define MSGPACK_PP_FOR_67(s, p, o, m) MSGPACK_PP_IF(p(68, s), m, MSGPACK_PP_TUPLE_EAT_2)(68, s) MSGPACK_PP_IF(p(68, s), MSGPACK_PP_FOR_68, MSGPACK_PP_TUPLE_EAT_4)(o(68, s), p, o, m) +# define MSGPACK_PP_FOR_68(s, p, o, m) MSGPACK_PP_IF(p(69, s), m, MSGPACK_PP_TUPLE_EAT_2)(69, s) MSGPACK_PP_IF(p(69, s), MSGPACK_PP_FOR_69, MSGPACK_PP_TUPLE_EAT_4)(o(69, s), p, o, m) +# define MSGPACK_PP_FOR_69(s, p, o, m) MSGPACK_PP_IF(p(70, s), m, MSGPACK_PP_TUPLE_EAT_2)(70, s) MSGPACK_PP_IF(p(70, s), MSGPACK_PP_FOR_70, MSGPACK_PP_TUPLE_EAT_4)(o(70, s), p, o, m) +# define MSGPACK_PP_FOR_70(s, p, o, m) MSGPACK_PP_IF(p(71, s), m, MSGPACK_PP_TUPLE_EAT_2)(71, s) MSGPACK_PP_IF(p(71, s), MSGPACK_PP_FOR_71, MSGPACK_PP_TUPLE_EAT_4)(o(71, s), p, o, m) +# define MSGPACK_PP_FOR_71(s, p, o, m) MSGPACK_PP_IF(p(72, s), m, MSGPACK_PP_TUPLE_EAT_2)(72, s) MSGPACK_PP_IF(p(72, s), MSGPACK_PP_FOR_72, MSGPACK_PP_TUPLE_EAT_4)(o(72, s), p, o, m) +# define MSGPACK_PP_FOR_72(s, p, o, m) MSGPACK_PP_IF(p(73, s), m, MSGPACK_PP_TUPLE_EAT_2)(73, s) MSGPACK_PP_IF(p(73, s), MSGPACK_PP_FOR_73, MSGPACK_PP_TUPLE_EAT_4)(o(73, s), p, o, m) +# define MSGPACK_PP_FOR_73(s, p, o, m) MSGPACK_PP_IF(p(74, s), m, MSGPACK_PP_TUPLE_EAT_2)(74, s) MSGPACK_PP_IF(p(74, s), MSGPACK_PP_FOR_74, MSGPACK_PP_TUPLE_EAT_4)(o(74, s), p, o, m) +# define MSGPACK_PP_FOR_74(s, p, o, m) MSGPACK_PP_IF(p(75, s), m, MSGPACK_PP_TUPLE_EAT_2)(75, s) MSGPACK_PP_IF(p(75, s), MSGPACK_PP_FOR_75, MSGPACK_PP_TUPLE_EAT_4)(o(75, s), p, o, m) +# define MSGPACK_PP_FOR_75(s, p, o, m) MSGPACK_PP_IF(p(76, s), m, MSGPACK_PP_TUPLE_EAT_2)(76, s) MSGPACK_PP_IF(p(76, s), MSGPACK_PP_FOR_76, MSGPACK_PP_TUPLE_EAT_4)(o(76, s), p, o, m) +# define MSGPACK_PP_FOR_76(s, p, o, m) MSGPACK_PP_IF(p(77, s), m, MSGPACK_PP_TUPLE_EAT_2)(77, s) MSGPACK_PP_IF(p(77, s), MSGPACK_PP_FOR_77, MSGPACK_PP_TUPLE_EAT_4)(o(77, s), p, o, m) +# define MSGPACK_PP_FOR_77(s, p, o, m) MSGPACK_PP_IF(p(78, s), m, MSGPACK_PP_TUPLE_EAT_2)(78, s) MSGPACK_PP_IF(p(78, s), MSGPACK_PP_FOR_78, MSGPACK_PP_TUPLE_EAT_4)(o(78, s), p, o, m) +# define MSGPACK_PP_FOR_78(s, p, o, m) MSGPACK_PP_IF(p(79, s), m, MSGPACK_PP_TUPLE_EAT_2)(79, s) MSGPACK_PP_IF(p(79, s), MSGPACK_PP_FOR_79, MSGPACK_PP_TUPLE_EAT_4)(o(79, s), p, o, m) +# define MSGPACK_PP_FOR_79(s, p, o, m) MSGPACK_PP_IF(p(80, s), m, MSGPACK_PP_TUPLE_EAT_2)(80, s) MSGPACK_PP_IF(p(80, s), MSGPACK_PP_FOR_80, MSGPACK_PP_TUPLE_EAT_4)(o(80, s), p, o, m) +# define MSGPACK_PP_FOR_80(s, p, o, m) MSGPACK_PP_IF(p(81, s), m, MSGPACK_PP_TUPLE_EAT_2)(81, s) MSGPACK_PP_IF(p(81, s), MSGPACK_PP_FOR_81, MSGPACK_PP_TUPLE_EAT_4)(o(81, s), p, o, m) +# define MSGPACK_PP_FOR_81(s, p, o, m) MSGPACK_PP_IF(p(82, s), m, MSGPACK_PP_TUPLE_EAT_2)(82, s) MSGPACK_PP_IF(p(82, s), MSGPACK_PP_FOR_82, MSGPACK_PP_TUPLE_EAT_4)(o(82, s), p, o, m) +# define MSGPACK_PP_FOR_82(s, p, o, m) MSGPACK_PP_IF(p(83, s), m, MSGPACK_PP_TUPLE_EAT_2)(83, s) MSGPACK_PP_IF(p(83, s), MSGPACK_PP_FOR_83, MSGPACK_PP_TUPLE_EAT_4)(o(83, s), p, o, m) +# define MSGPACK_PP_FOR_83(s, p, o, m) MSGPACK_PP_IF(p(84, s), m, MSGPACK_PP_TUPLE_EAT_2)(84, s) MSGPACK_PP_IF(p(84, s), MSGPACK_PP_FOR_84, MSGPACK_PP_TUPLE_EAT_4)(o(84, s), p, o, m) +# define MSGPACK_PP_FOR_84(s, p, o, m) MSGPACK_PP_IF(p(85, s), m, MSGPACK_PP_TUPLE_EAT_2)(85, s) MSGPACK_PP_IF(p(85, s), MSGPACK_PP_FOR_85, MSGPACK_PP_TUPLE_EAT_4)(o(85, s), p, o, m) +# define MSGPACK_PP_FOR_85(s, p, o, m) MSGPACK_PP_IF(p(86, s), m, MSGPACK_PP_TUPLE_EAT_2)(86, s) MSGPACK_PP_IF(p(86, s), MSGPACK_PP_FOR_86, MSGPACK_PP_TUPLE_EAT_4)(o(86, s), p, o, m) +# define MSGPACK_PP_FOR_86(s, p, o, m) MSGPACK_PP_IF(p(87, s), m, MSGPACK_PP_TUPLE_EAT_2)(87, s) MSGPACK_PP_IF(p(87, s), MSGPACK_PP_FOR_87, MSGPACK_PP_TUPLE_EAT_4)(o(87, s), p, o, m) +# define MSGPACK_PP_FOR_87(s, p, o, m) MSGPACK_PP_IF(p(88, s), m, MSGPACK_PP_TUPLE_EAT_2)(88, s) MSGPACK_PP_IF(p(88, s), MSGPACK_PP_FOR_88, MSGPACK_PP_TUPLE_EAT_4)(o(88, s), p, o, m) +# define MSGPACK_PP_FOR_88(s, p, o, m) MSGPACK_PP_IF(p(89, s), m, MSGPACK_PP_TUPLE_EAT_2)(89, s) MSGPACK_PP_IF(p(89, s), MSGPACK_PP_FOR_89, MSGPACK_PP_TUPLE_EAT_4)(o(89, s), p, o, m) +# define MSGPACK_PP_FOR_89(s, p, o, m) MSGPACK_PP_IF(p(90, s), m, MSGPACK_PP_TUPLE_EAT_2)(90, s) MSGPACK_PP_IF(p(90, s), MSGPACK_PP_FOR_90, MSGPACK_PP_TUPLE_EAT_4)(o(90, s), p, o, m) +# define MSGPACK_PP_FOR_90(s, p, o, m) MSGPACK_PP_IF(p(91, s), m, MSGPACK_PP_TUPLE_EAT_2)(91, s) MSGPACK_PP_IF(p(91, s), MSGPACK_PP_FOR_91, MSGPACK_PP_TUPLE_EAT_4)(o(91, s), p, o, m) +# define MSGPACK_PP_FOR_91(s, p, o, m) MSGPACK_PP_IF(p(92, s), m, MSGPACK_PP_TUPLE_EAT_2)(92, s) MSGPACK_PP_IF(p(92, s), MSGPACK_PP_FOR_92, MSGPACK_PP_TUPLE_EAT_4)(o(92, s), p, o, m) +# define MSGPACK_PP_FOR_92(s, p, o, m) MSGPACK_PP_IF(p(93, s), m, MSGPACK_PP_TUPLE_EAT_2)(93, s) MSGPACK_PP_IF(p(93, s), MSGPACK_PP_FOR_93, MSGPACK_PP_TUPLE_EAT_4)(o(93, s), p, o, m) +# define MSGPACK_PP_FOR_93(s, p, o, m) MSGPACK_PP_IF(p(94, s), m, MSGPACK_PP_TUPLE_EAT_2)(94, s) MSGPACK_PP_IF(p(94, s), MSGPACK_PP_FOR_94, MSGPACK_PP_TUPLE_EAT_4)(o(94, s), p, o, m) +# define MSGPACK_PP_FOR_94(s, p, o, m) MSGPACK_PP_IF(p(95, s), m, MSGPACK_PP_TUPLE_EAT_2)(95, s) MSGPACK_PP_IF(p(95, s), MSGPACK_PP_FOR_95, MSGPACK_PP_TUPLE_EAT_4)(o(95, s), p, o, m) +# define MSGPACK_PP_FOR_95(s, p, o, m) MSGPACK_PP_IF(p(96, s), m, MSGPACK_PP_TUPLE_EAT_2)(96, s) MSGPACK_PP_IF(p(96, s), MSGPACK_PP_FOR_96, MSGPACK_PP_TUPLE_EAT_4)(o(96, s), p, o, m) +# define MSGPACK_PP_FOR_96(s, p, o, m) MSGPACK_PP_IF(p(97, s), m, MSGPACK_PP_TUPLE_EAT_2)(97, s) MSGPACK_PP_IF(p(97, s), MSGPACK_PP_FOR_97, MSGPACK_PP_TUPLE_EAT_4)(o(97, s), p, o, m) +# define MSGPACK_PP_FOR_97(s, p, o, m) MSGPACK_PP_IF(p(98, s), m, MSGPACK_PP_TUPLE_EAT_2)(98, s) MSGPACK_PP_IF(p(98, s), MSGPACK_PP_FOR_98, MSGPACK_PP_TUPLE_EAT_4)(o(98, s), p, o, m) +# define MSGPACK_PP_FOR_98(s, p, o, m) MSGPACK_PP_IF(p(99, s), m, MSGPACK_PP_TUPLE_EAT_2)(99, s) MSGPACK_PP_IF(p(99, s), MSGPACK_PP_FOR_99, MSGPACK_PP_TUPLE_EAT_4)(o(99, s), p, o, m) +# define MSGPACK_PP_FOR_99(s, p, o, m) MSGPACK_PP_IF(p(100, s), m, MSGPACK_PP_TUPLE_EAT_2)(100, s) MSGPACK_PP_IF(p(100, s), MSGPACK_PP_FOR_100, MSGPACK_PP_TUPLE_EAT_4)(o(100, s), p, o, m) +# define MSGPACK_PP_FOR_100(s, p, o, m) MSGPACK_PP_IF(p(101, s), m, MSGPACK_PP_TUPLE_EAT_2)(101, s) MSGPACK_PP_IF(p(101, s), MSGPACK_PP_FOR_101, MSGPACK_PP_TUPLE_EAT_4)(o(101, s), p, o, m) +# define MSGPACK_PP_FOR_101(s, p, o, m) MSGPACK_PP_IF(p(102, s), m, MSGPACK_PP_TUPLE_EAT_2)(102, s) MSGPACK_PP_IF(p(102, s), MSGPACK_PP_FOR_102, MSGPACK_PP_TUPLE_EAT_4)(o(102, s), p, o, m) +# define MSGPACK_PP_FOR_102(s, p, o, m) MSGPACK_PP_IF(p(103, s), m, MSGPACK_PP_TUPLE_EAT_2)(103, s) MSGPACK_PP_IF(p(103, s), MSGPACK_PP_FOR_103, MSGPACK_PP_TUPLE_EAT_4)(o(103, s), p, o, m) +# define MSGPACK_PP_FOR_103(s, p, o, m) MSGPACK_PP_IF(p(104, s), m, MSGPACK_PP_TUPLE_EAT_2)(104, s) MSGPACK_PP_IF(p(104, s), MSGPACK_PP_FOR_104, MSGPACK_PP_TUPLE_EAT_4)(o(104, s), p, o, m) +# define MSGPACK_PP_FOR_104(s, p, o, m) MSGPACK_PP_IF(p(105, s), m, MSGPACK_PP_TUPLE_EAT_2)(105, s) MSGPACK_PP_IF(p(105, s), MSGPACK_PP_FOR_105, MSGPACK_PP_TUPLE_EAT_4)(o(105, s), p, o, m) +# define MSGPACK_PP_FOR_105(s, p, o, m) MSGPACK_PP_IF(p(106, s), m, MSGPACK_PP_TUPLE_EAT_2)(106, s) MSGPACK_PP_IF(p(106, s), MSGPACK_PP_FOR_106, MSGPACK_PP_TUPLE_EAT_4)(o(106, s), p, o, m) +# define MSGPACK_PP_FOR_106(s, p, o, m) MSGPACK_PP_IF(p(107, s), m, MSGPACK_PP_TUPLE_EAT_2)(107, s) MSGPACK_PP_IF(p(107, s), MSGPACK_PP_FOR_107, MSGPACK_PP_TUPLE_EAT_4)(o(107, s), p, o, m) +# define MSGPACK_PP_FOR_107(s, p, o, m) MSGPACK_PP_IF(p(108, s), m, MSGPACK_PP_TUPLE_EAT_2)(108, s) MSGPACK_PP_IF(p(108, s), MSGPACK_PP_FOR_108, MSGPACK_PP_TUPLE_EAT_4)(o(108, s), p, o, m) +# define MSGPACK_PP_FOR_108(s, p, o, m) MSGPACK_PP_IF(p(109, s), m, MSGPACK_PP_TUPLE_EAT_2)(109, s) MSGPACK_PP_IF(p(109, s), MSGPACK_PP_FOR_109, MSGPACK_PP_TUPLE_EAT_4)(o(109, s), p, o, m) +# define MSGPACK_PP_FOR_109(s, p, o, m) MSGPACK_PP_IF(p(110, s), m, MSGPACK_PP_TUPLE_EAT_2)(110, s) MSGPACK_PP_IF(p(110, s), MSGPACK_PP_FOR_110, MSGPACK_PP_TUPLE_EAT_4)(o(110, s), p, o, m) +# define MSGPACK_PP_FOR_110(s, p, o, m) MSGPACK_PP_IF(p(111, s), m, MSGPACK_PP_TUPLE_EAT_2)(111, s) MSGPACK_PP_IF(p(111, s), MSGPACK_PP_FOR_111, MSGPACK_PP_TUPLE_EAT_4)(o(111, s), p, o, m) +# define MSGPACK_PP_FOR_111(s, p, o, m) MSGPACK_PP_IF(p(112, s), m, MSGPACK_PP_TUPLE_EAT_2)(112, s) MSGPACK_PP_IF(p(112, s), MSGPACK_PP_FOR_112, MSGPACK_PP_TUPLE_EAT_4)(o(112, s), p, o, m) +# define MSGPACK_PP_FOR_112(s, p, o, m) MSGPACK_PP_IF(p(113, s), m, MSGPACK_PP_TUPLE_EAT_2)(113, s) MSGPACK_PP_IF(p(113, s), MSGPACK_PP_FOR_113, MSGPACK_PP_TUPLE_EAT_4)(o(113, s), p, o, m) +# define MSGPACK_PP_FOR_113(s, p, o, m) MSGPACK_PP_IF(p(114, s), m, MSGPACK_PP_TUPLE_EAT_2)(114, s) MSGPACK_PP_IF(p(114, s), MSGPACK_PP_FOR_114, MSGPACK_PP_TUPLE_EAT_4)(o(114, s), p, o, m) +# define MSGPACK_PP_FOR_114(s, p, o, m) MSGPACK_PP_IF(p(115, s), m, MSGPACK_PP_TUPLE_EAT_2)(115, s) MSGPACK_PP_IF(p(115, s), MSGPACK_PP_FOR_115, MSGPACK_PP_TUPLE_EAT_4)(o(115, s), p, o, m) +# define MSGPACK_PP_FOR_115(s, p, o, m) MSGPACK_PP_IF(p(116, s), m, MSGPACK_PP_TUPLE_EAT_2)(116, s) MSGPACK_PP_IF(p(116, s), MSGPACK_PP_FOR_116, MSGPACK_PP_TUPLE_EAT_4)(o(116, s), p, o, m) +# define MSGPACK_PP_FOR_116(s, p, o, m) MSGPACK_PP_IF(p(117, s), m, MSGPACK_PP_TUPLE_EAT_2)(117, s) MSGPACK_PP_IF(p(117, s), MSGPACK_PP_FOR_117, MSGPACK_PP_TUPLE_EAT_4)(o(117, s), p, o, m) +# define MSGPACK_PP_FOR_117(s, p, o, m) MSGPACK_PP_IF(p(118, s), m, MSGPACK_PP_TUPLE_EAT_2)(118, s) MSGPACK_PP_IF(p(118, s), MSGPACK_PP_FOR_118, MSGPACK_PP_TUPLE_EAT_4)(o(118, s), p, o, m) +# define MSGPACK_PP_FOR_118(s, p, o, m) MSGPACK_PP_IF(p(119, s), m, MSGPACK_PP_TUPLE_EAT_2)(119, s) MSGPACK_PP_IF(p(119, s), MSGPACK_PP_FOR_119, MSGPACK_PP_TUPLE_EAT_4)(o(119, s), p, o, m) +# define MSGPACK_PP_FOR_119(s, p, o, m) MSGPACK_PP_IF(p(120, s), m, MSGPACK_PP_TUPLE_EAT_2)(120, s) MSGPACK_PP_IF(p(120, s), MSGPACK_PP_FOR_120, MSGPACK_PP_TUPLE_EAT_4)(o(120, s), p, o, m) +# define MSGPACK_PP_FOR_120(s, p, o, m) MSGPACK_PP_IF(p(121, s), m, MSGPACK_PP_TUPLE_EAT_2)(121, s) MSGPACK_PP_IF(p(121, s), MSGPACK_PP_FOR_121, MSGPACK_PP_TUPLE_EAT_4)(o(121, s), p, o, m) +# define MSGPACK_PP_FOR_121(s, p, o, m) MSGPACK_PP_IF(p(122, s), m, MSGPACK_PP_TUPLE_EAT_2)(122, s) MSGPACK_PP_IF(p(122, s), MSGPACK_PP_FOR_122, MSGPACK_PP_TUPLE_EAT_4)(o(122, s), p, o, m) +# define MSGPACK_PP_FOR_122(s, p, o, m) MSGPACK_PP_IF(p(123, s), m, MSGPACK_PP_TUPLE_EAT_2)(123, s) MSGPACK_PP_IF(p(123, s), MSGPACK_PP_FOR_123, MSGPACK_PP_TUPLE_EAT_4)(o(123, s), p, o, m) +# define MSGPACK_PP_FOR_123(s, p, o, m) MSGPACK_PP_IF(p(124, s), m, MSGPACK_PP_TUPLE_EAT_2)(124, s) MSGPACK_PP_IF(p(124, s), MSGPACK_PP_FOR_124, MSGPACK_PP_TUPLE_EAT_4)(o(124, s), p, o, m) +# define MSGPACK_PP_FOR_124(s, p, o, m) MSGPACK_PP_IF(p(125, s), m, MSGPACK_PP_TUPLE_EAT_2)(125, s) MSGPACK_PP_IF(p(125, s), MSGPACK_PP_FOR_125, MSGPACK_PP_TUPLE_EAT_4)(o(125, s), p, o, m) +# define MSGPACK_PP_FOR_125(s, p, o, m) MSGPACK_PP_IF(p(126, s), m, MSGPACK_PP_TUPLE_EAT_2)(126, s) MSGPACK_PP_IF(p(126, s), MSGPACK_PP_FOR_126, MSGPACK_PP_TUPLE_EAT_4)(o(126, s), p, o, m) +# define MSGPACK_PP_FOR_126(s, p, o, m) MSGPACK_PP_IF(p(127, s), m, MSGPACK_PP_TUPLE_EAT_2)(127, s) MSGPACK_PP_IF(p(127, s), MSGPACK_PP_FOR_127, MSGPACK_PP_TUPLE_EAT_4)(o(127, s), p, o, m) +# define MSGPACK_PP_FOR_127(s, p, o, m) MSGPACK_PP_IF(p(128, s), m, MSGPACK_PP_TUPLE_EAT_2)(128, s) MSGPACK_PP_IF(p(128, s), MSGPACK_PP_FOR_128, MSGPACK_PP_TUPLE_EAT_4)(o(128, s), p, o, m) +# define MSGPACK_PP_FOR_128(s, p, o, m) MSGPACK_PP_IF(p(129, s), m, MSGPACK_PP_TUPLE_EAT_2)(129, s) MSGPACK_PP_IF(p(129, s), MSGPACK_PP_FOR_129, MSGPACK_PP_TUPLE_EAT_4)(o(129, s), p, o, m) +# define MSGPACK_PP_FOR_129(s, p, o, m) MSGPACK_PP_IF(p(130, s), m, MSGPACK_PP_TUPLE_EAT_2)(130, s) MSGPACK_PP_IF(p(130, s), MSGPACK_PP_FOR_130, MSGPACK_PP_TUPLE_EAT_4)(o(130, s), p, o, m) +# define MSGPACK_PP_FOR_130(s, p, o, m) MSGPACK_PP_IF(p(131, s), m, MSGPACK_PP_TUPLE_EAT_2)(131, s) MSGPACK_PP_IF(p(131, s), MSGPACK_PP_FOR_131, MSGPACK_PP_TUPLE_EAT_4)(o(131, s), p, o, m) +# define MSGPACK_PP_FOR_131(s, p, o, m) MSGPACK_PP_IF(p(132, s), m, MSGPACK_PP_TUPLE_EAT_2)(132, s) MSGPACK_PP_IF(p(132, s), MSGPACK_PP_FOR_132, MSGPACK_PP_TUPLE_EAT_4)(o(132, s), p, o, m) +# define MSGPACK_PP_FOR_132(s, p, o, m) MSGPACK_PP_IF(p(133, s), m, MSGPACK_PP_TUPLE_EAT_2)(133, s) MSGPACK_PP_IF(p(133, s), MSGPACK_PP_FOR_133, MSGPACK_PP_TUPLE_EAT_4)(o(133, s), p, o, m) +# define MSGPACK_PP_FOR_133(s, p, o, m) MSGPACK_PP_IF(p(134, s), m, MSGPACK_PP_TUPLE_EAT_2)(134, s) MSGPACK_PP_IF(p(134, s), MSGPACK_PP_FOR_134, MSGPACK_PP_TUPLE_EAT_4)(o(134, s), p, o, m) +# define MSGPACK_PP_FOR_134(s, p, o, m) MSGPACK_PP_IF(p(135, s), m, MSGPACK_PP_TUPLE_EAT_2)(135, s) MSGPACK_PP_IF(p(135, s), MSGPACK_PP_FOR_135, MSGPACK_PP_TUPLE_EAT_4)(o(135, s), p, o, m) +# define MSGPACK_PP_FOR_135(s, p, o, m) MSGPACK_PP_IF(p(136, s), m, MSGPACK_PP_TUPLE_EAT_2)(136, s) MSGPACK_PP_IF(p(136, s), MSGPACK_PP_FOR_136, MSGPACK_PP_TUPLE_EAT_4)(o(136, s), p, o, m) +# define MSGPACK_PP_FOR_136(s, p, o, m) MSGPACK_PP_IF(p(137, s), m, MSGPACK_PP_TUPLE_EAT_2)(137, s) MSGPACK_PP_IF(p(137, s), MSGPACK_PP_FOR_137, MSGPACK_PP_TUPLE_EAT_4)(o(137, s), p, o, m) +# define MSGPACK_PP_FOR_137(s, p, o, m) MSGPACK_PP_IF(p(138, s), m, MSGPACK_PP_TUPLE_EAT_2)(138, s) MSGPACK_PP_IF(p(138, s), MSGPACK_PP_FOR_138, MSGPACK_PP_TUPLE_EAT_4)(o(138, s), p, o, m) +# define MSGPACK_PP_FOR_138(s, p, o, m) MSGPACK_PP_IF(p(139, s), m, MSGPACK_PP_TUPLE_EAT_2)(139, s) MSGPACK_PP_IF(p(139, s), MSGPACK_PP_FOR_139, MSGPACK_PP_TUPLE_EAT_4)(o(139, s), p, o, m) +# define MSGPACK_PP_FOR_139(s, p, o, m) MSGPACK_PP_IF(p(140, s), m, MSGPACK_PP_TUPLE_EAT_2)(140, s) MSGPACK_PP_IF(p(140, s), MSGPACK_PP_FOR_140, MSGPACK_PP_TUPLE_EAT_4)(o(140, s), p, o, m) +# define MSGPACK_PP_FOR_140(s, p, o, m) MSGPACK_PP_IF(p(141, s), m, MSGPACK_PP_TUPLE_EAT_2)(141, s) MSGPACK_PP_IF(p(141, s), MSGPACK_PP_FOR_141, MSGPACK_PP_TUPLE_EAT_4)(o(141, s), p, o, m) +# define MSGPACK_PP_FOR_141(s, p, o, m) MSGPACK_PP_IF(p(142, s), m, MSGPACK_PP_TUPLE_EAT_2)(142, s) MSGPACK_PP_IF(p(142, s), MSGPACK_PP_FOR_142, MSGPACK_PP_TUPLE_EAT_4)(o(142, s), p, o, m) +# define MSGPACK_PP_FOR_142(s, p, o, m) MSGPACK_PP_IF(p(143, s), m, MSGPACK_PP_TUPLE_EAT_2)(143, s) MSGPACK_PP_IF(p(143, s), MSGPACK_PP_FOR_143, MSGPACK_PP_TUPLE_EAT_4)(o(143, s), p, o, m) +# define MSGPACK_PP_FOR_143(s, p, o, m) MSGPACK_PP_IF(p(144, s), m, MSGPACK_PP_TUPLE_EAT_2)(144, s) MSGPACK_PP_IF(p(144, s), MSGPACK_PP_FOR_144, MSGPACK_PP_TUPLE_EAT_4)(o(144, s), p, o, m) +# define MSGPACK_PP_FOR_144(s, p, o, m) MSGPACK_PP_IF(p(145, s), m, MSGPACK_PP_TUPLE_EAT_2)(145, s) MSGPACK_PP_IF(p(145, s), MSGPACK_PP_FOR_145, MSGPACK_PP_TUPLE_EAT_4)(o(145, s), p, o, m) +# define MSGPACK_PP_FOR_145(s, p, o, m) MSGPACK_PP_IF(p(146, s), m, MSGPACK_PP_TUPLE_EAT_2)(146, s) MSGPACK_PP_IF(p(146, s), MSGPACK_PP_FOR_146, MSGPACK_PP_TUPLE_EAT_4)(o(146, s), p, o, m) +# define MSGPACK_PP_FOR_146(s, p, o, m) MSGPACK_PP_IF(p(147, s), m, MSGPACK_PP_TUPLE_EAT_2)(147, s) MSGPACK_PP_IF(p(147, s), MSGPACK_PP_FOR_147, MSGPACK_PP_TUPLE_EAT_4)(o(147, s), p, o, m) +# define MSGPACK_PP_FOR_147(s, p, o, m) MSGPACK_PP_IF(p(148, s), m, MSGPACK_PP_TUPLE_EAT_2)(148, s) MSGPACK_PP_IF(p(148, s), MSGPACK_PP_FOR_148, MSGPACK_PP_TUPLE_EAT_4)(o(148, s), p, o, m) +# define MSGPACK_PP_FOR_148(s, p, o, m) MSGPACK_PP_IF(p(149, s), m, MSGPACK_PP_TUPLE_EAT_2)(149, s) MSGPACK_PP_IF(p(149, s), MSGPACK_PP_FOR_149, MSGPACK_PP_TUPLE_EAT_4)(o(149, s), p, o, m) +# define MSGPACK_PP_FOR_149(s, p, o, m) MSGPACK_PP_IF(p(150, s), m, MSGPACK_PP_TUPLE_EAT_2)(150, s) MSGPACK_PP_IF(p(150, s), MSGPACK_PP_FOR_150, MSGPACK_PP_TUPLE_EAT_4)(o(150, s), p, o, m) +# define MSGPACK_PP_FOR_150(s, p, o, m) MSGPACK_PP_IF(p(151, s), m, MSGPACK_PP_TUPLE_EAT_2)(151, s) MSGPACK_PP_IF(p(151, s), MSGPACK_PP_FOR_151, MSGPACK_PP_TUPLE_EAT_4)(o(151, s), p, o, m) +# define MSGPACK_PP_FOR_151(s, p, o, m) MSGPACK_PP_IF(p(152, s), m, MSGPACK_PP_TUPLE_EAT_2)(152, s) MSGPACK_PP_IF(p(152, s), MSGPACK_PP_FOR_152, MSGPACK_PP_TUPLE_EAT_4)(o(152, s), p, o, m) +# define MSGPACK_PP_FOR_152(s, p, o, m) MSGPACK_PP_IF(p(153, s), m, MSGPACK_PP_TUPLE_EAT_2)(153, s) MSGPACK_PP_IF(p(153, s), MSGPACK_PP_FOR_153, MSGPACK_PP_TUPLE_EAT_4)(o(153, s), p, o, m) +# define MSGPACK_PP_FOR_153(s, p, o, m) MSGPACK_PP_IF(p(154, s), m, MSGPACK_PP_TUPLE_EAT_2)(154, s) MSGPACK_PP_IF(p(154, s), MSGPACK_PP_FOR_154, MSGPACK_PP_TUPLE_EAT_4)(o(154, s), p, o, m) +# define MSGPACK_PP_FOR_154(s, p, o, m) MSGPACK_PP_IF(p(155, s), m, MSGPACK_PP_TUPLE_EAT_2)(155, s) MSGPACK_PP_IF(p(155, s), MSGPACK_PP_FOR_155, MSGPACK_PP_TUPLE_EAT_4)(o(155, s), p, o, m) +# define MSGPACK_PP_FOR_155(s, p, o, m) MSGPACK_PP_IF(p(156, s), m, MSGPACK_PP_TUPLE_EAT_2)(156, s) MSGPACK_PP_IF(p(156, s), MSGPACK_PP_FOR_156, MSGPACK_PP_TUPLE_EAT_4)(o(156, s), p, o, m) +# define MSGPACK_PP_FOR_156(s, p, o, m) MSGPACK_PP_IF(p(157, s), m, MSGPACK_PP_TUPLE_EAT_2)(157, s) MSGPACK_PP_IF(p(157, s), MSGPACK_PP_FOR_157, MSGPACK_PP_TUPLE_EAT_4)(o(157, s), p, o, m) +# define MSGPACK_PP_FOR_157(s, p, o, m) MSGPACK_PP_IF(p(158, s), m, MSGPACK_PP_TUPLE_EAT_2)(158, s) MSGPACK_PP_IF(p(158, s), MSGPACK_PP_FOR_158, MSGPACK_PP_TUPLE_EAT_4)(o(158, s), p, o, m) +# define MSGPACK_PP_FOR_158(s, p, o, m) MSGPACK_PP_IF(p(159, s), m, MSGPACK_PP_TUPLE_EAT_2)(159, s) MSGPACK_PP_IF(p(159, s), MSGPACK_PP_FOR_159, MSGPACK_PP_TUPLE_EAT_4)(o(159, s), p, o, m) +# define MSGPACK_PP_FOR_159(s, p, o, m) MSGPACK_PP_IF(p(160, s), m, MSGPACK_PP_TUPLE_EAT_2)(160, s) MSGPACK_PP_IF(p(160, s), MSGPACK_PP_FOR_160, MSGPACK_PP_TUPLE_EAT_4)(o(160, s), p, o, m) +# define MSGPACK_PP_FOR_160(s, p, o, m) MSGPACK_PP_IF(p(161, s), m, MSGPACK_PP_TUPLE_EAT_2)(161, s) MSGPACK_PP_IF(p(161, s), MSGPACK_PP_FOR_161, MSGPACK_PP_TUPLE_EAT_4)(o(161, s), p, o, m) +# define MSGPACK_PP_FOR_161(s, p, o, m) MSGPACK_PP_IF(p(162, s), m, MSGPACK_PP_TUPLE_EAT_2)(162, s) MSGPACK_PP_IF(p(162, s), MSGPACK_PP_FOR_162, MSGPACK_PP_TUPLE_EAT_4)(o(162, s), p, o, m) +# define MSGPACK_PP_FOR_162(s, p, o, m) MSGPACK_PP_IF(p(163, s), m, MSGPACK_PP_TUPLE_EAT_2)(163, s) MSGPACK_PP_IF(p(163, s), MSGPACK_PP_FOR_163, MSGPACK_PP_TUPLE_EAT_4)(o(163, s), p, o, m) +# define MSGPACK_PP_FOR_163(s, p, o, m) MSGPACK_PP_IF(p(164, s), m, MSGPACK_PP_TUPLE_EAT_2)(164, s) MSGPACK_PP_IF(p(164, s), MSGPACK_PP_FOR_164, MSGPACK_PP_TUPLE_EAT_4)(o(164, s), p, o, m) +# define MSGPACK_PP_FOR_164(s, p, o, m) MSGPACK_PP_IF(p(165, s), m, MSGPACK_PP_TUPLE_EAT_2)(165, s) MSGPACK_PP_IF(p(165, s), MSGPACK_PP_FOR_165, MSGPACK_PP_TUPLE_EAT_4)(o(165, s), p, o, m) +# define MSGPACK_PP_FOR_165(s, p, o, m) MSGPACK_PP_IF(p(166, s), m, MSGPACK_PP_TUPLE_EAT_2)(166, s) MSGPACK_PP_IF(p(166, s), MSGPACK_PP_FOR_166, MSGPACK_PP_TUPLE_EAT_4)(o(166, s), p, o, m) +# define MSGPACK_PP_FOR_166(s, p, o, m) MSGPACK_PP_IF(p(167, s), m, MSGPACK_PP_TUPLE_EAT_2)(167, s) MSGPACK_PP_IF(p(167, s), MSGPACK_PP_FOR_167, MSGPACK_PP_TUPLE_EAT_4)(o(167, s), p, o, m) +# define MSGPACK_PP_FOR_167(s, p, o, m) MSGPACK_PP_IF(p(168, s), m, MSGPACK_PP_TUPLE_EAT_2)(168, s) MSGPACK_PP_IF(p(168, s), MSGPACK_PP_FOR_168, MSGPACK_PP_TUPLE_EAT_4)(o(168, s), p, o, m) +# define MSGPACK_PP_FOR_168(s, p, o, m) MSGPACK_PP_IF(p(169, s), m, MSGPACK_PP_TUPLE_EAT_2)(169, s) MSGPACK_PP_IF(p(169, s), MSGPACK_PP_FOR_169, MSGPACK_PP_TUPLE_EAT_4)(o(169, s), p, o, m) +# define MSGPACK_PP_FOR_169(s, p, o, m) MSGPACK_PP_IF(p(170, s), m, MSGPACK_PP_TUPLE_EAT_2)(170, s) MSGPACK_PP_IF(p(170, s), MSGPACK_PP_FOR_170, MSGPACK_PP_TUPLE_EAT_4)(o(170, s), p, o, m) +# define MSGPACK_PP_FOR_170(s, p, o, m) MSGPACK_PP_IF(p(171, s), m, MSGPACK_PP_TUPLE_EAT_2)(171, s) MSGPACK_PP_IF(p(171, s), MSGPACK_PP_FOR_171, MSGPACK_PP_TUPLE_EAT_4)(o(171, s), p, o, m) +# define MSGPACK_PP_FOR_171(s, p, o, m) MSGPACK_PP_IF(p(172, s), m, MSGPACK_PP_TUPLE_EAT_2)(172, s) MSGPACK_PP_IF(p(172, s), MSGPACK_PP_FOR_172, MSGPACK_PP_TUPLE_EAT_4)(o(172, s), p, o, m) +# define MSGPACK_PP_FOR_172(s, p, o, m) MSGPACK_PP_IF(p(173, s), m, MSGPACK_PP_TUPLE_EAT_2)(173, s) MSGPACK_PP_IF(p(173, s), MSGPACK_PP_FOR_173, MSGPACK_PP_TUPLE_EAT_4)(o(173, s), p, o, m) +# define MSGPACK_PP_FOR_173(s, p, o, m) MSGPACK_PP_IF(p(174, s), m, MSGPACK_PP_TUPLE_EAT_2)(174, s) MSGPACK_PP_IF(p(174, s), MSGPACK_PP_FOR_174, MSGPACK_PP_TUPLE_EAT_4)(o(174, s), p, o, m) +# define MSGPACK_PP_FOR_174(s, p, o, m) MSGPACK_PP_IF(p(175, s), m, MSGPACK_PP_TUPLE_EAT_2)(175, s) MSGPACK_PP_IF(p(175, s), MSGPACK_PP_FOR_175, MSGPACK_PP_TUPLE_EAT_4)(o(175, s), p, o, m) +# define MSGPACK_PP_FOR_175(s, p, o, m) MSGPACK_PP_IF(p(176, s), m, MSGPACK_PP_TUPLE_EAT_2)(176, s) MSGPACK_PP_IF(p(176, s), MSGPACK_PP_FOR_176, MSGPACK_PP_TUPLE_EAT_4)(o(176, s), p, o, m) +# define MSGPACK_PP_FOR_176(s, p, o, m) MSGPACK_PP_IF(p(177, s), m, MSGPACK_PP_TUPLE_EAT_2)(177, s) MSGPACK_PP_IF(p(177, s), MSGPACK_PP_FOR_177, MSGPACK_PP_TUPLE_EAT_4)(o(177, s), p, o, m) +# define MSGPACK_PP_FOR_177(s, p, o, m) MSGPACK_PP_IF(p(178, s), m, MSGPACK_PP_TUPLE_EAT_2)(178, s) MSGPACK_PP_IF(p(178, s), MSGPACK_PP_FOR_178, MSGPACK_PP_TUPLE_EAT_4)(o(178, s), p, o, m) +# define MSGPACK_PP_FOR_178(s, p, o, m) MSGPACK_PP_IF(p(179, s), m, MSGPACK_PP_TUPLE_EAT_2)(179, s) MSGPACK_PP_IF(p(179, s), MSGPACK_PP_FOR_179, MSGPACK_PP_TUPLE_EAT_4)(o(179, s), p, o, m) +# define MSGPACK_PP_FOR_179(s, p, o, m) MSGPACK_PP_IF(p(180, s), m, MSGPACK_PP_TUPLE_EAT_2)(180, s) MSGPACK_PP_IF(p(180, s), MSGPACK_PP_FOR_180, MSGPACK_PP_TUPLE_EAT_4)(o(180, s), p, o, m) +# define MSGPACK_PP_FOR_180(s, p, o, m) MSGPACK_PP_IF(p(181, s), m, MSGPACK_PP_TUPLE_EAT_2)(181, s) MSGPACK_PP_IF(p(181, s), MSGPACK_PP_FOR_181, MSGPACK_PP_TUPLE_EAT_4)(o(181, s), p, o, m) +# define MSGPACK_PP_FOR_181(s, p, o, m) MSGPACK_PP_IF(p(182, s), m, MSGPACK_PP_TUPLE_EAT_2)(182, s) MSGPACK_PP_IF(p(182, s), MSGPACK_PP_FOR_182, MSGPACK_PP_TUPLE_EAT_4)(o(182, s), p, o, m) +# define MSGPACK_PP_FOR_182(s, p, o, m) MSGPACK_PP_IF(p(183, s), m, MSGPACK_PP_TUPLE_EAT_2)(183, s) MSGPACK_PP_IF(p(183, s), MSGPACK_PP_FOR_183, MSGPACK_PP_TUPLE_EAT_4)(o(183, s), p, o, m) +# define MSGPACK_PP_FOR_183(s, p, o, m) MSGPACK_PP_IF(p(184, s), m, MSGPACK_PP_TUPLE_EAT_2)(184, s) MSGPACK_PP_IF(p(184, s), MSGPACK_PP_FOR_184, MSGPACK_PP_TUPLE_EAT_4)(o(184, s), p, o, m) +# define MSGPACK_PP_FOR_184(s, p, o, m) MSGPACK_PP_IF(p(185, s), m, MSGPACK_PP_TUPLE_EAT_2)(185, s) MSGPACK_PP_IF(p(185, s), MSGPACK_PP_FOR_185, MSGPACK_PP_TUPLE_EAT_4)(o(185, s), p, o, m) +# define MSGPACK_PP_FOR_185(s, p, o, m) MSGPACK_PP_IF(p(186, s), m, MSGPACK_PP_TUPLE_EAT_2)(186, s) MSGPACK_PP_IF(p(186, s), MSGPACK_PP_FOR_186, MSGPACK_PP_TUPLE_EAT_4)(o(186, s), p, o, m) +# define MSGPACK_PP_FOR_186(s, p, o, m) MSGPACK_PP_IF(p(187, s), m, MSGPACK_PP_TUPLE_EAT_2)(187, s) MSGPACK_PP_IF(p(187, s), MSGPACK_PP_FOR_187, MSGPACK_PP_TUPLE_EAT_4)(o(187, s), p, o, m) +# define MSGPACK_PP_FOR_187(s, p, o, m) MSGPACK_PP_IF(p(188, s), m, MSGPACK_PP_TUPLE_EAT_2)(188, s) MSGPACK_PP_IF(p(188, s), MSGPACK_PP_FOR_188, MSGPACK_PP_TUPLE_EAT_4)(o(188, s), p, o, m) +# define MSGPACK_PP_FOR_188(s, p, o, m) MSGPACK_PP_IF(p(189, s), m, MSGPACK_PP_TUPLE_EAT_2)(189, s) MSGPACK_PP_IF(p(189, s), MSGPACK_PP_FOR_189, MSGPACK_PP_TUPLE_EAT_4)(o(189, s), p, o, m) +# define MSGPACK_PP_FOR_189(s, p, o, m) MSGPACK_PP_IF(p(190, s), m, MSGPACK_PP_TUPLE_EAT_2)(190, s) MSGPACK_PP_IF(p(190, s), MSGPACK_PP_FOR_190, MSGPACK_PP_TUPLE_EAT_4)(o(190, s), p, o, m) +# define MSGPACK_PP_FOR_190(s, p, o, m) MSGPACK_PP_IF(p(191, s), m, MSGPACK_PP_TUPLE_EAT_2)(191, s) MSGPACK_PP_IF(p(191, s), MSGPACK_PP_FOR_191, MSGPACK_PP_TUPLE_EAT_4)(o(191, s), p, o, m) +# define MSGPACK_PP_FOR_191(s, p, o, m) MSGPACK_PP_IF(p(192, s), m, MSGPACK_PP_TUPLE_EAT_2)(192, s) MSGPACK_PP_IF(p(192, s), MSGPACK_PP_FOR_192, MSGPACK_PP_TUPLE_EAT_4)(o(192, s), p, o, m) +# define MSGPACK_PP_FOR_192(s, p, o, m) MSGPACK_PP_IF(p(193, s), m, MSGPACK_PP_TUPLE_EAT_2)(193, s) MSGPACK_PP_IF(p(193, s), MSGPACK_PP_FOR_193, MSGPACK_PP_TUPLE_EAT_4)(o(193, s), p, o, m) +# define MSGPACK_PP_FOR_193(s, p, o, m) MSGPACK_PP_IF(p(194, s), m, MSGPACK_PP_TUPLE_EAT_2)(194, s) MSGPACK_PP_IF(p(194, s), MSGPACK_PP_FOR_194, MSGPACK_PP_TUPLE_EAT_4)(o(194, s), p, o, m) +# define MSGPACK_PP_FOR_194(s, p, o, m) MSGPACK_PP_IF(p(195, s), m, MSGPACK_PP_TUPLE_EAT_2)(195, s) MSGPACK_PP_IF(p(195, s), MSGPACK_PP_FOR_195, MSGPACK_PP_TUPLE_EAT_4)(o(195, s), p, o, m) +# define MSGPACK_PP_FOR_195(s, p, o, m) MSGPACK_PP_IF(p(196, s), m, MSGPACK_PP_TUPLE_EAT_2)(196, s) MSGPACK_PP_IF(p(196, s), MSGPACK_PP_FOR_196, MSGPACK_PP_TUPLE_EAT_4)(o(196, s), p, o, m) +# define MSGPACK_PP_FOR_196(s, p, o, m) MSGPACK_PP_IF(p(197, s), m, MSGPACK_PP_TUPLE_EAT_2)(197, s) MSGPACK_PP_IF(p(197, s), MSGPACK_PP_FOR_197, MSGPACK_PP_TUPLE_EAT_4)(o(197, s), p, o, m) +# define MSGPACK_PP_FOR_197(s, p, o, m) MSGPACK_PP_IF(p(198, s), m, MSGPACK_PP_TUPLE_EAT_2)(198, s) MSGPACK_PP_IF(p(198, s), MSGPACK_PP_FOR_198, MSGPACK_PP_TUPLE_EAT_4)(o(198, s), p, o, m) +# define MSGPACK_PP_FOR_198(s, p, o, m) MSGPACK_PP_IF(p(199, s), m, MSGPACK_PP_TUPLE_EAT_2)(199, s) MSGPACK_PP_IF(p(199, s), MSGPACK_PP_FOR_199, MSGPACK_PP_TUPLE_EAT_4)(o(199, s), p, o, m) +# define MSGPACK_PP_FOR_199(s, p, o, m) MSGPACK_PP_IF(p(200, s), m, MSGPACK_PP_TUPLE_EAT_2)(200, s) MSGPACK_PP_IF(p(200, s), MSGPACK_PP_FOR_200, MSGPACK_PP_TUPLE_EAT_4)(o(200, s), p, o, m) +# define MSGPACK_PP_FOR_200(s, p, o, m) MSGPACK_PP_IF(p(201, s), m, MSGPACK_PP_TUPLE_EAT_2)(201, s) MSGPACK_PP_IF(p(201, s), MSGPACK_PP_FOR_201, MSGPACK_PP_TUPLE_EAT_4)(o(201, s), p, o, m) +# define MSGPACK_PP_FOR_201(s, p, o, m) MSGPACK_PP_IF(p(202, s), m, MSGPACK_PP_TUPLE_EAT_2)(202, s) MSGPACK_PP_IF(p(202, s), MSGPACK_PP_FOR_202, MSGPACK_PP_TUPLE_EAT_4)(o(202, s), p, o, m) +# define MSGPACK_PP_FOR_202(s, p, o, m) MSGPACK_PP_IF(p(203, s), m, MSGPACK_PP_TUPLE_EAT_2)(203, s) MSGPACK_PP_IF(p(203, s), MSGPACK_PP_FOR_203, MSGPACK_PP_TUPLE_EAT_4)(o(203, s), p, o, m) +# define MSGPACK_PP_FOR_203(s, p, o, m) MSGPACK_PP_IF(p(204, s), m, MSGPACK_PP_TUPLE_EAT_2)(204, s) MSGPACK_PP_IF(p(204, s), MSGPACK_PP_FOR_204, MSGPACK_PP_TUPLE_EAT_4)(o(204, s), p, o, m) +# define MSGPACK_PP_FOR_204(s, p, o, m) MSGPACK_PP_IF(p(205, s), m, MSGPACK_PP_TUPLE_EAT_2)(205, s) MSGPACK_PP_IF(p(205, s), MSGPACK_PP_FOR_205, MSGPACK_PP_TUPLE_EAT_4)(o(205, s), p, o, m) +# define MSGPACK_PP_FOR_205(s, p, o, m) MSGPACK_PP_IF(p(206, s), m, MSGPACK_PP_TUPLE_EAT_2)(206, s) MSGPACK_PP_IF(p(206, s), MSGPACK_PP_FOR_206, MSGPACK_PP_TUPLE_EAT_4)(o(206, s), p, o, m) +# define MSGPACK_PP_FOR_206(s, p, o, m) MSGPACK_PP_IF(p(207, s), m, MSGPACK_PP_TUPLE_EAT_2)(207, s) MSGPACK_PP_IF(p(207, s), MSGPACK_PP_FOR_207, MSGPACK_PP_TUPLE_EAT_4)(o(207, s), p, o, m) +# define MSGPACK_PP_FOR_207(s, p, o, m) MSGPACK_PP_IF(p(208, s), m, MSGPACK_PP_TUPLE_EAT_2)(208, s) MSGPACK_PP_IF(p(208, s), MSGPACK_PP_FOR_208, MSGPACK_PP_TUPLE_EAT_4)(o(208, s), p, o, m) +# define MSGPACK_PP_FOR_208(s, p, o, m) MSGPACK_PP_IF(p(209, s), m, MSGPACK_PP_TUPLE_EAT_2)(209, s) MSGPACK_PP_IF(p(209, s), MSGPACK_PP_FOR_209, MSGPACK_PP_TUPLE_EAT_4)(o(209, s), p, o, m) +# define MSGPACK_PP_FOR_209(s, p, o, m) MSGPACK_PP_IF(p(210, s), m, MSGPACK_PP_TUPLE_EAT_2)(210, s) MSGPACK_PP_IF(p(210, s), MSGPACK_PP_FOR_210, MSGPACK_PP_TUPLE_EAT_4)(o(210, s), p, o, m) +# define MSGPACK_PP_FOR_210(s, p, o, m) MSGPACK_PP_IF(p(211, s), m, MSGPACK_PP_TUPLE_EAT_2)(211, s) MSGPACK_PP_IF(p(211, s), MSGPACK_PP_FOR_211, MSGPACK_PP_TUPLE_EAT_4)(o(211, s), p, o, m) +# define MSGPACK_PP_FOR_211(s, p, o, m) MSGPACK_PP_IF(p(212, s), m, MSGPACK_PP_TUPLE_EAT_2)(212, s) MSGPACK_PP_IF(p(212, s), MSGPACK_PP_FOR_212, MSGPACK_PP_TUPLE_EAT_4)(o(212, s), p, o, m) +# define MSGPACK_PP_FOR_212(s, p, o, m) MSGPACK_PP_IF(p(213, s), m, MSGPACK_PP_TUPLE_EAT_2)(213, s) MSGPACK_PP_IF(p(213, s), MSGPACK_PP_FOR_213, MSGPACK_PP_TUPLE_EAT_4)(o(213, s), p, o, m) +# define MSGPACK_PP_FOR_213(s, p, o, m) MSGPACK_PP_IF(p(214, s), m, MSGPACK_PP_TUPLE_EAT_2)(214, s) MSGPACK_PP_IF(p(214, s), MSGPACK_PP_FOR_214, MSGPACK_PP_TUPLE_EAT_4)(o(214, s), p, o, m) +# define MSGPACK_PP_FOR_214(s, p, o, m) MSGPACK_PP_IF(p(215, s), m, MSGPACK_PP_TUPLE_EAT_2)(215, s) MSGPACK_PP_IF(p(215, s), MSGPACK_PP_FOR_215, MSGPACK_PP_TUPLE_EAT_4)(o(215, s), p, o, m) +# define MSGPACK_PP_FOR_215(s, p, o, m) MSGPACK_PP_IF(p(216, s), m, MSGPACK_PP_TUPLE_EAT_2)(216, s) MSGPACK_PP_IF(p(216, s), MSGPACK_PP_FOR_216, MSGPACK_PP_TUPLE_EAT_4)(o(216, s), p, o, m) +# define MSGPACK_PP_FOR_216(s, p, o, m) MSGPACK_PP_IF(p(217, s), m, MSGPACK_PP_TUPLE_EAT_2)(217, s) MSGPACK_PP_IF(p(217, s), MSGPACK_PP_FOR_217, MSGPACK_PP_TUPLE_EAT_4)(o(217, s), p, o, m) +# define MSGPACK_PP_FOR_217(s, p, o, m) MSGPACK_PP_IF(p(218, s), m, MSGPACK_PP_TUPLE_EAT_2)(218, s) MSGPACK_PP_IF(p(218, s), MSGPACK_PP_FOR_218, MSGPACK_PP_TUPLE_EAT_4)(o(218, s), p, o, m) +# define MSGPACK_PP_FOR_218(s, p, o, m) MSGPACK_PP_IF(p(219, s), m, MSGPACK_PP_TUPLE_EAT_2)(219, s) MSGPACK_PP_IF(p(219, s), MSGPACK_PP_FOR_219, MSGPACK_PP_TUPLE_EAT_4)(o(219, s), p, o, m) +# define MSGPACK_PP_FOR_219(s, p, o, m) MSGPACK_PP_IF(p(220, s), m, MSGPACK_PP_TUPLE_EAT_2)(220, s) MSGPACK_PP_IF(p(220, s), MSGPACK_PP_FOR_220, MSGPACK_PP_TUPLE_EAT_4)(o(220, s), p, o, m) +# define MSGPACK_PP_FOR_220(s, p, o, m) MSGPACK_PP_IF(p(221, s), m, MSGPACK_PP_TUPLE_EAT_2)(221, s) MSGPACK_PP_IF(p(221, s), MSGPACK_PP_FOR_221, MSGPACK_PP_TUPLE_EAT_4)(o(221, s), p, o, m) +# define MSGPACK_PP_FOR_221(s, p, o, m) MSGPACK_PP_IF(p(222, s), m, MSGPACK_PP_TUPLE_EAT_2)(222, s) MSGPACK_PP_IF(p(222, s), MSGPACK_PP_FOR_222, MSGPACK_PP_TUPLE_EAT_4)(o(222, s), p, o, m) +# define MSGPACK_PP_FOR_222(s, p, o, m) MSGPACK_PP_IF(p(223, s), m, MSGPACK_PP_TUPLE_EAT_2)(223, s) MSGPACK_PP_IF(p(223, s), MSGPACK_PP_FOR_223, MSGPACK_PP_TUPLE_EAT_4)(o(223, s), p, o, m) +# define MSGPACK_PP_FOR_223(s, p, o, m) MSGPACK_PP_IF(p(224, s), m, MSGPACK_PP_TUPLE_EAT_2)(224, s) MSGPACK_PP_IF(p(224, s), MSGPACK_PP_FOR_224, MSGPACK_PP_TUPLE_EAT_4)(o(224, s), p, o, m) +# define MSGPACK_PP_FOR_224(s, p, o, m) MSGPACK_PP_IF(p(225, s), m, MSGPACK_PP_TUPLE_EAT_2)(225, s) MSGPACK_PP_IF(p(225, s), MSGPACK_PP_FOR_225, MSGPACK_PP_TUPLE_EAT_4)(o(225, s), p, o, m) +# define MSGPACK_PP_FOR_225(s, p, o, m) MSGPACK_PP_IF(p(226, s), m, MSGPACK_PP_TUPLE_EAT_2)(226, s) MSGPACK_PP_IF(p(226, s), MSGPACK_PP_FOR_226, MSGPACK_PP_TUPLE_EAT_4)(o(226, s), p, o, m) +# define MSGPACK_PP_FOR_226(s, p, o, m) MSGPACK_PP_IF(p(227, s), m, MSGPACK_PP_TUPLE_EAT_2)(227, s) MSGPACK_PP_IF(p(227, s), MSGPACK_PP_FOR_227, MSGPACK_PP_TUPLE_EAT_4)(o(227, s), p, o, m) +# define MSGPACK_PP_FOR_227(s, p, o, m) MSGPACK_PP_IF(p(228, s), m, MSGPACK_PP_TUPLE_EAT_2)(228, s) MSGPACK_PP_IF(p(228, s), MSGPACK_PP_FOR_228, MSGPACK_PP_TUPLE_EAT_4)(o(228, s), p, o, m) +# define MSGPACK_PP_FOR_228(s, p, o, m) MSGPACK_PP_IF(p(229, s), m, MSGPACK_PP_TUPLE_EAT_2)(229, s) MSGPACK_PP_IF(p(229, s), MSGPACK_PP_FOR_229, MSGPACK_PP_TUPLE_EAT_4)(o(229, s), p, o, m) +# define MSGPACK_PP_FOR_229(s, p, o, m) MSGPACK_PP_IF(p(230, s), m, MSGPACK_PP_TUPLE_EAT_2)(230, s) MSGPACK_PP_IF(p(230, s), MSGPACK_PP_FOR_230, MSGPACK_PP_TUPLE_EAT_4)(o(230, s), p, o, m) +# define MSGPACK_PP_FOR_230(s, p, o, m) MSGPACK_PP_IF(p(231, s), m, MSGPACK_PP_TUPLE_EAT_2)(231, s) MSGPACK_PP_IF(p(231, s), MSGPACK_PP_FOR_231, MSGPACK_PP_TUPLE_EAT_4)(o(231, s), p, o, m) +# define MSGPACK_PP_FOR_231(s, p, o, m) MSGPACK_PP_IF(p(232, s), m, MSGPACK_PP_TUPLE_EAT_2)(232, s) MSGPACK_PP_IF(p(232, s), MSGPACK_PP_FOR_232, MSGPACK_PP_TUPLE_EAT_4)(o(232, s), p, o, m) +# define MSGPACK_PP_FOR_232(s, p, o, m) MSGPACK_PP_IF(p(233, s), m, MSGPACK_PP_TUPLE_EAT_2)(233, s) MSGPACK_PP_IF(p(233, s), MSGPACK_PP_FOR_233, MSGPACK_PP_TUPLE_EAT_4)(o(233, s), p, o, m) +# define MSGPACK_PP_FOR_233(s, p, o, m) MSGPACK_PP_IF(p(234, s), m, MSGPACK_PP_TUPLE_EAT_2)(234, s) MSGPACK_PP_IF(p(234, s), MSGPACK_PP_FOR_234, MSGPACK_PP_TUPLE_EAT_4)(o(234, s), p, o, m) +# define MSGPACK_PP_FOR_234(s, p, o, m) MSGPACK_PP_IF(p(235, s), m, MSGPACK_PP_TUPLE_EAT_2)(235, s) MSGPACK_PP_IF(p(235, s), MSGPACK_PP_FOR_235, MSGPACK_PP_TUPLE_EAT_4)(o(235, s), p, o, m) +# define MSGPACK_PP_FOR_235(s, p, o, m) MSGPACK_PP_IF(p(236, s), m, MSGPACK_PP_TUPLE_EAT_2)(236, s) MSGPACK_PP_IF(p(236, s), MSGPACK_PP_FOR_236, MSGPACK_PP_TUPLE_EAT_4)(o(236, s), p, o, m) +# define MSGPACK_PP_FOR_236(s, p, o, m) MSGPACK_PP_IF(p(237, s), m, MSGPACK_PP_TUPLE_EAT_2)(237, s) MSGPACK_PP_IF(p(237, s), MSGPACK_PP_FOR_237, MSGPACK_PP_TUPLE_EAT_4)(o(237, s), p, o, m) +# define MSGPACK_PP_FOR_237(s, p, o, m) MSGPACK_PP_IF(p(238, s), m, MSGPACK_PP_TUPLE_EAT_2)(238, s) MSGPACK_PP_IF(p(238, s), MSGPACK_PP_FOR_238, MSGPACK_PP_TUPLE_EAT_4)(o(238, s), p, o, m) +# define MSGPACK_PP_FOR_238(s, p, o, m) MSGPACK_PP_IF(p(239, s), m, MSGPACK_PP_TUPLE_EAT_2)(239, s) MSGPACK_PP_IF(p(239, s), MSGPACK_PP_FOR_239, MSGPACK_PP_TUPLE_EAT_4)(o(239, s), p, o, m) +# define MSGPACK_PP_FOR_239(s, p, o, m) MSGPACK_PP_IF(p(240, s), m, MSGPACK_PP_TUPLE_EAT_2)(240, s) MSGPACK_PP_IF(p(240, s), MSGPACK_PP_FOR_240, MSGPACK_PP_TUPLE_EAT_4)(o(240, s), p, o, m) +# define MSGPACK_PP_FOR_240(s, p, o, m) MSGPACK_PP_IF(p(241, s), m, MSGPACK_PP_TUPLE_EAT_2)(241, s) MSGPACK_PP_IF(p(241, s), MSGPACK_PP_FOR_241, MSGPACK_PP_TUPLE_EAT_4)(o(241, s), p, o, m) +# define MSGPACK_PP_FOR_241(s, p, o, m) MSGPACK_PP_IF(p(242, s), m, MSGPACK_PP_TUPLE_EAT_2)(242, s) MSGPACK_PP_IF(p(242, s), MSGPACK_PP_FOR_242, MSGPACK_PP_TUPLE_EAT_4)(o(242, s), p, o, m) +# define MSGPACK_PP_FOR_242(s, p, o, m) MSGPACK_PP_IF(p(243, s), m, MSGPACK_PP_TUPLE_EAT_2)(243, s) MSGPACK_PP_IF(p(243, s), MSGPACK_PP_FOR_243, MSGPACK_PP_TUPLE_EAT_4)(o(243, s), p, o, m) +# define MSGPACK_PP_FOR_243(s, p, o, m) MSGPACK_PP_IF(p(244, s), m, MSGPACK_PP_TUPLE_EAT_2)(244, s) MSGPACK_PP_IF(p(244, s), MSGPACK_PP_FOR_244, MSGPACK_PP_TUPLE_EAT_4)(o(244, s), p, o, m) +# define MSGPACK_PP_FOR_244(s, p, o, m) MSGPACK_PP_IF(p(245, s), m, MSGPACK_PP_TUPLE_EAT_2)(245, s) MSGPACK_PP_IF(p(245, s), MSGPACK_PP_FOR_245, MSGPACK_PP_TUPLE_EAT_4)(o(245, s), p, o, m) +# define MSGPACK_PP_FOR_245(s, p, o, m) MSGPACK_PP_IF(p(246, s), m, MSGPACK_PP_TUPLE_EAT_2)(246, s) MSGPACK_PP_IF(p(246, s), MSGPACK_PP_FOR_246, MSGPACK_PP_TUPLE_EAT_4)(o(246, s), p, o, m) +# define MSGPACK_PP_FOR_246(s, p, o, m) MSGPACK_PP_IF(p(247, s), m, MSGPACK_PP_TUPLE_EAT_2)(247, s) MSGPACK_PP_IF(p(247, s), MSGPACK_PP_FOR_247, MSGPACK_PP_TUPLE_EAT_4)(o(247, s), p, o, m) +# define MSGPACK_PP_FOR_247(s, p, o, m) MSGPACK_PP_IF(p(248, s), m, MSGPACK_PP_TUPLE_EAT_2)(248, s) MSGPACK_PP_IF(p(248, s), MSGPACK_PP_FOR_248, MSGPACK_PP_TUPLE_EAT_4)(o(248, s), p, o, m) +# define MSGPACK_PP_FOR_248(s, p, o, m) MSGPACK_PP_IF(p(249, s), m, MSGPACK_PP_TUPLE_EAT_2)(249, s) MSGPACK_PP_IF(p(249, s), MSGPACK_PP_FOR_249, MSGPACK_PP_TUPLE_EAT_4)(o(249, s), p, o, m) +# define MSGPACK_PP_FOR_249(s, p, o, m) MSGPACK_PP_IF(p(250, s), m, MSGPACK_PP_TUPLE_EAT_2)(250, s) MSGPACK_PP_IF(p(250, s), MSGPACK_PP_FOR_250, MSGPACK_PP_TUPLE_EAT_4)(o(250, s), p, o, m) +# define MSGPACK_PP_FOR_250(s, p, o, m) MSGPACK_PP_IF(p(251, s), m, MSGPACK_PP_TUPLE_EAT_2)(251, s) MSGPACK_PP_IF(p(251, s), MSGPACK_PP_FOR_251, MSGPACK_PP_TUPLE_EAT_4)(o(251, s), p, o, m) +# define MSGPACK_PP_FOR_251(s, p, o, m) MSGPACK_PP_IF(p(252, s), m, MSGPACK_PP_TUPLE_EAT_2)(252, s) MSGPACK_PP_IF(p(252, s), MSGPACK_PP_FOR_252, MSGPACK_PP_TUPLE_EAT_4)(o(252, s), p, o, m) +# define MSGPACK_PP_FOR_252(s, p, o, m) MSGPACK_PP_IF(p(253, s), m, MSGPACK_PP_TUPLE_EAT_2)(253, s) MSGPACK_PP_IF(p(253, s), MSGPACK_PP_FOR_253, MSGPACK_PP_TUPLE_EAT_4)(o(253, s), p, o, m) +# define MSGPACK_PP_FOR_253(s, p, o, m) MSGPACK_PP_IF(p(254, s), m, MSGPACK_PP_TUPLE_EAT_2)(254, s) MSGPACK_PP_IF(p(254, s), MSGPACK_PP_FOR_254, MSGPACK_PP_TUPLE_EAT_4)(o(254, s), p, o, m) +# define MSGPACK_PP_FOR_254(s, p, o, m) MSGPACK_PP_IF(p(255, s), m, MSGPACK_PP_TUPLE_EAT_2)(255, s) MSGPACK_PP_IF(p(255, s), MSGPACK_PP_FOR_255, MSGPACK_PP_TUPLE_EAT_4)(o(255, s), p, o, m) +# define MSGPACK_PP_FOR_255(s, p, o, m) MSGPACK_PP_IF(p(256, s), m, MSGPACK_PP_TUPLE_EAT_2)(256, s) MSGPACK_PP_IF(p(256, s), MSGPACK_PP_FOR_256, MSGPACK_PP_TUPLE_EAT_4)(o(256, s), p, o, m) +# define MSGPACK_PP_FOR_256(s, p, o, m) MSGPACK_PP_IF(p(257, s), m, MSGPACK_PP_TUPLE_EAT_2)(257, s) MSGPACK_PP_IF(p(257, s), MSGPACK_PP_FOR_257, MSGPACK_PP_TUPLE_EAT_4)(o(257, s), p, o, m) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/enum.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum.hpp new file mode 100644 index 000000000000..56952debc4a7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum.hpp @@ -0,0 +1,66 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ENUM */ +# +# if 0 +# define MSGPACK_PP_ENUM(count, macro, data) +# endif +# +# define MSGPACK_PP_ENUM MSGPACK_PP_CAT(MSGPACK_PP_ENUM_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_REPEAT_P, 4)) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_1(c, m, d) MSGPACK_PP_REPEAT_1(c, MSGPACK_PP_ENUM_M_1, (m, d)) +# define MSGPACK_PP_ENUM_2(c, m, d) MSGPACK_PP_REPEAT_2(c, MSGPACK_PP_ENUM_M_2, (m, d)) +# define MSGPACK_PP_ENUM_3(c, m, d) MSGPACK_PP_REPEAT_3(c, MSGPACK_PP_ENUM_M_3, (m, d)) +# else +# define MSGPACK_PP_ENUM_1(c, m, d) MSGPACK_PP_ENUM_1_I(c, m, d) +# define MSGPACK_PP_ENUM_2(c, m, d) MSGPACK_PP_ENUM_2_I(c, m, d) +# define MSGPACK_PP_ENUM_3(c, m, d) MSGPACK_PP_ENUM_3_I(c, m, d) +# define MSGPACK_PP_ENUM_1_I(c, m, d) MSGPACK_PP_REPEAT_1(c, MSGPACK_PP_ENUM_M_1, (m, d)) +# define MSGPACK_PP_ENUM_2_I(c, m, d) MSGPACK_PP_REPEAT_2(c, MSGPACK_PP_ENUM_M_2, (m, d)) +# define MSGPACK_PP_ENUM_3_I(c, m, d) MSGPACK_PP_REPEAT_3(c, MSGPACK_PP_ENUM_M_3, (m, d)) +# endif +# +# define MSGPACK_PP_ENUM_4(c, m, d) MSGPACK_PP_ERROR(0x0003) +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_ENUM_M_1(z, n, md) MSGPACK_PP_ENUM_M_1_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md) +# define MSGPACK_PP_ENUM_M_2(z, n, md) MSGPACK_PP_ENUM_M_2_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md) +# define MSGPACK_PP_ENUM_M_3(z, n, md) MSGPACK_PP_ENUM_M_3_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md) +# define MSGPACK_PP_ENUM_M_1_IM(z, n, im) MSGPACK_PP_ENUM_M_1_I(z, n, im) +# define MSGPACK_PP_ENUM_M_2_IM(z, n, im) MSGPACK_PP_ENUM_M_2_I(z, n, im) +# define MSGPACK_PP_ENUM_M_3_IM(z, n, im) MSGPACK_PP_ENUM_M_3_I(z, n, im) +# else +# define MSGPACK_PP_ENUM_M_1(z, n, md) MSGPACK_PP_ENUM_M_1_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md)) +# define MSGPACK_PP_ENUM_M_2(z, n, md) MSGPACK_PP_ENUM_M_2_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md)) +# define MSGPACK_PP_ENUM_M_3(z, n, md) MSGPACK_PP_ENUM_M_3_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md)) +# endif +# +# define MSGPACK_PP_ENUM_M_1_I(z, n, m, d) MSGPACK_PP_COMMA_IF(n) m(z, n, d) +# define MSGPACK_PP_ENUM_M_2_I(z, n, m, d) MSGPACK_PP_COMMA_IF(n) m(z, n, d) +# define MSGPACK_PP_ENUM_M_3_I(z, n, m, d) MSGPACK_PP_COMMA_IF(n) m(z, n, d) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_binary_params.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_binary_params.hpp new file mode 100644 index 000000000000..4bfd8363e361 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_binary_params.hpp @@ -0,0 +1,54 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_BINARY_PARAMS_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_BINARY_PARAMS_HPP +# +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ENUM_BINARY_PARAMS */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_BINARY_PARAMS(count, p1, p2) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_BINARY_PARAMS_M, (p1, p2)) +# else +# define MSGPACK_PP_ENUM_BINARY_PARAMS(count, p1, p2) MSGPACK_PP_ENUM_BINARY_PARAMS_I(count, p1, p2) +# define MSGPACK_PP_ENUM_BINARY_PARAMS_I(count, p1, p2) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_BINARY_PARAMS_M, (p1, p2)) +# endif +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_ENUM_BINARY_PARAMS_M(z, n, pp) MSGPACK_PP_ENUM_BINARY_PARAMS_M_IM(z, n, MSGPACK_PP_TUPLE_REM_2 pp) +# define MSGPACK_PP_ENUM_BINARY_PARAMS_M_IM(z, n, im) MSGPACK_PP_ENUM_BINARY_PARAMS_M_I(z, n, im) +# else +# define MSGPACK_PP_ENUM_BINARY_PARAMS_M(z, n, pp) MSGPACK_PP_ENUM_BINARY_PARAMS_M_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, pp), MSGPACK_PP_TUPLE_ELEM(2, 1, pp)) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_ENUM_BINARY_PARAMS_M_I(z, n, p1, p2) MSGPACK_PP_ENUM_BINARY_PARAMS_M_II(z, n, p1, p2) +# define MSGPACK_PP_ENUM_BINARY_PARAMS_M_II(z, n, p1, p2) MSGPACK_PP_COMMA_IF(n) p1 ## n p2 ## n +# else +# define MSGPACK_PP_ENUM_BINARY_PARAMS_M_I(z, n, p1, p2) MSGPACK_PP_COMMA_IF(n) MSGPACK_PP_CAT(p1, n) MSGPACK_PP_CAT(p2, n) +# endif +# +# /* MSGPACK_PP_ENUM_BINARY_PARAMS_Z */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_BINARY_PARAMS_Z(z, count, p1, p2) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_BINARY_PARAMS_M, (p1, p2)) +# else +# define MSGPACK_PP_ENUM_BINARY_PARAMS_Z(z, count, p1, p2) MSGPACK_PP_ENUM_BINARY_PARAMS_Z_I(z, count, p1, p2) +# define MSGPACK_PP_ENUM_BINARY_PARAMS_Z_I(z, count, p1, p2) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_BINARY_PARAMS_M, (p1, p2)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_params.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_params.hpp new file mode 100644 index 000000000000..5d03dd0495be --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_params.hpp @@ -0,0 +1,41 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_PARAMS_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_PARAMS_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_ENUM_PARAMS */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_PARAMS(count, param) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_PARAMS_M, param) +# else +# define MSGPACK_PP_ENUM_PARAMS(count, param) MSGPACK_PP_ENUM_PARAMS_I(count, param) +# define MSGPACK_PP_ENUM_PARAMS_I(count, param) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_PARAMS_M, param) +# endif +# +# define MSGPACK_PP_ENUM_PARAMS_M(z, n, param) MSGPACK_PP_COMMA_IF(n) param ## n +# +# /* MSGPACK_PP_ENUM_PARAMS_Z */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_PARAMS_Z(z, count, param) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_PARAMS_M, param) +# else +# define MSGPACK_PP_ENUM_PARAMS_Z(z, count, param) MSGPACK_PP_ENUM_PARAMS_Z_I(z, count, param) +# define MSGPACK_PP_ENUM_PARAMS_Z_I(z, count, param) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_PARAMS_M, param) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_params_with_a_default.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_params_with_a_default.hpp new file mode 100644 index 000000000000..27e9ad9fe5ef --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_params_with_a_default.hpp @@ -0,0 +1,25 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_ENUM_PARAMS_WITH_A_DEFAULT */ +# +# define MSGPACK_PP_ENUM_PARAMS_WITH_A_DEFAULT(count, param, def) MSGPACK_PP_ENUM_BINARY_PARAMS(count, param, = def MSGPACK_PP_INTERCEPT) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_params_with_defaults.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_params_with_defaults.hpp new file mode 100644 index 000000000000..19b21280f78e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_params_with_defaults.hpp @@ -0,0 +1,24 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_DEFAULTS_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_DEFAULTS_HPP +# +# include +# include +# +# /* MSGPACK_PP_ENUM_PARAMS_WITH_DEFAULTS */ +# +# define MSGPACK_PP_ENUM_PARAMS_WITH_DEFAULTS(count, param, def) MSGPACK_PP_ENUM_BINARY_PARAMS(count, param, = def) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_shifted.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_shifted.hpp new file mode 100644 index 000000000000..71d549ba4fb2 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_shifted.hpp @@ -0,0 +1,68 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_SHIFTED_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_SHIFTED_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ENUM_SHIFTED */ +# +# if 0 +# define MSGPACK_PP_ENUM_SHIFTED(count, macro, data) +# endif +# +# define MSGPACK_PP_ENUM_SHIFTED MSGPACK_PP_CAT(MSGPACK_PP_ENUM_SHIFTED_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_REPEAT_P, 4)) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_SHIFTED_1(c, m, d) MSGPACK_PP_REPEAT_1(MSGPACK_PP_DEC(c), MSGPACK_PP_ENUM_SHIFTED_M_1, (m, d)) +# define MSGPACK_PP_ENUM_SHIFTED_2(c, m, d) MSGPACK_PP_REPEAT_2(MSGPACK_PP_DEC(c), MSGPACK_PP_ENUM_SHIFTED_M_2, (m, d)) +# define MSGPACK_PP_ENUM_SHIFTED_3(c, m, d) MSGPACK_PP_REPEAT_3(MSGPACK_PP_DEC(c), MSGPACK_PP_ENUM_SHIFTED_M_3, (m, d)) +# else +# define MSGPACK_PP_ENUM_SHIFTED_1(c, m, d) MSGPACK_PP_ENUM_SHIFTED_1_I(c, m, d) +# define MSGPACK_PP_ENUM_SHIFTED_2(c, m, d) MSGPACK_PP_ENUM_SHIFTED_1_2(c, m, d) +# define MSGPACK_PP_ENUM_SHIFTED_3(c, m, d) MSGPACK_PP_ENUM_SHIFTED_1_3(c, m, d) +# define MSGPACK_PP_ENUM_SHIFTED_1_I(c, m, d) MSGPACK_PP_REPEAT_1(MSGPACK_PP_DEC(c), MSGPACK_PP_ENUM_SHIFTED_M_1, (m, d)) +# define MSGPACK_PP_ENUM_SHIFTED_2_I(c, m, d) MSGPACK_PP_REPEAT_2(MSGPACK_PP_DEC(c), MSGPACK_PP_ENUM_SHIFTED_M_2, (m, d)) +# define MSGPACK_PP_ENUM_SHIFTED_3_I(c, m, d) MSGPACK_PP_REPEAT_3(MSGPACK_PP_DEC(c), MSGPACK_PP_ENUM_SHIFTED_M_3, (m, d)) +# endif +# +# define MSGPACK_PP_ENUM_SHIFTED_4(c, m, d) MSGPACK_PP_ERROR(0x0003) +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_ENUM_SHIFTED_M_1(z, n, md) MSGPACK_PP_ENUM_SHIFTED_M_1_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md) +# define MSGPACK_PP_ENUM_SHIFTED_M_2(z, n, md) MSGPACK_PP_ENUM_SHIFTED_M_2_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md) +# define MSGPACK_PP_ENUM_SHIFTED_M_3(z, n, md) MSGPACK_PP_ENUM_SHIFTED_M_3_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md) +# define MSGPACK_PP_ENUM_SHIFTED_M_1_IM(z, n, im) MSGPACK_PP_ENUM_SHIFTED_M_1_I(z, n, im) +# define MSGPACK_PP_ENUM_SHIFTED_M_2_IM(z, n, im) MSGPACK_PP_ENUM_SHIFTED_M_2_I(z, n, im) +# define MSGPACK_PP_ENUM_SHIFTED_M_3_IM(z, n, im) MSGPACK_PP_ENUM_SHIFTED_M_3_I(z, n, im) +# else +# define MSGPACK_PP_ENUM_SHIFTED_M_1(z, n, md) MSGPACK_PP_ENUM_SHIFTED_M_1_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md)) +# define MSGPACK_PP_ENUM_SHIFTED_M_2(z, n, md) MSGPACK_PP_ENUM_SHIFTED_M_2_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md)) +# define MSGPACK_PP_ENUM_SHIFTED_M_3(z, n, md) MSGPACK_PP_ENUM_SHIFTED_M_3_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md)) +# endif +# +# define MSGPACK_PP_ENUM_SHIFTED_M_1_I(z, n, m, d) MSGPACK_PP_COMMA_IF(n) m(z, MSGPACK_PP_INC(n), d) +# define MSGPACK_PP_ENUM_SHIFTED_M_2_I(z, n, m, d) MSGPACK_PP_COMMA_IF(n) m(z, MSGPACK_PP_INC(n), d) +# define MSGPACK_PP_ENUM_SHIFTED_M_3_I(z, n, m, d) MSGPACK_PP_COMMA_IF(n) m(z, MSGPACK_PP_INC(n), d) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_shifted_binary_params.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_shifted_binary_params.hpp new file mode 100644 index 000000000000..fe8e270d0581 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_shifted_binary_params.hpp @@ -0,0 +1,51 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2005. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_SHIFTED_BINARY_PARAMS_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_SHIFTED_BINARY_PARAMS_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2) MSGPACK_PP_REPEAT(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2)) +# else +# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2) MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_I(count, p1, p2) +# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_I(count, p1, p2) MSGPACK_PP_REPEAT(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2)) +# endif +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M(z, n, pp) MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M_IM(z, n, MSGPACK_PP_TUPLE_REM_2 pp) +# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M_IM(z, n, im) MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, im) +# else +# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M(z, n, pp) MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, pp), MSGPACK_PP_TUPLE_ELEM(2, 1, pp)) +# endif +# +# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, p1, p2) MSGPACK_PP_COMMA_IF(n) MSGPACK_PP_CAT(p1, MSGPACK_PP_INC(n)) MSGPACK_PP_CAT(p2, MSGPACK_PP_INC(n)) +# +# /* MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_Z */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_Z(z, count, p1, p2) MSGPACK_PP_REPEAT_ ## z(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2)) +# else +# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_Z(z, count, p1, p2) MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_Z_I(z, count, p1, p2) +# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_Z_I(z, count, p1, p2) MSGPACK_PP_REPEAT_ ## z(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_shifted_params.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_shifted_params.hpp new file mode 100644 index 000000000000..ea12790c5bcd --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_shifted_params.hpp @@ -0,0 +1,44 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP +# +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ENUM_SHIFTED_PARAMS */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_SHIFTED_PARAMS(count, param) MSGPACK_PP_REPEAT(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_PARAMS_M, param) +# else +# define MSGPACK_PP_ENUM_SHIFTED_PARAMS(count, param) MSGPACK_PP_ENUM_SHIFTED_PARAMS_I(count, param) +# define MSGPACK_PP_ENUM_SHIFTED_PARAMS_I(count, param) MSGPACK_PP_REPEAT(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_PARAMS_M, param) +# endif +# +# define MSGPACK_PP_ENUM_SHIFTED_PARAMS_M(z, n, param) MSGPACK_PP_COMMA_IF(n) MSGPACK_PP_CAT(param, MSGPACK_PP_INC(n)) +# +# /* MSGPACK_PP_ENUM_SHIFTED_PARAMS_Z */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) MSGPACK_PP_REPEAT_ ## z(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_PARAMS_M, param) +# else +# define MSGPACK_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) MSGPACK_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param) +# define MSGPACK_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param) MSGPACK_PP_REPEAT_ ## z(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_PARAMS_M, param) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_trailing.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_trailing.hpp new file mode 100644 index 000000000000..96360f84fd8f --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_trailing.hpp @@ -0,0 +1,63 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP +# +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ENUM_TRAILING */ +# +# if 0 +# define MSGPACK_PP_ENUM_TRAILING(count, macro, data) +# endif +# +# define MSGPACK_PP_ENUM_TRAILING MSGPACK_PP_CAT(MSGPACK_PP_ENUM_TRAILING_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_REPEAT_P, 4)) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_TRAILING_1(c, m, d) MSGPACK_PP_REPEAT_1(c, MSGPACK_PP_ENUM_TRAILING_M_1, (m, d)) +# define MSGPACK_PP_ENUM_TRAILING_2(c, m, d) MSGPACK_PP_REPEAT_2(c, MSGPACK_PP_ENUM_TRAILING_M_2, (m, d)) +# define MSGPACK_PP_ENUM_TRAILING_3(c, m, d) MSGPACK_PP_REPEAT_3(c, MSGPACK_PP_ENUM_TRAILING_M_3, (m, d)) +# else +# define MSGPACK_PP_ENUM_TRAILING_1(c, m, d) MSGPACK_PP_ENUM_TRAILING_1_I(c, m, d) +# define MSGPACK_PP_ENUM_TRAILING_2(c, m, d) MSGPACK_PP_ENUM_TRAILING_2_I(c, m, d) +# define MSGPACK_PP_ENUM_TRAILING_3(c, m, d) MSGPACK_PP_ENUM_TRAILING_3_I(c, m, d) +# define MSGPACK_PP_ENUM_TRAILING_1_I(c, m, d) MSGPACK_PP_REPEAT_1(c, MSGPACK_PP_ENUM_TRAILING_M_1, (m, d)) +# define MSGPACK_PP_ENUM_TRAILING_2_I(c, m, d) MSGPACK_PP_REPEAT_2(c, MSGPACK_PP_ENUM_TRAILING_M_2, (m, d)) +# define MSGPACK_PP_ENUM_TRAILING_3_I(c, m, d) MSGPACK_PP_REPEAT_3(c, MSGPACK_PP_ENUM_TRAILING_M_3, (m, d)) +# endif +# +# define MSGPACK_PP_ENUM_TRAILING_4(c, m, d) MSGPACK_PP_ERROR(0x0003) +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_ENUM_TRAILING_M_1(z, n, md) MSGPACK_PP_ENUM_TRAILING_M_1_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md) +# define MSGPACK_PP_ENUM_TRAILING_M_2(z, n, md) MSGPACK_PP_ENUM_TRAILING_M_2_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md) +# define MSGPACK_PP_ENUM_TRAILING_M_3(z, n, md) MSGPACK_PP_ENUM_TRAILING_M_3_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md) +# define MSGPACK_PP_ENUM_TRAILING_M_1_IM(z, n, im) MSGPACK_PP_ENUM_TRAILING_M_1_I(z, n, im) +# define MSGPACK_PP_ENUM_TRAILING_M_2_IM(z, n, im) MSGPACK_PP_ENUM_TRAILING_M_2_I(z, n, im) +# define MSGPACK_PP_ENUM_TRAILING_M_3_IM(z, n, im) MSGPACK_PP_ENUM_TRAILING_M_3_I(z, n, im) +# else +# define MSGPACK_PP_ENUM_TRAILING_M_1(z, n, md) MSGPACK_PP_ENUM_TRAILING_M_1_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md)) +# define MSGPACK_PP_ENUM_TRAILING_M_2(z, n, md) MSGPACK_PP_ENUM_TRAILING_M_2_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md)) +# define MSGPACK_PP_ENUM_TRAILING_M_3(z, n, md) MSGPACK_PP_ENUM_TRAILING_M_3_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md)) +# endif +# +# define MSGPACK_PP_ENUM_TRAILING_M_1_I(z, n, m, d) , m(z, n, d) +# define MSGPACK_PP_ENUM_TRAILING_M_2_I(z, n, m, d) , m(z, n, d) +# define MSGPACK_PP_ENUM_TRAILING_M_3_I(z, n, m, d) , m(z, n, d) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_trailing_binary_params.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_trailing_binary_params.hpp new file mode 100644 index 000000000000..fb2cb5dcd143 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_trailing_binary_params.hpp @@ -0,0 +1,53 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_TRAILING_BINARY_PARAMS_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_TRAILING_BINARY_PARAMS_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS(count, p1, p2) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2)) +# else +# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS(count, p1, p2) MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_I(count, p1, p2) +# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_I(count, p1, p2) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2)) +# endif +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M(z, n, pp) MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_IM(z, n, MSGPACK_PP_TUPLE_REM_2 pp) +# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_IM(z, n, im) MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, im) +# else +# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M(z, n, pp) MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, pp), MSGPACK_PP_TUPLE_ELEM(2, 1, pp)) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, p1, p2) MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_II(z, n, p1, p2) +# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_II(z, n, p1, p2) , p1 ## n p2 ## n +# else +# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, p1, p2) , MSGPACK_PP_CAT(p1, n) MSGPACK_PP_CAT(p2, n) +# endif +# +# /* MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_Z */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_Z(z, count, p1, p2) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2)) +# else +# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_Z(z, count, p1, p2) MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_Z_I(z, count, p1, p2) +# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_Z_I(z, count, p1, p2) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_trailing_params.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_trailing_params.hpp new file mode 100644 index 000000000000..9f6d53159839 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/enum_trailing_params.hpp @@ -0,0 +1,38 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP +# +# include +# include +# +# /* MSGPACK_PP_ENUM_TRAILING_PARAMS */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_TRAILING_PARAMS(count, param) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_TRAILING_PARAMS_M, param) +# else +# define MSGPACK_PP_ENUM_TRAILING_PARAMS(count, param) MSGPACK_PP_ENUM_TRAILING_PARAMS_I(count, param) +# define MSGPACK_PP_ENUM_TRAILING_PARAMS_I(count, param) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_TRAILING_PARAMS_M, param) +# endif +# +# define MSGPACK_PP_ENUM_TRAILING_PARAMS_M(z, n, param) , param ## n +# +# /* MSGPACK_PP_ENUM_TRAILING_PARAMS_Z */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_TRAILING_PARAMS_M, param) +# else +# define MSGPACK_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) MSGPACK_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param) +# define MSGPACK_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_TRAILING_PARAMS_M, param) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/for.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/for.hpp new file mode 100644 index 000000000000..543f2f80cd76 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/for.hpp @@ -0,0 +1,324 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_FOR_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_FOR_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_FOR */ +# +# if 0 +# define MSGPACK_PP_FOR(state, pred, op, macro) +# endif +# +# define MSGPACK_PP_FOR MSGPACK_PP_CAT(MSGPACK_PP_FOR_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_FOR_P, 256)) +# +# define MSGPACK_PP_FOR_P(n) MSGPACK_PP_CAT(MSGPACK_PP_FOR_CHECK_, MSGPACK_PP_FOR_ ## n(1, MSGPACK_PP_FOR_SR_P, MSGPACK_PP_FOR_SR_O, MSGPACK_PP_FOR_SR_M)) +# +# define MSGPACK_PP_FOR_SR_P(r, s) s +# define MSGPACK_PP_FOR_SR_O(r, s) 0 +# define MSGPACK_PP_FOR_SR_M(r, s) MSGPACK_PP_NIL +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# include +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# include +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC() +# include +# else +# include +# endif +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC() +# define MSGPACK_PP_FOR_257_PR(s, p) MSGPACK_PP_BOOL(p##(257, s)) +# else +# define MSGPACK_PP_FOR_257_PR(s, p) MSGPACK_PP_BOOL(p(257, s)) +# endif + +# define MSGPACK_PP_FOR_257_ERROR() MSGPACK_PP_ERROR(0x0002) +# define MSGPACK_PP_FOR_257(s, p, o, m) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_FOR_257_PR(s,p), \ + MSGPACK_PP_FOR_257_ERROR, \ + MSGPACK_PP_EMPTY \ + ) \ + () \ +/**/ +// # define MSGPACK_PP_FOR_257(s, p, o, m) MSGPACK_PP_ERROR(0x0002) +# +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_NIL 1 +# +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_1(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_2(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_3(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_4(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_5(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_6(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_7(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_8(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_9(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_10(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_11(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_12(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_13(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_14(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_15(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_16(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_17(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_18(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_19(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_20(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_21(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_22(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_23(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_24(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_25(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_26(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_27(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_28(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_29(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_30(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_31(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_32(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_33(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_34(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_35(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_36(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_37(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_38(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_39(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_40(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_41(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_42(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_43(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_44(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_45(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_46(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_47(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_48(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_49(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_50(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_51(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_52(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_53(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_54(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_55(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_56(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_57(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_58(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_59(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_60(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_61(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_62(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_63(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_64(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_65(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_66(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_67(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_68(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_69(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_70(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_71(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_72(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_73(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_74(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_75(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_76(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_77(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_78(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_79(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_80(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_81(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_82(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_83(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_84(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_85(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_86(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_87(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_88(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_89(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_90(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_91(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_92(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_93(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_94(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_95(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_96(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_97(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_98(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_99(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_100(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_101(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_102(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_103(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_104(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_105(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_106(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_107(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_108(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_109(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_110(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_111(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_112(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_113(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_114(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_115(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_116(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_117(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_118(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_119(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_120(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_121(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_122(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_123(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_124(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_125(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_126(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_127(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_128(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_129(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_130(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_131(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_132(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_133(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_134(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_135(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_136(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_137(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_138(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_139(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_140(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_141(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_142(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_143(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_144(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_145(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_146(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_147(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_148(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_149(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_150(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_151(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_152(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_153(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_154(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_155(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_156(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_157(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_158(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_159(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_160(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_161(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_162(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_163(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_164(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_165(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_166(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_167(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_168(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_169(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_170(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_171(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_172(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_173(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_174(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_175(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_176(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_177(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_178(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_179(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_180(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_181(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_182(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_183(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_184(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_185(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_186(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_187(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_188(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_189(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_190(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_191(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_192(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_193(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_194(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_195(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_196(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_197(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_198(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_199(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_200(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_201(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_202(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_203(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_204(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_205(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_206(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_207(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_208(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_209(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_210(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_211(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_212(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_213(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_214(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_215(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_216(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_217(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_218(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_219(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_220(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_221(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_222(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_223(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_224(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_225(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_226(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_227(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_228(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_229(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_230(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_231(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_232(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_233(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_234(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_235(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_236(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_237(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_238(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_239(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_240(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_241(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_242(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_243(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_244(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_245(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_246(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_247(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_248(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_249(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_250(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_251(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_252(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_253(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_254(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_255(s, p, o, m) 0 +# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_256(s, p, o, m) 0 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/repeat.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/repeat.hpp new file mode 100644 index 000000000000..d43810f717db --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/repeat.hpp @@ -0,0 +1,825 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_REPEAT_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_REPEAT_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_REPEAT */ +# +# if 0 +# define MSGPACK_PP_REPEAT(count, macro, data) +# endif +# +# define MSGPACK_PP_REPEAT MSGPACK_PP_CAT(MSGPACK_PP_REPEAT_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_REPEAT_P, 4)) +# +# define MSGPACK_PP_REPEAT_P(n) MSGPACK_PP_CAT(MSGPACK_PP_REPEAT_CHECK_, MSGPACK_PP_REPEAT_ ## n(1, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3, MSGPACK_PP_NIL)) +# +# define MSGPACK_PP_REPEAT_CHECK_MSGPACK_PP_NIL 1 +# define MSGPACK_PP_REPEAT_CHECK_MSGPACK_PP_REPEAT_1(c, m, d) 0 +# define MSGPACK_PP_REPEAT_CHECK_MSGPACK_PP_REPEAT_2(c, m, d) 0 +# define MSGPACK_PP_REPEAT_CHECK_MSGPACK_PP_REPEAT_3(c, m, d) 0 +# +# define MSGPACK_PP_REPEAT_1(c, m, d) MSGPACK_PP_REPEAT_1_I(c, m, d) +# define MSGPACK_PP_REPEAT_2(c, m, d) MSGPACK_PP_REPEAT_2_I(c, m, d) +# define MSGPACK_PP_REPEAT_3(c, m, d) MSGPACK_PP_REPEAT_3_I(c, m, d) +# define MSGPACK_PP_REPEAT_4(c, m, d) MSGPACK_PP_ERROR(0x0003) +# +# define MSGPACK_PP_REPEAT_1_I(c, m, d) MSGPACK_PP_REPEAT_1_ ## c(m, d) +# define MSGPACK_PP_REPEAT_2_I(c, m, d) MSGPACK_PP_REPEAT_2_ ## c(m, d) +# define MSGPACK_PP_REPEAT_3_I(c, m, d) MSGPACK_PP_REPEAT_3_ ## c(m, d) +# +# define MSGPACK_PP_REPEAT_1ST MSGPACK_PP_REPEAT_1 +# define MSGPACK_PP_REPEAT_2ND MSGPACK_PP_REPEAT_2 +# define MSGPACK_PP_REPEAT_3RD MSGPACK_PP_REPEAT_3 +# +# define MSGPACK_PP_REPEAT_1_0(m, d) +# define MSGPACK_PP_REPEAT_1_1(m, d) m(2, 0, d) +# define MSGPACK_PP_REPEAT_1_2(m, d) MSGPACK_PP_REPEAT_1_1(m, d) m(2, 1, d) +# define MSGPACK_PP_REPEAT_1_3(m, d) MSGPACK_PP_REPEAT_1_2(m, d) m(2, 2, d) +# define MSGPACK_PP_REPEAT_1_4(m, d) MSGPACK_PP_REPEAT_1_3(m, d) m(2, 3, d) +# define MSGPACK_PP_REPEAT_1_5(m, d) MSGPACK_PP_REPEAT_1_4(m, d) m(2, 4, d) +# define MSGPACK_PP_REPEAT_1_6(m, d) MSGPACK_PP_REPEAT_1_5(m, d) m(2, 5, d) +# define MSGPACK_PP_REPEAT_1_7(m, d) MSGPACK_PP_REPEAT_1_6(m, d) m(2, 6, d) +# define MSGPACK_PP_REPEAT_1_8(m, d) MSGPACK_PP_REPEAT_1_7(m, d) m(2, 7, d) +# define MSGPACK_PP_REPEAT_1_9(m, d) MSGPACK_PP_REPEAT_1_8(m, d) m(2, 8, d) +# define MSGPACK_PP_REPEAT_1_10(m, d) MSGPACK_PP_REPEAT_1_9(m, d) m(2, 9, d) +# define MSGPACK_PP_REPEAT_1_11(m, d) MSGPACK_PP_REPEAT_1_10(m, d) m(2, 10, d) +# define MSGPACK_PP_REPEAT_1_12(m, d) MSGPACK_PP_REPEAT_1_11(m, d) m(2, 11, d) +# define MSGPACK_PP_REPEAT_1_13(m, d) MSGPACK_PP_REPEAT_1_12(m, d) m(2, 12, d) +# define MSGPACK_PP_REPEAT_1_14(m, d) MSGPACK_PP_REPEAT_1_13(m, d) m(2, 13, d) +# define MSGPACK_PP_REPEAT_1_15(m, d) MSGPACK_PP_REPEAT_1_14(m, d) m(2, 14, d) +# define MSGPACK_PP_REPEAT_1_16(m, d) MSGPACK_PP_REPEAT_1_15(m, d) m(2, 15, d) +# define MSGPACK_PP_REPEAT_1_17(m, d) MSGPACK_PP_REPEAT_1_16(m, d) m(2, 16, d) +# define MSGPACK_PP_REPEAT_1_18(m, d) MSGPACK_PP_REPEAT_1_17(m, d) m(2, 17, d) +# define MSGPACK_PP_REPEAT_1_19(m, d) MSGPACK_PP_REPEAT_1_18(m, d) m(2, 18, d) +# define MSGPACK_PP_REPEAT_1_20(m, d) MSGPACK_PP_REPEAT_1_19(m, d) m(2, 19, d) +# define MSGPACK_PP_REPEAT_1_21(m, d) MSGPACK_PP_REPEAT_1_20(m, d) m(2, 20, d) +# define MSGPACK_PP_REPEAT_1_22(m, d) MSGPACK_PP_REPEAT_1_21(m, d) m(2, 21, d) +# define MSGPACK_PP_REPEAT_1_23(m, d) MSGPACK_PP_REPEAT_1_22(m, d) m(2, 22, d) +# define MSGPACK_PP_REPEAT_1_24(m, d) MSGPACK_PP_REPEAT_1_23(m, d) m(2, 23, d) +# define MSGPACK_PP_REPEAT_1_25(m, d) MSGPACK_PP_REPEAT_1_24(m, d) m(2, 24, d) +# define MSGPACK_PP_REPEAT_1_26(m, d) MSGPACK_PP_REPEAT_1_25(m, d) m(2, 25, d) +# define MSGPACK_PP_REPEAT_1_27(m, d) MSGPACK_PP_REPEAT_1_26(m, d) m(2, 26, d) +# define MSGPACK_PP_REPEAT_1_28(m, d) MSGPACK_PP_REPEAT_1_27(m, d) m(2, 27, d) +# define MSGPACK_PP_REPEAT_1_29(m, d) MSGPACK_PP_REPEAT_1_28(m, d) m(2, 28, d) +# define MSGPACK_PP_REPEAT_1_30(m, d) MSGPACK_PP_REPEAT_1_29(m, d) m(2, 29, d) +# define MSGPACK_PP_REPEAT_1_31(m, d) MSGPACK_PP_REPEAT_1_30(m, d) m(2, 30, d) +# define MSGPACK_PP_REPEAT_1_32(m, d) MSGPACK_PP_REPEAT_1_31(m, d) m(2, 31, d) +# define MSGPACK_PP_REPEAT_1_33(m, d) MSGPACK_PP_REPEAT_1_32(m, d) m(2, 32, d) +# define MSGPACK_PP_REPEAT_1_34(m, d) MSGPACK_PP_REPEAT_1_33(m, d) m(2, 33, d) +# define MSGPACK_PP_REPEAT_1_35(m, d) MSGPACK_PP_REPEAT_1_34(m, d) m(2, 34, d) +# define MSGPACK_PP_REPEAT_1_36(m, d) MSGPACK_PP_REPEAT_1_35(m, d) m(2, 35, d) +# define MSGPACK_PP_REPEAT_1_37(m, d) MSGPACK_PP_REPEAT_1_36(m, d) m(2, 36, d) +# define MSGPACK_PP_REPEAT_1_38(m, d) MSGPACK_PP_REPEAT_1_37(m, d) m(2, 37, d) +# define MSGPACK_PP_REPEAT_1_39(m, d) MSGPACK_PP_REPEAT_1_38(m, d) m(2, 38, d) +# define MSGPACK_PP_REPEAT_1_40(m, d) MSGPACK_PP_REPEAT_1_39(m, d) m(2, 39, d) +# define MSGPACK_PP_REPEAT_1_41(m, d) MSGPACK_PP_REPEAT_1_40(m, d) m(2, 40, d) +# define MSGPACK_PP_REPEAT_1_42(m, d) MSGPACK_PP_REPEAT_1_41(m, d) m(2, 41, d) +# define MSGPACK_PP_REPEAT_1_43(m, d) MSGPACK_PP_REPEAT_1_42(m, d) m(2, 42, d) +# define MSGPACK_PP_REPEAT_1_44(m, d) MSGPACK_PP_REPEAT_1_43(m, d) m(2, 43, d) +# define MSGPACK_PP_REPEAT_1_45(m, d) MSGPACK_PP_REPEAT_1_44(m, d) m(2, 44, d) +# define MSGPACK_PP_REPEAT_1_46(m, d) MSGPACK_PP_REPEAT_1_45(m, d) m(2, 45, d) +# define MSGPACK_PP_REPEAT_1_47(m, d) MSGPACK_PP_REPEAT_1_46(m, d) m(2, 46, d) +# define MSGPACK_PP_REPEAT_1_48(m, d) MSGPACK_PP_REPEAT_1_47(m, d) m(2, 47, d) +# define MSGPACK_PP_REPEAT_1_49(m, d) MSGPACK_PP_REPEAT_1_48(m, d) m(2, 48, d) +# define MSGPACK_PP_REPEAT_1_50(m, d) MSGPACK_PP_REPEAT_1_49(m, d) m(2, 49, d) +# define MSGPACK_PP_REPEAT_1_51(m, d) MSGPACK_PP_REPEAT_1_50(m, d) m(2, 50, d) +# define MSGPACK_PP_REPEAT_1_52(m, d) MSGPACK_PP_REPEAT_1_51(m, d) m(2, 51, d) +# define MSGPACK_PP_REPEAT_1_53(m, d) MSGPACK_PP_REPEAT_1_52(m, d) m(2, 52, d) +# define MSGPACK_PP_REPEAT_1_54(m, d) MSGPACK_PP_REPEAT_1_53(m, d) m(2, 53, d) +# define MSGPACK_PP_REPEAT_1_55(m, d) MSGPACK_PP_REPEAT_1_54(m, d) m(2, 54, d) +# define MSGPACK_PP_REPEAT_1_56(m, d) MSGPACK_PP_REPEAT_1_55(m, d) m(2, 55, d) +# define MSGPACK_PP_REPEAT_1_57(m, d) MSGPACK_PP_REPEAT_1_56(m, d) m(2, 56, d) +# define MSGPACK_PP_REPEAT_1_58(m, d) MSGPACK_PP_REPEAT_1_57(m, d) m(2, 57, d) +# define MSGPACK_PP_REPEAT_1_59(m, d) MSGPACK_PP_REPEAT_1_58(m, d) m(2, 58, d) +# define MSGPACK_PP_REPEAT_1_60(m, d) MSGPACK_PP_REPEAT_1_59(m, d) m(2, 59, d) +# define MSGPACK_PP_REPEAT_1_61(m, d) MSGPACK_PP_REPEAT_1_60(m, d) m(2, 60, d) +# define MSGPACK_PP_REPEAT_1_62(m, d) MSGPACK_PP_REPEAT_1_61(m, d) m(2, 61, d) +# define MSGPACK_PP_REPEAT_1_63(m, d) MSGPACK_PP_REPEAT_1_62(m, d) m(2, 62, d) +# define MSGPACK_PP_REPEAT_1_64(m, d) MSGPACK_PP_REPEAT_1_63(m, d) m(2, 63, d) +# define MSGPACK_PP_REPEAT_1_65(m, d) MSGPACK_PP_REPEAT_1_64(m, d) m(2, 64, d) +# define MSGPACK_PP_REPEAT_1_66(m, d) MSGPACK_PP_REPEAT_1_65(m, d) m(2, 65, d) +# define MSGPACK_PP_REPEAT_1_67(m, d) MSGPACK_PP_REPEAT_1_66(m, d) m(2, 66, d) +# define MSGPACK_PP_REPEAT_1_68(m, d) MSGPACK_PP_REPEAT_1_67(m, d) m(2, 67, d) +# define MSGPACK_PP_REPEAT_1_69(m, d) MSGPACK_PP_REPEAT_1_68(m, d) m(2, 68, d) +# define MSGPACK_PP_REPEAT_1_70(m, d) MSGPACK_PP_REPEAT_1_69(m, d) m(2, 69, d) +# define MSGPACK_PP_REPEAT_1_71(m, d) MSGPACK_PP_REPEAT_1_70(m, d) m(2, 70, d) +# define MSGPACK_PP_REPEAT_1_72(m, d) MSGPACK_PP_REPEAT_1_71(m, d) m(2, 71, d) +# define MSGPACK_PP_REPEAT_1_73(m, d) MSGPACK_PP_REPEAT_1_72(m, d) m(2, 72, d) +# define MSGPACK_PP_REPEAT_1_74(m, d) MSGPACK_PP_REPEAT_1_73(m, d) m(2, 73, d) +# define MSGPACK_PP_REPEAT_1_75(m, d) MSGPACK_PP_REPEAT_1_74(m, d) m(2, 74, d) +# define MSGPACK_PP_REPEAT_1_76(m, d) MSGPACK_PP_REPEAT_1_75(m, d) m(2, 75, d) +# define MSGPACK_PP_REPEAT_1_77(m, d) MSGPACK_PP_REPEAT_1_76(m, d) m(2, 76, d) +# define MSGPACK_PP_REPEAT_1_78(m, d) MSGPACK_PP_REPEAT_1_77(m, d) m(2, 77, d) +# define MSGPACK_PP_REPEAT_1_79(m, d) MSGPACK_PP_REPEAT_1_78(m, d) m(2, 78, d) +# define MSGPACK_PP_REPEAT_1_80(m, d) MSGPACK_PP_REPEAT_1_79(m, d) m(2, 79, d) +# define MSGPACK_PP_REPEAT_1_81(m, d) MSGPACK_PP_REPEAT_1_80(m, d) m(2, 80, d) +# define MSGPACK_PP_REPEAT_1_82(m, d) MSGPACK_PP_REPEAT_1_81(m, d) m(2, 81, d) +# define MSGPACK_PP_REPEAT_1_83(m, d) MSGPACK_PP_REPEAT_1_82(m, d) m(2, 82, d) +# define MSGPACK_PP_REPEAT_1_84(m, d) MSGPACK_PP_REPEAT_1_83(m, d) m(2, 83, d) +# define MSGPACK_PP_REPEAT_1_85(m, d) MSGPACK_PP_REPEAT_1_84(m, d) m(2, 84, d) +# define MSGPACK_PP_REPEAT_1_86(m, d) MSGPACK_PP_REPEAT_1_85(m, d) m(2, 85, d) +# define MSGPACK_PP_REPEAT_1_87(m, d) MSGPACK_PP_REPEAT_1_86(m, d) m(2, 86, d) +# define MSGPACK_PP_REPEAT_1_88(m, d) MSGPACK_PP_REPEAT_1_87(m, d) m(2, 87, d) +# define MSGPACK_PP_REPEAT_1_89(m, d) MSGPACK_PP_REPEAT_1_88(m, d) m(2, 88, d) +# define MSGPACK_PP_REPEAT_1_90(m, d) MSGPACK_PP_REPEAT_1_89(m, d) m(2, 89, d) +# define MSGPACK_PP_REPEAT_1_91(m, d) MSGPACK_PP_REPEAT_1_90(m, d) m(2, 90, d) +# define MSGPACK_PP_REPEAT_1_92(m, d) MSGPACK_PP_REPEAT_1_91(m, d) m(2, 91, d) +# define MSGPACK_PP_REPEAT_1_93(m, d) MSGPACK_PP_REPEAT_1_92(m, d) m(2, 92, d) +# define MSGPACK_PP_REPEAT_1_94(m, d) MSGPACK_PP_REPEAT_1_93(m, d) m(2, 93, d) +# define MSGPACK_PP_REPEAT_1_95(m, d) MSGPACK_PP_REPEAT_1_94(m, d) m(2, 94, d) +# define MSGPACK_PP_REPEAT_1_96(m, d) MSGPACK_PP_REPEAT_1_95(m, d) m(2, 95, d) +# define MSGPACK_PP_REPEAT_1_97(m, d) MSGPACK_PP_REPEAT_1_96(m, d) m(2, 96, d) +# define MSGPACK_PP_REPEAT_1_98(m, d) MSGPACK_PP_REPEAT_1_97(m, d) m(2, 97, d) +# define MSGPACK_PP_REPEAT_1_99(m, d) MSGPACK_PP_REPEAT_1_98(m, d) m(2, 98, d) +# define MSGPACK_PP_REPEAT_1_100(m, d) MSGPACK_PP_REPEAT_1_99(m, d) m(2, 99, d) +# define MSGPACK_PP_REPEAT_1_101(m, d) MSGPACK_PP_REPEAT_1_100(m, d) m(2, 100, d) +# define MSGPACK_PP_REPEAT_1_102(m, d) MSGPACK_PP_REPEAT_1_101(m, d) m(2, 101, d) +# define MSGPACK_PP_REPEAT_1_103(m, d) MSGPACK_PP_REPEAT_1_102(m, d) m(2, 102, d) +# define MSGPACK_PP_REPEAT_1_104(m, d) MSGPACK_PP_REPEAT_1_103(m, d) m(2, 103, d) +# define MSGPACK_PP_REPEAT_1_105(m, d) MSGPACK_PP_REPEAT_1_104(m, d) m(2, 104, d) +# define MSGPACK_PP_REPEAT_1_106(m, d) MSGPACK_PP_REPEAT_1_105(m, d) m(2, 105, d) +# define MSGPACK_PP_REPEAT_1_107(m, d) MSGPACK_PP_REPEAT_1_106(m, d) m(2, 106, d) +# define MSGPACK_PP_REPEAT_1_108(m, d) MSGPACK_PP_REPEAT_1_107(m, d) m(2, 107, d) +# define MSGPACK_PP_REPEAT_1_109(m, d) MSGPACK_PP_REPEAT_1_108(m, d) m(2, 108, d) +# define MSGPACK_PP_REPEAT_1_110(m, d) MSGPACK_PP_REPEAT_1_109(m, d) m(2, 109, d) +# define MSGPACK_PP_REPEAT_1_111(m, d) MSGPACK_PP_REPEAT_1_110(m, d) m(2, 110, d) +# define MSGPACK_PP_REPEAT_1_112(m, d) MSGPACK_PP_REPEAT_1_111(m, d) m(2, 111, d) +# define MSGPACK_PP_REPEAT_1_113(m, d) MSGPACK_PP_REPEAT_1_112(m, d) m(2, 112, d) +# define MSGPACK_PP_REPEAT_1_114(m, d) MSGPACK_PP_REPEAT_1_113(m, d) m(2, 113, d) +# define MSGPACK_PP_REPEAT_1_115(m, d) MSGPACK_PP_REPEAT_1_114(m, d) m(2, 114, d) +# define MSGPACK_PP_REPEAT_1_116(m, d) MSGPACK_PP_REPEAT_1_115(m, d) m(2, 115, d) +# define MSGPACK_PP_REPEAT_1_117(m, d) MSGPACK_PP_REPEAT_1_116(m, d) m(2, 116, d) +# define MSGPACK_PP_REPEAT_1_118(m, d) MSGPACK_PP_REPEAT_1_117(m, d) m(2, 117, d) +# define MSGPACK_PP_REPEAT_1_119(m, d) MSGPACK_PP_REPEAT_1_118(m, d) m(2, 118, d) +# define MSGPACK_PP_REPEAT_1_120(m, d) MSGPACK_PP_REPEAT_1_119(m, d) m(2, 119, d) +# define MSGPACK_PP_REPEAT_1_121(m, d) MSGPACK_PP_REPEAT_1_120(m, d) m(2, 120, d) +# define MSGPACK_PP_REPEAT_1_122(m, d) MSGPACK_PP_REPEAT_1_121(m, d) m(2, 121, d) +# define MSGPACK_PP_REPEAT_1_123(m, d) MSGPACK_PP_REPEAT_1_122(m, d) m(2, 122, d) +# define MSGPACK_PP_REPEAT_1_124(m, d) MSGPACK_PP_REPEAT_1_123(m, d) m(2, 123, d) +# define MSGPACK_PP_REPEAT_1_125(m, d) MSGPACK_PP_REPEAT_1_124(m, d) m(2, 124, d) +# define MSGPACK_PP_REPEAT_1_126(m, d) MSGPACK_PP_REPEAT_1_125(m, d) m(2, 125, d) +# define MSGPACK_PP_REPEAT_1_127(m, d) MSGPACK_PP_REPEAT_1_126(m, d) m(2, 126, d) +# define MSGPACK_PP_REPEAT_1_128(m, d) MSGPACK_PP_REPEAT_1_127(m, d) m(2, 127, d) +# define MSGPACK_PP_REPEAT_1_129(m, d) MSGPACK_PP_REPEAT_1_128(m, d) m(2, 128, d) +# define MSGPACK_PP_REPEAT_1_130(m, d) MSGPACK_PP_REPEAT_1_129(m, d) m(2, 129, d) +# define MSGPACK_PP_REPEAT_1_131(m, d) MSGPACK_PP_REPEAT_1_130(m, d) m(2, 130, d) +# define MSGPACK_PP_REPEAT_1_132(m, d) MSGPACK_PP_REPEAT_1_131(m, d) m(2, 131, d) +# define MSGPACK_PP_REPEAT_1_133(m, d) MSGPACK_PP_REPEAT_1_132(m, d) m(2, 132, d) +# define MSGPACK_PP_REPEAT_1_134(m, d) MSGPACK_PP_REPEAT_1_133(m, d) m(2, 133, d) +# define MSGPACK_PP_REPEAT_1_135(m, d) MSGPACK_PP_REPEAT_1_134(m, d) m(2, 134, d) +# define MSGPACK_PP_REPEAT_1_136(m, d) MSGPACK_PP_REPEAT_1_135(m, d) m(2, 135, d) +# define MSGPACK_PP_REPEAT_1_137(m, d) MSGPACK_PP_REPEAT_1_136(m, d) m(2, 136, d) +# define MSGPACK_PP_REPEAT_1_138(m, d) MSGPACK_PP_REPEAT_1_137(m, d) m(2, 137, d) +# define MSGPACK_PP_REPEAT_1_139(m, d) MSGPACK_PP_REPEAT_1_138(m, d) m(2, 138, d) +# define MSGPACK_PP_REPEAT_1_140(m, d) MSGPACK_PP_REPEAT_1_139(m, d) m(2, 139, d) +# define MSGPACK_PP_REPEAT_1_141(m, d) MSGPACK_PP_REPEAT_1_140(m, d) m(2, 140, d) +# define MSGPACK_PP_REPEAT_1_142(m, d) MSGPACK_PP_REPEAT_1_141(m, d) m(2, 141, d) +# define MSGPACK_PP_REPEAT_1_143(m, d) MSGPACK_PP_REPEAT_1_142(m, d) m(2, 142, d) +# define MSGPACK_PP_REPEAT_1_144(m, d) MSGPACK_PP_REPEAT_1_143(m, d) m(2, 143, d) +# define MSGPACK_PP_REPEAT_1_145(m, d) MSGPACK_PP_REPEAT_1_144(m, d) m(2, 144, d) +# define MSGPACK_PP_REPEAT_1_146(m, d) MSGPACK_PP_REPEAT_1_145(m, d) m(2, 145, d) +# define MSGPACK_PP_REPEAT_1_147(m, d) MSGPACK_PP_REPEAT_1_146(m, d) m(2, 146, d) +# define MSGPACK_PP_REPEAT_1_148(m, d) MSGPACK_PP_REPEAT_1_147(m, d) m(2, 147, d) +# define MSGPACK_PP_REPEAT_1_149(m, d) MSGPACK_PP_REPEAT_1_148(m, d) m(2, 148, d) +# define MSGPACK_PP_REPEAT_1_150(m, d) MSGPACK_PP_REPEAT_1_149(m, d) m(2, 149, d) +# define MSGPACK_PP_REPEAT_1_151(m, d) MSGPACK_PP_REPEAT_1_150(m, d) m(2, 150, d) +# define MSGPACK_PP_REPEAT_1_152(m, d) MSGPACK_PP_REPEAT_1_151(m, d) m(2, 151, d) +# define MSGPACK_PP_REPEAT_1_153(m, d) MSGPACK_PP_REPEAT_1_152(m, d) m(2, 152, d) +# define MSGPACK_PP_REPEAT_1_154(m, d) MSGPACK_PP_REPEAT_1_153(m, d) m(2, 153, d) +# define MSGPACK_PP_REPEAT_1_155(m, d) MSGPACK_PP_REPEAT_1_154(m, d) m(2, 154, d) +# define MSGPACK_PP_REPEAT_1_156(m, d) MSGPACK_PP_REPEAT_1_155(m, d) m(2, 155, d) +# define MSGPACK_PP_REPEAT_1_157(m, d) MSGPACK_PP_REPEAT_1_156(m, d) m(2, 156, d) +# define MSGPACK_PP_REPEAT_1_158(m, d) MSGPACK_PP_REPEAT_1_157(m, d) m(2, 157, d) +# define MSGPACK_PP_REPEAT_1_159(m, d) MSGPACK_PP_REPEAT_1_158(m, d) m(2, 158, d) +# define MSGPACK_PP_REPEAT_1_160(m, d) MSGPACK_PP_REPEAT_1_159(m, d) m(2, 159, d) +# define MSGPACK_PP_REPEAT_1_161(m, d) MSGPACK_PP_REPEAT_1_160(m, d) m(2, 160, d) +# define MSGPACK_PP_REPEAT_1_162(m, d) MSGPACK_PP_REPEAT_1_161(m, d) m(2, 161, d) +# define MSGPACK_PP_REPEAT_1_163(m, d) MSGPACK_PP_REPEAT_1_162(m, d) m(2, 162, d) +# define MSGPACK_PP_REPEAT_1_164(m, d) MSGPACK_PP_REPEAT_1_163(m, d) m(2, 163, d) +# define MSGPACK_PP_REPEAT_1_165(m, d) MSGPACK_PP_REPEAT_1_164(m, d) m(2, 164, d) +# define MSGPACK_PP_REPEAT_1_166(m, d) MSGPACK_PP_REPEAT_1_165(m, d) m(2, 165, d) +# define MSGPACK_PP_REPEAT_1_167(m, d) MSGPACK_PP_REPEAT_1_166(m, d) m(2, 166, d) +# define MSGPACK_PP_REPEAT_1_168(m, d) MSGPACK_PP_REPEAT_1_167(m, d) m(2, 167, d) +# define MSGPACK_PP_REPEAT_1_169(m, d) MSGPACK_PP_REPEAT_1_168(m, d) m(2, 168, d) +# define MSGPACK_PP_REPEAT_1_170(m, d) MSGPACK_PP_REPEAT_1_169(m, d) m(2, 169, d) +# define MSGPACK_PP_REPEAT_1_171(m, d) MSGPACK_PP_REPEAT_1_170(m, d) m(2, 170, d) +# define MSGPACK_PP_REPEAT_1_172(m, d) MSGPACK_PP_REPEAT_1_171(m, d) m(2, 171, d) +# define MSGPACK_PP_REPEAT_1_173(m, d) MSGPACK_PP_REPEAT_1_172(m, d) m(2, 172, d) +# define MSGPACK_PP_REPEAT_1_174(m, d) MSGPACK_PP_REPEAT_1_173(m, d) m(2, 173, d) +# define MSGPACK_PP_REPEAT_1_175(m, d) MSGPACK_PP_REPEAT_1_174(m, d) m(2, 174, d) +# define MSGPACK_PP_REPEAT_1_176(m, d) MSGPACK_PP_REPEAT_1_175(m, d) m(2, 175, d) +# define MSGPACK_PP_REPEAT_1_177(m, d) MSGPACK_PP_REPEAT_1_176(m, d) m(2, 176, d) +# define MSGPACK_PP_REPEAT_1_178(m, d) MSGPACK_PP_REPEAT_1_177(m, d) m(2, 177, d) +# define MSGPACK_PP_REPEAT_1_179(m, d) MSGPACK_PP_REPEAT_1_178(m, d) m(2, 178, d) +# define MSGPACK_PP_REPEAT_1_180(m, d) MSGPACK_PP_REPEAT_1_179(m, d) m(2, 179, d) +# define MSGPACK_PP_REPEAT_1_181(m, d) MSGPACK_PP_REPEAT_1_180(m, d) m(2, 180, d) +# define MSGPACK_PP_REPEAT_1_182(m, d) MSGPACK_PP_REPEAT_1_181(m, d) m(2, 181, d) +# define MSGPACK_PP_REPEAT_1_183(m, d) MSGPACK_PP_REPEAT_1_182(m, d) m(2, 182, d) +# define MSGPACK_PP_REPEAT_1_184(m, d) MSGPACK_PP_REPEAT_1_183(m, d) m(2, 183, d) +# define MSGPACK_PP_REPEAT_1_185(m, d) MSGPACK_PP_REPEAT_1_184(m, d) m(2, 184, d) +# define MSGPACK_PP_REPEAT_1_186(m, d) MSGPACK_PP_REPEAT_1_185(m, d) m(2, 185, d) +# define MSGPACK_PP_REPEAT_1_187(m, d) MSGPACK_PP_REPEAT_1_186(m, d) m(2, 186, d) +# define MSGPACK_PP_REPEAT_1_188(m, d) MSGPACK_PP_REPEAT_1_187(m, d) m(2, 187, d) +# define MSGPACK_PP_REPEAT_1_189(m, d) MSGPACK_PP_REPEAT_1_188(m, d) m(2, 188, d) +# define MSGPACK_PP_REPEAT_1_190(m, d) MSGPACK_PP_REPEAT_1_189(m, d) m(2, 189, d) +# define MSGPACK_PP_REPEAT_1_191(m, d) MSGPACK_PP_REPEAT_1_190(m, d) m(2, 190, d) +# define MSGPACK_PP_REPEAT_1_192(m, d) MSGPACK_PP_REPEAT_1_191(m, d) m(2, 191, d) +# define MSGPACK_PP_REPEAT_1_193(m, d) MSGPACK_PP_REPEAT_1_192(m, d) m(2, 192, d) +# define MSGPACK_PP_REPEAT_1_194(m, d) MSGPACK_PP_REPEAT_1_193(m, d) m(2, 193, d) +# define MSGPACK_PP_REPEAT_1_195(m, d) MSGPACK_PP_REPEAT_1_194(m, d) m(2, 194, d) +# define MSGPACK_PP_REPEAT_1_196(m, d) MSGPACK_PP_REPEAT_1_195(m, d) m(2, 195, d) +# define MSGPACK_PP_REPEAT_1_197(m, d) MSGPACK_PP_REPEAT_1_196(m, d) m(2, 196, d) +# define MSGPACK_PP_REPEAT_1_198(m, d) MSGPACK_PP_REPEAT_1_197(m, d) m(2, 197, d) +# define MSGPACK_PP_REPEAT_1_199(m, d) MSGPACK_PP_REPEAT_1_198(m, d) m(2, 198, d) +# define MSGPACK_PP_REPEAT_1_200(m, d) MSGPACK_PP_REPEAT_1_199(m, d) m(2, 199, d) +# define MSGPACK_PP_REPEAT_1_201(m, d) MSGPACK_PP_REPEAT_1_200(m, d) m(2, 200, d) +# define MSGPACK_PP_REPEAT_1_202(m, d) MSGPACK_PP_REPEAT_1_201(m, d) m(2, 201, d) +# define MSGPACK_PP_REPEAT_1_203(m, d) MSGPACK_PP_REPEAT_1_202(m, d) m(2, 202, d) +# define MSGPACK_PP_REPEAT_1_204(m, d) MSGPACK_PP_REPEAT_1_203(m, d) m(2, 203, d) +# define MSGPACK_PP_REPEAT_1_205(m, d) MSGPACK_PP_REPEAT_1_204(m, d) m(2, 204, d) +# define MSGPACK_PP_REPEAT_1_206(m, d) MSGPACK_PP_REPEAT_1_205(m, d) m(2, 205, d) +# define MSGPACK_PP_REPEAT_1_207(m, d) MSGPACK_PP_REPEAT_1_206(m, d) m(2, 206, d) +# define MSGPACK_PP_REPEAT_1_208(m, d) MSGPACK_PP_REPEAT_1_207(m, d) m(2, 207, d) +# define MSGPACK_PP_REPEAT_1_209(m, d) MSGPACK_PP_REPEAT_1_208(m, d) m(2, 208, d) +# define MSGPACK_PP_REPEAT_1_210(m, d) MSGPACK_PP_REPEAT_1_209(m, d) m(2, 209, d) +# define MSGPACK_PP_REPEAT_1_211(m, d) MSGPACK_PP_REPEAT_1_210(m, d) m(2, 210, d) +# define MSGPACK_PP_REPEAT_1_212(m, d) MSGPACK_PP_REPEAT_1_211(m, d) m(2, 211, d) +# define MSGPACK_PP_REPEAT_1_213(m, d) MSGPACK_PP_REPEAT_1_212(m, d) m(2, 212, d) +# define MSGPACK_PP_REPEAT_1_214(m, d) MSGPACK_PP_REPEAT_1_213(m, d) m(2, 213, d) +# define MSGPACK_PP_REPEAT_1_215(m, d) MSGPACK_PP_REPEAT_1_214(m, d) m(2, 214, d) +# define MSGPACK_PP_REPEAT_1_216(m, d) MSGPACK_PP_REPEAT_1_215(m, d) m(2, 215, d) +# define MSGPACK_PP_REPEAT_1_217(m, d) MSGPACK_PP_REPEAT_1_216(m, d) m(2, 216, d) +# define MSGPACK_PP_REPEAT_1_218(m, d) MSGPACK_PP_REPEAT_1_217(m, d) m(2, 217, d) +# define MSGPACK_PP_REPEAT_1_219(m, d) MSGPACK_PP_REPEAT_1_218(m, d) m(2, 218, d) +# define MSGPACK_PP_REPEAT_1_220(m, d) MSGPACK_PP_REPEAT_1_219(m, d) m(2, 219, d) +# define MSGPACK_PP_REPEAT_1_221(m, d) MSGPACK_PP_REPEAT_1_220(m, d) m(2, 220, d) +# define MSGPACK_PP_REPEAT_1_222(m, d) MSGPACK_PP_REPEAT_1_221(m, d) m(2, 221, d) +# define MSGPACK_PP_REPEAT_1_223(m, d) MSGPACK_PP_REPEAT_1_222(m, d) m(2, 222, d) +# define MSGPACK_PP_REPEAT_1_224(m, d) MSGPACK_PP_REPEAT_1_223(m, d) m(2, 223, d) +# define MSGPACK_PP_REPEAT_1_225(m, d) MSGPACK_PP_REPEAT_1_224(m, d) m(2, 224, d) +# define MSGPACK_PP_REPEAT_1_226(m, d) MSGPACK_PP_REPEAT_1_225(m, d) m(2, 225, d) +# define MSGPACK_PP_REPEAT_1_227(m, d) MSGPACK_PP_REPEAT_1_226(m, d) m(2, 226, d) +# define MSGPACK_PP_REPEAT_1_228(m, d) MSGPACK_PP_REPEAT_1_227(m, d) m(2, 227, d) +# define MSGPACK_PP_REPEAT_1_229(m, d) MSGPACK_PP_REPEAT_1_228(m, d) m(2, 228, d) +# define MSGPACK_PP_REPEAT_1_230(m, d) MSGPACK_PP_REPEAT_1_229(m, d) m(2, 229, d) +# define MSGPACK_PP_REPEAT_1_231(m, d) MSGPACK_PP_REPEAT_1_230(m, d) m(2, 230, d) +# define MSGPACK_PP_REPEAT_1_232(m, d) MSGPACK_PP_REPEAT_1_231(m, d) m(2, 231, d) +# define MSGPACK_PP_REPEAT_1_233(m, d) MSGPACK_PP_REPEAT_1_232(m, d) m(2, 232, d) +# define MSGPACK_PP_REPEAT_1_234(m, d) MSGPACK_PP_REPEAT_1_233(m, d) m(2, 233, d) +# define MSGPACK_PP_REPEAT_1_235(m, d) MSGPACK_PP_REPEAT_1_234(m, d) m(2, 234, d) +# define MSGPACK_PP_REPEAT_1_236(m, d) MSGPACK_PP_REPEAT_1_235(m, d) m(2, 235, d) +# define MSGPACK_PP_REPEAT_1_237(m, d) MSGPACK_PP_REPEAT_1_236(m, d) m(2, 236, d) +# define MSGPACK_PP_REPEAT_1_238(m, d) MSGPACK_PP_REPEAT_1_237(m, d) m(2, 237, d) +# define MSGPACK_PP_REPEAT_1_239(m, d) MSGPACK_PP_REPEAT_1_238(m, d) m(2, 238, d) +# define MSGPACK_PP_REPEAT_1_240(m, d) MSGPACK_PP_REPEAT_1_239(m, d) m(2, 239, d) +# define MSGPACK_PP_REPEAT_1_241(m, d) MSGPACK_PP_REPEAT_1_240(m, d) m(2, 240, d) +# define MSGPACK_PP_REPEAT_1_242(m, d) MSGPACK_PP_REPEAT_1_241(m, d) m(2, 241, d) +# define MSGPACK_PP_REPEAT_1_243(m, d) MSGPACK_PP_REPEAT_1_242(m, d) m(2, 242, d) +# define MSGPACK_PP_REPEAT_1_244(m, d) MSGPACK_PP_REPEAT_1_243(m, d) m(2, 243, d) +# define MSGPACK_PP_REPEAT_1_245(m, d) MSGPACK_PP_REPEAT_1_244(m, d) m(2, 244, d) +# define MSGPACK_PP_REPEAT_1_246(m, d) MSGPACK_PP_REPEAT_1_245(m, d) m(2, 245, d) +# define MSGPACK_PP_REPEAT_1_247(m, d) MSGPACK_PP_REPEAT_1_246(m, d) m(2, 246, d) +# define MSGPACK_PP_REPEAT_1_248(m, d) MSGPACK_PP_REPEAT_1_247(m, d) m(2, 247, d) +# define MSGPACK_PP_REPEAT_1_249(m, d) MSGPACK_PP_REPEAT_1_248(m, d) m(2, 248, d) +# define MSGPACK_PP_REPEAT_1_250(m, d) MSGPACK_PP_REPEAT_1_249(m, d) m(2, 249, d) +# define MSGPACK_PP_REPEAT_1_251(m, d) MSGPACK_PP_REPEAT_1_250(m, d) m(2, 250, d) +# define MSGPACK_PP_REPEAT_1_252(m, d) MSGPACK_PP_REPEAT_1_251(m, d) m(2, 251, d) +# define MSGPACK_PP_REPEAT_1_253(m, d) MSGPACK_PP_REPEAT_1_252(m, d) m(2, 252, d) +# define MSGPACK_PP_REPEAT_1_254(m, d) MSGPACK_PP_REPEAT_1_253(m, d) m(2, 253, d) +# define MSGPACK_PP_REPEAT_1_255(m, d) MSGPACK_PP_REPEAT_1_254(m, d) m(2, 254, d) +# define MSGPACK_PP_REPEAT_1_256(m, d) MSGPACK_PP_REPEAT_1_255(m, d) m(2, 255, d) +# +# define MSGPACK_PP_REPEAT_2_0(m, d) +# define MSGPACK_PP_REPEAT_2_1(m, d) m(3, 0, d) +# define MSGPACK_PP_REPEAT_2_2(m, d) MSGPACK_PP_REPEAT_2_1(m, d) m(3, 1, d) +# define MSGPACK_PP_REPEAT_2_3(m, d) MSGPACK_PP_REPEAT_2_2(m, d) m(3, 2, d) +# define MSGPACK_PP_REPEAT_2_4(m, d) MSGPACK_PP_REPEAT_2_3(m, d) m(3, 3, d) +# define MSGPACK_PP_REPEAT_2_5(m, d) MSGPACK_PP_REPEAT_2_4(m, d) m(3, 4, d) +# define MSGPACK_PP_REPEAT_2_6(m, d) MSGPACK_PP_REPEAT_2_5(m, d) m(3, 5, d) +# define MSGPACK_PP_REPEAT_2_7(m, d) MSGPACK_PP_REPEAT_2_6(m, d) m(3, 6, d) +# define MSGPACK_PP_REPEAT_2_8(m, d) MSGPACK_PP_REPEAT_2_7(m, d) m(3, 7, d) +# define MSGPACK_PP_REPEAT_2_9(m, d) MSGPACK_PP_REPEAT_2_8(m, d) m(3, 8, d) +# define MSGPACK_PP_REPEAT_2_10(m, d) MSGPACK_PP_REPEAT_2_9(m, d) m(3, 9, d) +# define MSGPACK_PP_REPEAT_2_11(m, d) MSGPACK_PP_REPEAT_2_10(m, d) m(3, 10, d) +# define MSGPACK_PP_REPEAT_2_12(m, d) MSGPACK_PP_REPEAT_2_11(m, d) m(3, 11, d) +# define MSGPACK_PP_REPEAT_2_13(m, d) MSGPACK_PP_REPEAT_2_12(m, d) m(3, 12, d) +# define MSGPACK_PP_REPEAT_2_14(m, d) MSGPACK_PP_REPEAT_2_13(m, d) m(3, 13, d) +# define MSGPACK_PP_REPEAT_2_15(m, d) MSGPACK_PP_REPEAT_2_14(m, d) m(3, 14, d) +# define MSGPACK_PP_REPEAT_2_16(m, d) MSGPACK_PP_REPEAT_2_15(m, d) m(3, 15, d) +# define MSGPACK_PP_REPEAT_2_17(m, d) MSGPACK_PP_REPEAT_2_16(m, d) m(3, 16, d) +# define MSGPACK_PP_REPEAT_2_18(m, d) MSGPACK_PP_REPEAT_2_17(m, d) m(3, 17, d) +# define MSGPACK_PP_REPEAT_2_19(m, d) MSGPACK_PP_REPEAT_2_18(m, d) m(3, 18, d) +# define MSGPACK_PP_REPEAT_2_20(m, d) MSGPACK_PP_REPEAT_2_19(m, d) m(3, 19, d) +# define MSGPACK_PP_REPEAT_2_21(m, d) MSGPACK_PP_REPEAT_2_20(m, d) m(3, 20, d) +# define MSGPACK_PP_REPEAT_2_22(m, d) MSGPACK_PP_REPEAT_2_21(m, d) m(3, 21, d) +# define MSGPACK_PP_REPEAT_2_23(m, d) MSGPACK_PP_REPEAT_2_22(m, d) m(3, 22, d) +# define MSGPACK_PP_REPEAT_2_24(m, d) MSGPACK_PP_REPEAT_2_23(m, d) m(3, 23, d) +# define MSGPACK_PP_REPEAT_2_25(m, d) MSGPACK_PP_REPEAT_2_24(m, d) m(3, 24, d) +# define MSGPACK_PP_REPEAT_2_26(m, d) MSGPACK_PP_REPEAT_2_25(m, d) m(3, 25, d) +# define MSGPACK_PP_REPEAT_2_27(m, d) MSGPACK_PP_REPEAT_2_26(m, d) m(3, 26, d) +# define MSGPACK_PP_REPEAT_2_28(m, d) MSGPACK_PP_REPEAT_2_27(m, d) m(3, 27, d) +# define MSGPACK_PP_REPEAT_2_29(m, d) MSGPACK_PP_REPEAT_2_28(m, d) m(3, 28, d) +# define MSGPACK_PP_REPEAT_2_30(m, d) MSGPACK_PP_REPEAT_2_29(m, d) m(3, 29, d) +# define MSGPACK_PP_REPEAT_2_31(m, d) MSGPACK_PP_REPEAT_2_30(m, d) m(3, 30, d) +# define MSGPACK_PP_REPEAT_2_32(m, d) MSGPACK_PP_REPEAT_2_31(m, d) m(3, 31, d) +# define MSGPACK_PP_REPEAT_2_33(m, d) MSGPACK_PP_REPEAT_2_32(m, d) m(3, 32, d) +# define MSGPACK_PP_REPEAT_2_34(m, d) MSGPACK_PP_REPEAT_2_33(m, d) m(3, 33, d) +# define MSGPACK_PP_REPEAT_2_35(m, d) MSGPACK_PP_REPEAT_2_34(m, d) m(3, 34, d) +# define MSGPACK_PP_REPEAT_2_36(m, d) MSGPACK_PP_REPEAT_2_35(m, d) m(3, 35, d) +# define MSGPACK_PP_REPEAT_2_37(m, d) MSGPACK_PP_REPEAT_2_36(m, d) m(3, 36, d) +# define MSGPACK_PP_REPEAT_2_38(m, d) MSGPACK_PP_REPEAT_2_37(m, d) m(3, 37, d) +# define MSGPACK_PP_REPEAT_2_39(m, d) MSGPACK_PP_REPEAT_2_38(m, d) m(3, 38, d) +# define MSGPACK_PP_REPEAT_2_40(m, d) MSGPACK_PP_REPEAT_2_39(m, d) m(3, 39, d) +# define MSGPACK_PP_REPEAT_2_41(m, d) MSGPACK_PP_REPEAT_2_40(m, d) m(3, 40, d) +# define MSGPACK_PP_REPEAT_2_42(m, d) MSGPACK_PP_REPEAT_2_41(m, d) m(3, 41, d) +# define MSGPACK_PP_REPEAT_2_43(m, d) MSGPACK_PP_REPEAT_2_42(m, d) m(3, 42, d) +# define MSGPACK_PP_REPEAT_2_44(m, d) MSGPACK_PP_REPEAT_2_43(m, d) m(3, 43, d) +# define MSGPACK_PP_REPEAT_2_45(m, d) MSGPACK_PP_REPEAT_2_44(m, d) m(3, 44, d) +# define MSGPACK_PP_REPEAT_2_46(m, d) MSGPACK_PP_REPEAT_2_45(m, d) m(3, 45, d) +# define MSGPACK_PP_REPEAT_2_47(m, d) MSGPACK_PP_REPEAT_2_46(m, d) m(3, 46, d) +# define MSGPACK_PP_REPEAT_2_48(m, d) MSGPACK_PP_REPEAT_2_47(m, d) m(3, 47, d) +# define MSGPACK_PP_REPEAT_2_49(m, d) MSGPACK_PP_REPEAT_2_48(m, d) m(3, 48, d) +# define MSGPACK_PP_REPEAT_2_50(m, d) MSGPACK_PP_REPEAT_2_49(m, d) m(3, 49, d) +# define MSGPACK_PP_REPEAT_2_51(m, d) MSGPACK_PP_REPEAT_2_50(m, d) m(3, 50, d) +# define MSGPACK_PP_REPEAT_2_52(m, d) MSGPACK_PP_REPEAT_2_51(m, d) m(3, 51, d) +# define MSGPACK_PP_REPEAT_2_53(m, d) MSGPACK_PP_REPEAT_2_52(m, d) m(3, 52, d) +# define MSGPACK_PP_REPEAT_2_54(m, d) MSGPACK_PP_REPEAT_2_53(m, d) m(3, 53, d) +# define MSGPACK_PP_REPEAT_2_55(m, d) MSGPACK_PP_REPEAT_2_54(m, d) m(3, 54, d) +# define MSGPACK_PP_REPEAT_2_56(m, d) MSGPACK_PP_REPEAT_2_55(m, d) m(3, 55, d) +# define MSGPACK_PP_REPEAT_2_57(m, d) MSGPACK_PP_REPEAT_2_56(m, d) m(3, 56, d) +# define MSGPACK_PP_REPEAT_2_58(m, d) MSGPACK_PP_REPEAT_2_57(m, d) m(3, 57, d) +# define MSGPACK_PP_REPEAT_2_59(m, d) MSGPACK_PP_REPEAT_2_58(m, d) m(3, 58, d) +# define MSGPACK_PP_REPEAT_2_60(m, d) MSGPACK_PP_REPEAT_2_59(m, d) m(3, 59, d) +# define MSGPACK_PP_REPEAT_2_61(m, d) MSGPACK_PP_REPEAT_2_60(m, d) m(3, 60, d) +# define MSGPACK_PP_REPEAT_2_62(m, d) MSGPACK_PP_REPEAT_2_61(m, d) m(3, 61, d) +# define MSGPACK_PP_REPEAT_2_63(m, d) MSGPACK_PP_REPEAT_2_62(m, d) m(3, 62, d) +# define MSGPACK_PP_REPEAT_2_64(m, d) MSGPACK_PP_REPEAT_2_63(m, d) m(3, 63, d) +# define MSGPACK_PP_REPEAT_2_65(m, d) MSGPACK_PP_REPEAT_2_64(m, d) m(3, 64, d) +# define MSGPACK_PP_REPEAT_2_66(m, d) MSGPACK_PP_REPEAT_2_65(m, d) m(3, 65, d) +# define MSGPACK_PP_REPEAT_2_67(m, d) MSGPACK_PP_REPEAT_2_66(m, d) m(3, 66, d) +# define MSGPACK_PP_REPEAT_2_68(m, d) MSGPACK_PP_REPEAT_2_67(m, d) m(3, 67, d) +# define MSGPACK_PP_REPEAT_2_69(m, d) MSGPACK_PP_REPEAT_2_68(m, d) m(3, 68, d) +# define MSGPACK_PP_REPEAT_2_70(m, d) MSGPACK_PP_REPEAT_2_69(m, d) m(3, 69, d) +# define MSGPACK_PP_REPEAT_2_71(m, d) MSGPACK_PP_REPEAT_2_70(m, d) m(3, 70, d) +# define MSGPACK_PP_REPEAT_2_72(m, d) MSGPACK_PP_REPEAT_2_71(m, d) m(3, 71, d) +# define MSGPACK_PP_REPEAT_2_73(m, d) MSGPACK_PP_REPEAT_2_72(m, d) m(3, 72, d) +# define MSGPACK_PP_REPEAT_2_74(m, d) MSGPACK_PP_REPEAT_2_73(m, d) m(3, 73, d) +# define MSGPACK_PP_REPEAT_2_75(m, d) MSGPACK_PP_REPEAT_2_74(m, d) m(3, 74, d) +# define MSGPACK_PP_REPEAT_2_76(m, d) MSGPACK_PP_REPEAT_2_75(m, d) m(3, 75, d) +# define MSGPACK_PP_REPEAT_2_77(m, d) MSGPACK_PP_REPEAT_2_76(m, d) m(3, 76, d) +# define MSGPACK_PP_REPEAT_2_78(m, d) MSGPACK_PP_REPEAT_2_77(m, d) m(3, 77, d) +# define MSGPACK_PP_REPEAT_2_79(m, d) MSGPACK_PP_REPEAT_2_78(m, d) m(3, 78, d) +# define MSGPACK_PP_REPEAT_2_80(m, d) MSGPACK_PP_REPEAT_2_79(m, d) m(3, 79, d) +# define MSGPACK_PP_REPEAT_2_81(m, d) MSGPACK_PP_REPEAT_2_80(m, d) m(3, 80, d) +# define MSGPACK_PP_REPEAT_2_82(m, d) MSGPACK_PP_REPEAT_2_81(m, d) m(3, 81, d) +# define MSGPACK_PP_REPEAT_2_83(m, d) MSGPACK_PP_REPEAT_2_82(m, d) m(3, 82, d) +# define MSGPACK_PP_REPEAT_2_84(m, d) MSGPACK_PP_REPEAT_2_83(m, d) m(3, 83, d) +# define MSGPACK_PP_REPEAT_2_85(m, d) MSGPACK_PP_REPEAT_2_84(m, d) m(3, 84, d) +# define MSGPACK_PP_REPEAT_2_86(m, d) MSGPACK_PP_REPEAT_2_85(m, d) m(3, 85, d) +# define MSGPACK_PP_REPEAT_2_87(m, d) MSGPACK_PP_REPEAT_2_86(m, d) m(3, 86, d) +# define MSGPACK_PP_REPEAT_2_88(m, d) MSGPACK_PP_REPEAT_2_87(m, d) m(3, 87, d) +# define MSGPACK_PP_REPEAT_2_89(m, d) MSGPACK_PP_REPEAT_2_88(m, d) m(3, 88, d) +# define MSGPACK_PP_REPEAT_2_90(m, d) MSGPACK_PP_REPEAT_2_89(m, d) m(3, 89, d) +# define MSGPACK_PP_REPEAT_2_91(m, d) MSGPACK_PP_REPEAT_2_90(m, d) m(3, 90, d) +# define MSGPACK_PP_REPEAT_2_92(m, d) MSGPACK_PP_REPEAT_2_91(m, d) m(3, 91, d) +# define MSGPACK_PP_REPEAT_2_93(m, d) MSGPACK_PP_REPEAT_2_92(m, d) m(3, 92, d) +# define MSGPACK_PP_REPEAT_2_94(m, d) MSGPACK_PP_REPEAT_2_93(m, d) m(3, 93, d) +# define MSGPACK_PP_REPEAT_2_95(m, d) MSGPACK_PP_REPEAT_2_94(m, d) m(3, 94, d) +# define MSGPACK_PP_REPEAT_2_96(m, d) MSGPACK_PP_REPEAT_2_95(m, d) m(3, 95, d) +# define MSGPACK_PP_REPEAT_2_97(m, d) MSGPACK_PP_REPEAT_2_96(m, d) m(3, 96, d) +# define MSGPACK_PP_REPEAT_2_98(m, d) MSGPACK_PP_REPEAT_2_97(m, d) m(3, 97, d) +# define MSGPACK_PP_REPEAT_2_99(m, d) MSGPACK_PP_REPEAT_2_98(m, d) m(3, 98, d) +# define MSGPACK_PP_REPEAT_2_100(m, d) MSGPACK_PP_REPEAT_2_99(m, d) m(3, 99, d) +# define MSGPACK_PP_REPEAT_2_101(m, d) MSGPACK_PP_REPEAT_2_100(m, d) m(3, 100, d) +# define MSGPACK_PP_REPEAT_2_102(m, d) MSGPACK_PP_REPEAT_2_101(m, d) m(3, 101, d) +# define MSGPACK_PP_REPEAT_2_103(m, d) MSGPACK_PP_REPEAT_2_102(m, d) m(3, 102, d) +# define MSGPACK_PP_REPEAT_2_104(m, d) MSGPACK_PP_REPEAT_2_103(m, d) m(3, 103, d) +# define MSGPACK_PP_REPEAT_2_105(m, d) MSGPACK_PP_REPEAT_2_104(m, d) m(3, 104, d) +# define MSGPACK_PP_REPEAT_2_106(m, d) MSGPACK_PP_REPEAT_2_105(m, d) m(3, 105, d) +# define MSGPACK_PP_REPEAT_2_107(m, d) MSGPACK_PP_REPEAT_2_106(m, d) m(3, 106, d) +# define MSGPACK_PP_REPEAT_2_108(m, d) MSGPACK_PP_REPEAT_2_107(m, d) m(3, 107, d) +# define MSGPACK_PP_REPEAT_2_109(m, d) MSGPACK_PP_REPEAT_2_108(m, d) m(3, 108, d) +# define MSGPACK_PP_REPEAT_2_110(m, d) MSGPACK_PP_REPEAT_2_109(m, d) m(3, 109, d) +# define MSGPACK_PP_REPEAT_2_111(m, d) MSGPACK_PP_REPEAT_2_110(m, d) m(3, 110, d) +# define MSGPACK_PP_REPEAT_2_112(m, d) MSGPACK_PP_REPEAT_2_111(m, d) m(3, 111, d) +# define MSGPACK_PP_REPEAT_2_113(m, d) MSGPACK_PP_REPEAT_2_112(m, d) m(3, 112, d) +# define MSGPACK_PP_REPEAT_2_114(m, d) MSGPACK_PP_REPEAT_2_113(m, d) m(3, 113, d) +# define MSGPACK_PP_REPEAT_2_115(m, d) MSGPACK_PP_REPEAT_2_114(m, d) m(3, 114, d) +# define MSGPACK_PP_REPEAT_2_116(m, d) MSGPACK_PP_REPEAT_2_115(m, d) m(3, 115, d) +# define MSGPACK_PP_REPEAT_2_117(m, d) MSGPACK_PP_REPEAT_2_116(m, d) m(3, 116, d) +# define MSGPACK_PP_REPEAT_2_118(m, d) MSGPACK_PP_REPEAT_2_117(m, d) m(3, 117, d) +# define MSGPACK_PP_REPEAT_2_119(m, d) MSGPACK_PP_REPEAT_2_118(m, d) m(3, 118, d) +# define MSGPACK_PP_REPEAT_2_120(m, d) MSGPACK_PP_REPEAT_2_119(m, d) m(3, 119, d) +# define MSGPACK_PP_REPEAT_2_121(m, d) MSGPACK_PP_REPEAT_2_120(m, d) m(3, 120, d) +# define MSGPACK_PP_REPEAT_2_122(m, d) MSGPACK_PP_REPEAT_2_121(m, d) m(3, 121, d) +# define MSGPACK_PP_REPEAT_2_123(m, d) MSGPACK_PP_REPEAT_2_122(m, d) m(3, 122, d) +# define MSGPACK_PP_REPEAT_2_124(m, d) MSGPACK_PP_REPEAT_2_123(m, d) m(3, 123, d) +# define MSGPACK_PP_REPEAT_2_125(m, d) MSGPACK_PP_REPEAT_2_124(m, d) m(3, 124, d) +# define MSGPACK_PP_REPEAT_2_126(m, d) MSGPACK_PP_REPEAT_2_125(m, d) m(3, 125, d) +# define MSGPACK_PP_REPEAT_2_127(m, d) MSGPACK_PP_REPEAT_2_126(m, d) m(3, 126, d) +# define MSGPACK_PP_REPEAT_2_128(m, d) MSGPACK_PP_REPEAT_2_127(m, d) m(3, 127, d) +# define MSGPACK_PP_REPEAT_2_129(m, d) MSGPACK_PP_REPEAT_2_128(m, d) m(3, 128, d) +# define MSGPACK_PP_REPEAT_2_130(m, d) MSGPACK_PP_REPEAT_2_129(m, d) m(3, 129, d) +# define MSGPACK_PP_REPEAT_2_131(m, d) MSGPACK_PP_REPEAT_2_130(m, d) m(3, 130, d) +# define MSGPACK_PP_REPEAT_2_132(m, d) MSGPACK_PP_REPEAT_2_131(m, d) m(3, 131, d) +# define MSGPACK_PP_REPEAT_2_133(m, d) MSGPACK_PP_REPEAT_2_132(m, d) m(3, 132, d) +# define MSGPACK_PP_REPEAT_2_134(m, d) MSGPACK_PP_REPEAT_2_133(m, d) m(3, 133, d) +# define MSGPACK_PP_REPEAT_2_135(m, d) MSGPACK_PP_REPEAT_2_134(m, d) m(3, 134, d) +# define MSGPACK_PP_REPEAT_2_136(m, d) MSGPACK_PP_REPEAT_2_135(m, d) m(3, 135, d) +# define MSGPACK_PP_REPEAT_2_137(m, d) MSGPACK_PP_REPEAT_2_136(m, d) m(3, 136, d) +# define MSGPACK_PP_REPEAT_2_138(m, d) MSGPACK_PP_REPEAT_2_137(m, d) m(3, 137, d) +# define MSGPACK_PP_REPEAT_2_139(m, d) MSGPACK_PP_REPEAT_2_138(m, d) m(3, 138, d) +# define MSGPACK_PP_REPEAT_2_140(m, d) MSGPACK_PP_REPEAT_2_139(m, d) m(3, 139, d) +# define MSGPACK_PP_REPEAT_2_141(m, d) MSGPACK_PP_REPEAT_2_140(m, d) m(3, 140, d) +# define MSGPACK_PP_REPEAT_2_142(m, d) MSGPACK_PP_REPEAT_2_141(m, d) m(3, 141, d) +# define MSGPACK_PP_REPEAT_2_143(m, d) MSGPACK_PP_REPEAT_2_142(m, d) m(3, 142, d) +# define MSGPACK_PP_REPEAT_2_144(m, d) MSGPACK_PP_REPEAT_2_143(m, d) m(3, 143, d) +# define MSGPACK_PP_REPEAT_2_145(m, d) MSGPACK_PP_REPEAT_2_144(m, d) m(3, 144, d) +# define MSGPACK_PP_REPEAT_2_146(m, d) MSGPACK_PP_REPEAT_2_145(m, d) m(3, 145, d) +# define MSGPACK_PP_REPEAT_2_147(m, d) MSGPACK_PP_REPEAT_2_146(m, d) m(3, 146, d) +# define MSGPACK_PP_REPEAT_2_148(m, d) MSGPACK_PP_REPEAT_2_147(m, d) m(3, 147, d) +# define MSGPACK_PP_REPEAT_2_149(m, d) MSGPACK_PP_REPEAT_2_148(m, d) m(3, 148, d) +# define MSGPACK_PP_REPEAT_2_150(m, d) MSGPACK_PP_REPEAT_2_149(m, d) m(3, 149, d) +# define MSGPACK_PP_REPEAT_2_151(m, d) MSGPACK_PP_REPEAT_2_150(m, d) m(3, 150, d) +# define MSGPACK_PP_REPEAT_2_152(m, d) MSGPACK_PP_REPEAT_2_151(m, d) m(3, 151, d) +# define MSGPACK_PP_REPEAT_2_153(m, d) MSGPACK_PP_REPEAT_2_152(m, d) m(3, 152, d) +# define MSGPACK_PP_REPEAT_2_154(m, d) MSGPACK_PP_REPEAT_2_153(m, d) m(3, 153, d) +# define MSGPACK_PP_REPEAT_2_155(m, d) MSGPACK_PP_REPEAT_2_154(m, d) m(3, 154, d) +# define MSGPACK_PP_REPEAT_2_156(m, d) MSGPACK_PP_REPEAT_2_155(m, d) m(3, 155, d) +# define MSGPACK_PP_REPEAT_2_157(m, d) MSGPACK_PP_REPEAT_2_156(m, d) m(3, 156, d) +# define MSGPACK_PP_REPEAT_2_158(m, d) MSGPACK_PP_REPEAT_2_157(m, d) m(3, 157, d) +# define MSGPACK_PP_REPEAT_2_159(m, d) MSGPACK_PP_REPEAT_2_158(m, d) m(3, 158, d) +# define MSGPACK_PP_REPEAT_2_160(m, d) MSGPACK_PP_REPEAT_2_159(m, d) m(3, 159, d) +# define MSGPACK_PP_REPEAT_2_161(m, d) MSGPACK_PP_REPEAT_2_160(m, d) m(3, 160, d) +# define MSGPACK_PP_REPEAT_2_162(m, d) MSGPACK_PP_REPEAT_2_161(m, d) m(3, 161, d) +# define MSGPACK_PP_REPEAT_2_163(m, d) MSGPACK_PP_REPEAT_2_162(m, d) m(3, 162, d) +# define MSGPACK_PP_REPEAT_2_164(m, d) MSGPACK_PP_REPEAT_2_163(m, d) m(3, 163, d) +# define MSGPACK_PP_REPEAT_2_165(m, d) MSGPACK_PP_REPEAT_2_164(m, d) m(3, 164, d) +# define MSGPACK_PP_REPEAT_2_166(m, d) MSGPACK_PP_REPEAT_2_165(m, d) m(3, 165, d) +# define MSGPACK_PP_REPEAT_2_167(m, d) MSGPACK_PP_REPEAT_2_166(m, d) m(3, 166, d) +# define MSGPACK_PP_REPEAT_2_168(m, d) MSGPACK_PP_REPEAT_2_167(m, d) m(3, 167, d) +# define MSGPACK_PP_REPEAT_2_169(m, d) MSGPACK_PP_REPEAT_2_168(m, d) m(3, 168, d) +# define MSGPACK_PP_REPEAT_2_170(m, d) MSGPACK_PP_REPEAT_2_169(m, d) m(3, 169, d) +# define MSGPACK_PP_REPEAT_2_171(m, d) MSGPACK_PP_REPEAT_2_170(m, d) m(3, 170, d) +# define MSGPACK_PP_REPEAT_2_172(m, d) MSGPACK_PP_REPEAT_2_171(m, d) m(3, 171, d) +# define MSGPACK_PP_REPEAT_2_173(m, d) MSGPACK_PP_REPEAT_2_172(m, d) m(3, 172, d) +# define MSGPACK_PP_REPEAT_2_174(m, d) MSGPACK_PP_REPEAT_2_173(m, d) m(3, 173, d) +# define MSGPACK_PP_REPEAT_2_175(m, d) MSGPACK_PP_REPEAT_2_174(m, d) m(3, 174, d) +# define MSGPACK_PP_REPEAT_2_176(m, d) MSGPACK_PP_REPEAT_2_175(m, d) m(3, 175, d) +# define MSGPACK_PP_REPEAT_2_177(m, d) MSGPACK_PP_REPEAT_2_176(m, d) m(3, 176, d) +# define MSGPACK_PP_REPEAT_2_178(m, d) MSGPACK_PP_REPEAT_2_177(m, d) m(3, 177, d) +# define MSGPACK_PP_REPEAT_2_179(m, d) MSGPACK_PP_REPEAT_2_178(m, d) m(3, 178, d) +# define MSGPACK_PP_REPEAT_2_180(m, d) MSGPACK_PP_REPEAT_2_179(m, d) m(3, 179, d) +# define MSGPACK_PP_REPEAT_2_181(m, d) MSGPACK_PP_REPEAT_2_180(m, d) m(3, 180, d) +# define MSGPACK_PP_REPEAT_2_182(m, d) MSGPACK_PP_REPEAT_2_181(m, d) m(3, 181, d) +# define MSGPACK_PP_REPEAT_2_183(m, d) MSGPACK_PP_REPEAT_2_182(m, d) m(3, 182, d) +# define MSGPACK_PP_REPEAT_2_184(m, d) MSGPACK_PP_REPEAT_2_183(m, d) m(3, 183, d) +# define MSGPACK_PP_REPEAT_2_185(m, d) MSGPACK_PP_REPEAT_2_184(m, d) m(3, 184, d) +# define MSGPACK_PP_REPEAT_2_186(m, d) MSGPACK_PP_REPEAT_2_185(m, d) m(3, 185, d) +# define MSGPACK_PP_REPEAT_2_187(m, d) MSGPACK_PP_REPEAT_2_186(m, d) m(3, 186, d) +# define MSGPACK_PP_REPEAT_2_188(m, d) MSGPACK_PP_REPEAT_2_187(m, d) m(3, 187, d) +# define MSGPACK_PP_REPEAT_2_189(m, d) MSGPACK_PP_REPEAT_2_188(m, d) m(3, 188, d) +# define MSGPACK_PP_REPEAT_2_190(m, d) MSGPACK_PP_REPEAT_2_189(m, d) m(3, 189, d) +# define MSGPACK_PP_REPEAT_2_191(m, d) MSGPACK_PP_REPEAT_2_190(m, d) m(3, 190, d) +# define MSGPACK_PP_REPEAT_2_192(m, d) MSGPACK_PP_REPEAT_2_191(m, d) m(3, 191, d) +# define MSGPACK_PP_REPEAT_2_193(m, d) MSGPACK_PP_REPEAT_2_192(m, d) m(3, 192, d) +# define MSGPACK_PP_REPEAT_2_194(m, d) MSGPACK_PP_REPEAT_2_193(m, d) m(3, 193, d) +# define MSGPACK_PP_REPEAT_2_195(m, d) MSGPACK_PP_REPEAT_2_194(m, d) m(3, 194, d) +# define MSGPACK_PP_REPEAT_2_196(m, d) MSGPACK_PP_REPEAT_2_195(m, d) m(3, 195, d) +# define MSGPACK_PP_REPEAT_2_197(m, d) MSGPACK_PP_REPEAT_2_196(m, d) m(3, 196, d) +# define MSGPACK_PP_REPEAT_2_198(m, d) MSGPACK_PP_REPEAT_2_197(m, d) m(3, 197, d) +# define MSGPACK_PP_REPEAT_2_199(m, d) MSGPACK_PP_REPEAT_2_198(m, d) m(3, 198, d) +# define MSGPACK_PP_REPEAT_2_200(m, d) MSGPACK_PP_REPEAT_2_199(m, d) m(3, 199, d) +# define MSGPACK_PP_REPEAT_2_201(m, d) MSGPACK_PP_REPEAT_2_200(m, d) m(3, 200, d) +# define MSGPACK_PP_REPEAT_2_202(m, d) MSGPACK_PP_REPEAT_2_201(m, d) m(3, 201, d) +# define MSGPACK_PP_REPEAT_2_203(m, d) MSGPACK_PP_REPEAT_2_202(m, d) m(3, 202, d) +# define MSGPACK_PP_REPEAT_2_204(m, d) MSGPACK_PP_REPEAT_2_203(m, d) m(3, 203, d) +# define MSGPACK_PP_REPEAT_2_205(m, d) MSGPACK_PP_REPEAT_2_204(m, d) m(3, 204, d) +# define MSGPACK_PP_REPEAT_2_206(m, d) MSGPACK_PP_REPEAT_2_205(m, d) m(3, 205, d) +# define MSGPACK_PP_REPEAT_2_207(m, d) MSGPACK_PP_REPEAT_2_206(m, d) m(3, 206, d) +# define MSGPACK_PP_REPEAT_2_208(m, d) MSGPACK_PP_REPEAT_2_207(m, d) m(3, 207, d) +# define MSGPACK_PP_REPEAT_2_209(m, d) MSGPACK_PP_REPEAT_2_208(m, d) m(3, 208, d) +# define MSGPACK_PP_REPEAT_2_210(m, d) MSGPACK_PP_REPEAT_2_209(m, d) m(3, 209, d) +# define MSGPACK_PP_REPEAT_2_211(m, d) MSGPACK_PP_REPEAT_2_210(m, d) m(3, 210, d) +# define MSGPACK_PP_REPEAT_2_212(m, d) MSGPACK_PP_REPEAT_2_211(m, d) m(3, 211, d) +# define MSGPACK_PP_REPEAT_2_213(m, d) MSGPACK_PP_REPEAT_2_212(m, d) m(3, 212, d) +# define MSGPACK_PP_REPEAT_2_214(m, d) MSGPACK_PP_REPEAT_2_213(m, d) m(3, 213, d) +# define MSGPACK_PP_REPEAT_2_215(m, d) MSGPACK_PP_REPEAT_2_214(m, d) m(3, 214, d) +# define MSGPACK_PP_REPEAT_2_216(m, d) MSGPACK_PP_REPEAT_2_215(m, d) m(3, 215, d) +# define MSGPACK_PP_REPEAT_2_217(m, d) MSGPACK_PP_REPEAT_2_216(m, d) m(3, 216, d) +# define MSGPACK_PP_REPEAT_2_218(m, d) MSGPACK_PP_REPEAT_2_217(m, d) m(3, 217, d) +# define MSGPACK_PP_REPEAT_2_219(m, d) MSGPACK_PP_REPEAT_2_218(m, d) m(3, 218, d) +# define MSGPACK_PP_REPEAT_2_220(m, d) MSGPACK_PP_REPEAT_2_219(m, d) m(3, 219, d) +# define MSGPACK_PP_REPEAT_2_221(m, d) MSGPACK_PP_REPEAT_2_220(m, d) m(3, 220, d) +# define MSGPACK_PP_REPEAT_2_222(m, d) MSGPACK_PP_REPEAT_2_221(m, d) m(3, 221, d) +# define MSGPACK_PP_REPEAT_2_223(m, d) MSGPACK_PP_REPEAT_2_222(m, d) m(3, 222, d) +# define MSGPACK_PP_REPEAT_2_224(m, d) MSGPACK_PP_REPEAT_2_223(m, d) m(3, 223, d) +# define MSGPACK_PP_REPEAT_2_225(m, d) MSGPACK_PP_REPEAT_2_224(m, d) m(3, 224, d) +# define MSGPACK_PP_REPEAT_2_226(m, d) MSGPACK_PP_REPEAT_2_225(m, d) m(3, 225, d) +# define MSGPACK_PP_REPEAT_2_227(m, d) MSGPACK_PP_REPEAT_2_226(m, d) m(3, 226, d) +# define MSGPACK_PP_REPEAT_2_228(m, d) MSGPACK_PP_REPEAT_2_227(m, d) m(3, 227, d) +# define MSGPACK_PP_REPEAT_2_229(m, d) MSGPACK_PP_REPEAT_2_228(m, d) m(3, 228, d) +# define MSGPACK_PP_REPEAT_2_230(m, d) MSGPACK_PP_REPEAT_2_229(m, d) m(3, 229, d) +# define MSGPACK_PP_REPEAT_2_231(m, d) MSGPACK_PP_REPEAT_2_230(m, d) m(3, 230, d) +# define MSGPACK_PP_REPEAT_2_232(m, d) MSGPACK_PP_REPEAT_2_231(m, d) m(3, 231, d) +# define MSGPACK_PP_REPEAT_2_233(m, d) MSGPACK_PP_REPEAT_2_232(m, d) m(3, 232, d) +# define MSGPACK_PP_REPEAT_2_234(m, d) MSGPACK_PP_REPEAT_2_233(m, d) m(3, 233, d) +# define MSGPACK_PP_REPEAT_2_235(m, d) MSGPACK_PP_REPEAT_2_234(m, d) m(3, 234, d) +# define MSGPACK_PP_REPEAT_2_236(m, d) MSGPACK_PP_REPEAT_2_235(m, d) m(3, 235, d) +# define MSGPACK_PP_REPEAT_2_237(m, d) MSGPACK_PP_REPEAT_2_236(m, d) m(3, 236, d) +# define MSGPACK_PP_REPEAT_2_238(m, d) MSGPACK_PP_REPEAT_2_237(m, d) m(3, 237, d) +# define MSGPACK_PP_REPEAT_2_239(m, d) MSGPACK_PP_REPEAT_2_238(m, d) m(3, 238, d) +# define MSGPACK_PP_REPEAT_2_240(m, d) MSGPACK_PP_REPEAT_2_239(m, d) m(3, 239, d) +# define MSGPACK_PP_REPEAT_2_241(m, d) MSGPACK_PP_REPEAT_2_240(m, d) m(3, 240, d) +# define MSGPACK_PP_REPEAT_2_242(m, d) MSGPACK_PP_REPEAT_2_241(m, d) m(3, 241, d) +# define MSGPACK_PP_REPEAT_2_243(m, d) MSGPACK_PP_REPEAT_2_242(m, d) m(3, 242, d) +# define MSGPACK_PP_REPEAT_2_244(m, d) MSGPACK_PP_REPEAT_2_243(m, d) m(3, 243, d) +# define MSGPACK_PP_REPEAT_2_245(m, d) MSGPACK_PP_REPEAT_2_244(m, d) m(3, 244, d) +# define MSGPACK_PP_REPEAT_2_246(m, d) MSGPACK_PP_REPEAT_2_245(m, d) m(3, 245, d) +# define MSGPACK_PP_REPEAT_2_247(m, d) MSGPACK_PP_REPEAT_2_246(m, d) m(3, 246, d) +# define MSGPACK_PP_REPEAT_2_248(m, d) MSGPACK_PP_REPEAT_2_247(m, d) m(3, 247, d) +# define MSGPACK_PP_REPEAT_2_249(m, d) MSGPACK_PP_REPEAT_2_248(m, d) m(3, 248, d) +# define MSGPACK_PP_REPEAT_2_250(m, d) MSGPACK_PP_REPEAT_2_249(m, d) m(3, 249, d) +# define MSGPACK_PP_REPEAT_2_251(m, d) MSGPACK_PP_REPEAT_2_250(m, d) m(3, 250, d) +# define MSGPACK_PP_REPEAT_2_252(m, d) MSGPACK_PP_REPEAT_2_251(m, d) m(3, 251, d) +# define MSGPACK_PP_REPEAT_2_253(m, d) MSGPACK_PP_REPEAT_2_252(m, d) m(3, 252, d) +# define MSGPACK_PP_REPEAT_2_254(m, d) MSGPACK_PP_REPEAT_2_253(m, d) m(3, 253, d) +# define MSGPACK_PP_REPEAT_2_255(m, d) MSGPACK_PP_REPEAT_2_254(m, d) m(3, 254, d) +# define MSGPACK_PP_REPEAT_2_256(m, d) MSGPACK_PP_REPEAT_2_255(m, d) m(3, 255, d) +# +# define MSGPACK_PP_REPEAT_3_0(m, d) +# define MSGPACK_PP_REPEAT_3_1(m, d) m(4, 0, d) +# define MSGPACK_PP_REPEAT_3_2(m, d) MSGPACK_PP_REPEAT_3_1(m, d) m(4, 1, d) +# define MSGPACK_PP_REPEAT_3_3(m, d) MSGPACK_PP_REPEAT_3_2(m, d) m(4, 2, d) +# define MSGPACK_PP_REPEAT_3_4(m, d) MSGPACK_PP_REPEAT_3_3(m, d) m(4, 3, d) +# define MSGPACK_PP_REPEAT_3_5(m, d) MSGPACK_PP_REPEAT_3_4(m, d) m(4, 4, d) +# define MSGPACK_PP_REPEAT_3_6(m, d) MSGPACK_PP_REPEAT_3_5(m, d) m(4, 5, d) +# define MSGPACK_PP_REPEAT_3_7(m, d) MSGPACK_PP_REPEAT_3_6(m, d) m(4, 6, d) +# define MSGPACK_PP_REPEAT_3_8(m, d) MSGPACK_PP_REPEAT_3_7(m, d) m(4, 7, d) +# define MSGPACK_PP_REPEAT_3_9(m, d) MSGPACK_PP_REPEAT_3_8(m, d) m(4, 8, d) +# define MSGPACK_PP_REPEAT_3_10(m, d) MSGPACK_PP_REPEAT_3_9(m, d) m(4, 9, d) +# define MSGPACK_PP_REPEAT_3_11(m, d) MSGPACK_PP_REPEAT_3_10(m, d) m(4, 10, d) +# define MSGPACK_PP_REPEAT_3_12(m, d) MSGPACK_PP_REPEAT_3_11(m, d) m(4, 11, d) +# define MSGPACK_PP_REPEAT_3_13(m, d) MSGPACK_PP_REPEAT_3_12(m, d) m(4, 12, d) +# define MSGPACK_PP_REPEAT_3_14(m, d) MSGPACK_PP_REPEAT_3_13(m, d) m(4, 13, d) +# define MSGPACK_PP_REPEAT_3_15(m, d) MSGPACK_PP_REPEAT_3_14(m, d) m(4, 14, d) +# define MSGPACK_PP_REPEAT_3_16(m, d) MSGPACK_PP_REPEAT_3_15(m, d) m(4, 15, d) +# define MSGPACK_PP_REPEAT_3_17(m, d) MSGPACK_PP_REPEAT_3_16(m, d) m(4, 16, d) +# define MSGPACK_PP_REPEAT_3_18(m, d) MSGPACK_PP_REPEAT_3_17(m, d) m(4, 17, d) +# define MSGPACK_PP_REPEAT_3_19(m, d) MSGPACK_PP_REPEAT_3_18(m, d) m(4, 18, d) +# define MSGPACK_PP_REPEAT_3_20(m, d) MSGPACK_PP_REPEAT_3_19(m, d) m(4, 19, d) +# define MSGPACK_PP_REPEAT_3_21(m, d) MSGPACK_PP_REPEAT_3_20(m, d) m(4, 20, d) +# define MSGPACK_PP_REPEAT_3_22(m, d) MSGPACK_PP_REPEAT_3_21(m, d) m(4, 21, d) +# define MSGPACK_PP_REPEAT_3_23(m, d) MSGPACK_PP_REPEAT_3_22(m, d) m(4, 22, d) +# define MSGPACK_PP_REPEAT_3_24(m, d) MSGPACK_PP_REPEAT_3_23(m, d) m(4, 23, d) +# define MSGPACK_PP_REPEAT_3_25(m, d) MSGPACK_PP_REPEAT_3_24(m, d) m(4, 24, d) +# define MSGPACK_PP_REPEAT_3_26(m, d) MSGPACK_PP_REPEAT_3_25(m, d) m(4, 25, d) +# define MSGPACK_PP_REPEAT_3_27(m, d) MSGPACK_PP_REPEAT_3_26(m, d) m(4, 26, d) +# define MSGPACK_PP_REPEAT_3_28(m, d) MSGPACK_PP_REPEAT_3_27(m, d) m(4, 27, d) +# define MSGPACK_PP_REPEAT_3_29(m, d) MSGPACK_PP_REPEAT_3_28(m, d) m(4, 28, d) +# define MSGPACK_PP_REPEAT_3_30(m, d) MSGPACK_PP_REPEAT_3_29(m, d) m(4, 29, d) +# define MSGPACK_PP_REPEAT_3_31(m, d) MSGPACK_PP_REPEAT_3_30(m, d) m(4, 30, d) +# define MSGPACK_PP_REPEAT_3_32(m, d) MSGPACK_PP_REPEAT_3_31(m, d) m(4, 31, d) +# define MSGPACK_PP_REPEAT_3_33(m, d) MSGPACK_PP_REPEAT_3_32(m, d) m(4, 32, d) +# define MSGPACK_PP_REPEAT_3_34(m, d) MSGPACK_PP_REPEAT_3_33(m, d) m(4, 33, d) +# define MSGPACK_PP_REPEAT_3_35(m, d) MSGPACK_PP_REPEAT_3_34(m, d) m(4, 34, d) +# define MSGPACK_PP_REPEAT_3_36(m, d) MSGPACK_PP_REPEAT_3_35(m, d) m(4, 35, d) +# define MSGPACK_PP_REPEAT_3_37(m, d) MSGPACK_PP_REPEAT_3_36(m, d) m(4, 36, d) +# define MSGPACK_PP_REPEAT_3_38(m, d) MSGPACK_PP_REPEAT_3_37(m, d) m(4, 37, d) +# define MSGPACK_PP_REPEAT_3_39(m, d) MSGPACK_PP_REPEAT_3_38(m, d) m(4, 38, d) +# define MSGPACK_PP_REPEAT_3_40(m, d) MSGPACK_PP_REPEAT_3_39(m, d) m(4, 39, d) +# define MSGPACK_PP_REPEAT_3_41(m, d) MSGPACK_PP_REPEAT_3_40(m, d) m(4, 40, d) +# define MSGPACK_PP_REPEAT_3_42(m, d) MSGPACK_PP_REPEAT_3_41(m, d) m(4, 41, d) +# define MSGPACK_PP_REPEAT_3_43(m, d) MSGPACK_PP_REPEAT_3_42(m, d) m(4, 42, d) +# define MSGPACK_PP_REPEAT_3_44(m, d) MSGPACK_PP_REPEAT_3_43(m, d) m(4, 43, d) +# define MSGPACK_PP_REPEAT_3_45(m, d) MSGPACK_PP_REPEAT_3_44(m, d) m(4, 44, d) +# define MSGPACK_PP_REPEAT_3_46(m, d) MSGPACK_PP_REPEAT_3_45(m, d) m(4, 45, d) +# define MSGPACK_PP_REPEAT_3_47(m, d) MSGPACK_PP_REPEAT_3_46(m, d) m(4, 46, d) +# define MSGPACK_PP_REPEAT_3_48(m, d) MSGPACK_PP_REPEAT_3_47(m, d) m(4, 47, d) +# define MSGPACK_PP_REPEAT_3_49(m, d) MSGPACK_PP_REPEAT_3_48(m, d) m(4, 48, d) +# define MSGPACK_PP_REPEAT_3_50(m, d) MSGPACK_PP_REPEAT_3_49(m, d) m(4, 49, d) +# define MSGPACK_PP_REPEAT_3_51(m, d) MSGPACK_PP_REPEAT_3_50(m, d) m(4, 50, d) +# define MSGPACK_PP_REPEAT_3_52(m, d) MSGPACK_PP_REPEAT_3_51(m, d) m(4, 51, d) +# define MSGPACK_PP_REPEAT_3_53(m, d) MSGPACK_PP_REPEAT_3_52(m, d) m(4, 52, d) +# define MSGPACK_PP_REPEAT_3_54(m, d) MSGPACK_PP_REPEAT_3_53(m, d) m(4, 53, d) +# define MSGPACK_PP_REPEAT_3_55(m, d) MSGPACK_PP_REPEAT_3_54(m, d) m(4, 54, d) +# define MSGPACK_PP_REPEAT_3_56(m, d) MSGPACK_PP_REPEAT_3_55(m, d) m(4, 55, d) +# define MSGPACK_PP_REPEAT_3_57(m, d) MSGPACK_PP_REPEAT_3_56(m, d) m(4, 56, d) +# define MSGPACK_PP_REPEAT_3_58(m, d) MSGPACK_PP_REPEAT_3_57(m, d) m(4, 57, d) +# define MSGPACK_PP_REPEAT_3_59(m, d) MSGPACK_PP_REPEAT_3_58(m, d) m(4, 58, d) +# define MSGPACK_PP_REPEAT_3_60(m, d) MSGPACK_PP_REPEAT_3_59(m, d) m(4, 59, d) +# define MSGPACK_PP_REPEAT_3_61(m, d) MSGPACK_PP_REPEAT_3_60(m, d) m(4, 60, d) +# define MSGPACK_PP_REPEAT_3_62(m, d) MSGPACK_PP_REPEAT_3_61(m, d) m(4, 61, d) +# define MSGPACK_PP_REPEAT_3_63(m, d) MSGPACK_PP_REPEAT_3_62(m, d) m(4, 62, d) +# define MSGPACK_PP_REPEAT_3_64(m, d) MSGPACK_PP_REPEAT_3_63(m, d) m(4, 63, d) +# define MSGPACK_PP_REPEAT_3_65(m, d) MSGPACK_PP_REPEAT_3_64(m, d) m(4, 64, d) +# define MSGPACK_PP_REPEAT_3_66(m, d) MSGPACK_PP_REPEAT_3_65(m, d) m(4, 65, d) +# define MSGPACK_PP_REPEAT_3_67(m, d) MSGPACK_PP_REPEAT_3_66(m, d) m(4, 66, d) +# define MSGPACK_PP_REPEAT_3_68(m, d) MSGPACK_PP_REPEAT_3_67(m, d) m(4, 67, d) +# define MSGPACK_PP_REPEAT_3_69(m, d) MSGPACK_PP_REPEAT_3_68(m, d) m(4, 68, d) +# define MSGPACK_PP_REPEAT_3_70(m, d) MSGPACK_PP_REPEAT_3_69(m, d) m(4, 69, d) +# define MSGPACK_PP_REPEAT_3_71(m, d) MSGPACK_PP_REPEAT_3_70(m, d) m(4, 70, d) +# define MSGPACK_PP_REPEAT_3_72(m, d) MSGPACK_PP_REPEAT_3_71(m, d) m(4, 71, d) +# define MSGPACK_PP_REPEAT_3_73(m, d) MSGPACK_PP_REPEAT_3_72(m, d) m(4, 72, d) +# define MSGPACK_PP_REPEAT_3_74(m, d) MSGPACK_PP_REPEAT_3_73(m, d) m(4, 73, d) +# define MSGPACK_PP_REPEAT_3_75(m, d) MSGPACK_PP_REPEAT_3_74(m, d) m(4, 74, d) +# define MSGPACK_PP_REPEAT_3_76(m, d) MSGPACK_PP_REPEAT_3_75(m, d) m(4, 75, d) +# define MSGPACK_PP_REPEAT_3_77(m, d) MSGPACK_PP_REPEAT_3_76(m, d) m(4, 76, d) +# define MSGPACK_PP_REPEAT_3_78(m, d) MSGPACK_PP_REPEAT_3_77(m, d) m(4, 77, d) +# define MSGPACK_PP_REPEAT_3_79(m, d) MSGPACK_PP_REPEAT_3_78(m, d) m(4, 78, d) +# define MSGPACK_PP_REPEAT_3_80(m, d) MSGPACK_PP_REPEAT_3_79(m, d) m(4, 79, d) +# define MSGPACK_PP_REPEAT_3_81(m, d) MSGPACK_PP_REPEAT_3_80(m, d) m(4, 80, d) +# define MSGPACK_PP_REPEAT_3_82(m, d) MSGPACK_PP_REPEAT_3_81(m, d) m(4, 81, d) +# define MSGPACK_PP_REPEAT_3_83(m, d) MSGPACK_PP_REPEAT_3_82(m, d) m(4, 82, d) +# define MSGPACK_PP_REPEAT_3_84(m, d) MSGPACK_PP_REPEAT_3_83(m, d) m(4, 83, d) +# define MSGPACK_PP_REPEAT_3_85(m, d) MSGPACK_PP_REPEAT_3_84(m, d) m(4, 84, d) +# define MSGPACK_PP_REPEAT_3_86(m, d) MSGPACK_PP_REPEAT_3_85(m, d) m(4, 85, d) +# define MSGPACK_PP_REPEAT_3_87(m, d) MSGPACK_PP_REPEAT_3_86(m, d) m(4, 86, d) +# define MSGPACK_PP_REPEAT_3_88(m, d) MSGPACK_PP_REPEAT_3_87(m, d) m(4, 87, d) +# define MSGPACK_PP_REPEAT_3_89(m, d) MSGPACK_PP_REPEAT_3_88(m, d) m(4, 88, d) +# define MSGPACK_PP_REPEAT_3_90(m, d) MSGPACK_PP_REPEAT_3_89(m, d) m(4, 89, d) +# define MSGPACK_PP_REPEAT_3_91(m, d) MSGPACK_PP_REPEAT_3_90(m, d) m(4, 90, d) +# define MSGPACK_PP_REPEAT_3_92(m, d) MSGPACK_PP_REPEAT_3_91(m, d) m(4, 91, d) +# define MSGPACK_PP_REPEAT_3_93(m, d) MSGPACK_PP_REPEAT_3_92(m, d) m(4, 92, d) +# define MSGPACK_PP_REPEAT_3_94(m, d) MSGPACK_PP_REPEAT_3_93(m, d) m(4, 93, d) +# define MSGPACK_PP_REPEAT_3_95(m, d) MSGPACK_PP_REPEAT_3_94(m, d) m(4, 94, d) +# define MSGPACK_PP_REPEAT_3_96(m, d) MSGPACK_PP_REPEAT_3_95(m, d) m(4, 95, d) +# define MSGPACK_PP_REPEAT_3_97(m, d) MSGPACK_PP_REPEAT_3_96(m, d) m(4, 96, d) +# define MSGPACK_PP_REPEAT_3_98(m, d) MSGPACK_PP_REPEAT_3_97(m, d) m(4, 97, d) +# define MSGPACK_PP_REPEAT_3_99(m, d) MSGPACK_PP_REPEAT_3_98(m, d) m(4, 98, d) +# define MSGPACK_PP_REPEAT_3_100(m, d) MSGPACK_PP_REPEAT_3_99(m, d) m(4, 99, d) +# define MSGPACK_PP_REPEAT_3_101(m, d) MSGPACK_PP_REPEAT_3_100(m, d) m(4, 100, d) +# define MSGPACK_PP_REPEAT_3_102(m, d) MSGPACK_PP_REPEAT_3_101(m, d) m(4, 101, d) +# define MSGPACK_PP_REPEAT_3_103(m, d) MSGPACK_PP_REPEAT_3_102(m, d) m(4, 102, d) +# define MSGPACK_PP_REPEAT_3_104(m, d) MSGPACK_PP_REPEAT_3_103(m, d) m(4, 103, d) +# define MSGPACK_PP_REPEAT_3_105(m, d) MSGPACK_PP_REPEAT_3_104(m, d) m(4, 104, d) +# define MSGPACK_PP_REPEAT_3_106(m, d) MSGPACK_PP_REPEAT_3_105(m, d) m(4, 105, d) +# define MSGPACK_PP_REPEAT_3_107(m, d) MSGPACK_PP_REPEAT_3_106(m, d) m(4, 106, d) +# define MSGPACK_PP_REPEAT_3_108(m, d) MSGPACK_PP_REPEAT_3_107(m, d) m(4, 107, d) +# define MSGPACK_PP_REPEAT_3_109(m, d) MSGPACK_PP_REPEAT_3_108(m, d) m(4, 108, d) +# define MSGPACK_PP_REPEAT_3_110(m, d) MSGPACK_PP_REPEAT_3_109(m, d) m(4, 109, d) +# define MSGPACK_PP_REPEAT_3_111(m, d) MSGPACK_PP_REPEAT_3_110(m, d) m(4, 110, d) +# define MSGPACK_PP_REPEAT_3_112(m, d) MSGPACK_PP_REPEAT_3_111(m, d) m(4, 111, d) +# define MSGPACK_PP_REPEAT_3_113(m, d) MSGPACK_PP_REPEAT_3_112(m, d) m(4, 112, d) +# define MSGPACK_PP_REPEAT_3_114(m, d) MSGPACK_PP_REPEAT_3_113(m, d) m(4, 113, d) +# define MSGPACK_PP_REPEAT_3_115(m, d) MSGPACK_PP_REPEAT_3_114(m, d) m(4, 114, d) +# define MSGPACK_PP_REPEAT_3_116(m, d) MSGPACK_PP_REPEAT_3_115(m, d) m(4, 115, d) +# define MSGPACK_PP_REPEAT_3_117(m, d) MSGPACK_PP_REPEAT_3_116(m, d) m(4, 116, d) +# define MSGPACK_PP_REPEAT_3_118(m, d) MSGPACK_PP_REPEAT_3_117(m, d) m(4, 117, d) +# define MSGPACK_PP_REPEAT_3_119(m, d) MSGPACK_PP_REPEAT_3_118(m, d) m(4, 118, d) +# define MSGPACK_PP_REPEAT_3_120(m, d) MSGPACK_PP_REPEAT_3_119(m, d) m(4, 119, d) +# define MSGPACK_PP_REPEAT_3_121(m, d) MSGPACK_PP_REPEAT_3_120(m, d) m(4, 120, d) +# define MSGPACK_PP_REPEAT_3_122(m, d) MSGPACK_PP_REPEAT_3_121(m, d) m(4, 121, d) +# define MSGPACK_PP_REPEAT_3_123(m, d) MSGPACK_PP_REPEAT_3_122(m, d) m(4, 122, d) +# define MSGPACK_PP_REPEAT_3_124(m, d) MSGPACK_PP_REPEAT_3_123(m, d) m(4, 123, d) +# define MSGPACK_PP_REPEAT_3_125(m, d) MSGPACK_PP_REPEAT_3_124(m, d) m(4, 124, d) +# define MSGPACK_PP_REPEAT_3_126(m, d) MSGPACK_PP_REPEAT_3_125(m, d) m(4, 125, d) +# define MSGPACK_PP_REPEAT_3_127(m, d) MSGPACK_PP_REPEAT_3_126(m, d) m(4, 126, d) +# define MSGPACK_PP_REPEAT_3_128(m, d) MSGPACK_PP_REPEAT_3_127(m, d) m(4, 127, d) +# define MSGPACK_PP_REPEAT_3_129(m, d) MSGPACK_PP_REPEAT_3_128(m, d) m(4, 128, d) +# define MSGPACK_PP_REPEAT_3_130(m, d) MSGPACK_PP_REPEAT_3_129(m, d) m(4, 129, d) +# define MSGPACK_PP_REPEAT_3_131(m, d) MSGPACK_PP_REPEAT_3_130(m, d) m(4, 130, d) +# define MSGPACK_PP_REPEAT_3_132(m, d) MSGPACK_PP_REPEAT_3_131(m, d) m(4, 131, d) +# define MSGPACK_PP_REPEAT_3_133(m, d) MSGPACK_PP_REPEAT_3_132(m, d) m(4, 132, d) +# define MSGPACK_PP_REPEAT_3_134(m, d) MSGPACK_PP_REPEAT_3_133(m, d) m(4, 133, d) +# define MSGPACK_PP_REPEAT_3_135(m, d) MSGPACK_PP_REPEAT_3_134(m, d) m(4, 134, d) +# define MSGPACK_PP_REPEAT_3_136(m, d) MSGPACK_PP_REPEAT_3_135(m, d) m(4, 135, d) +# define MSGPACK_PP_REPEAT_3_137(m, d) MSGPACK_PP_REPEAT_3_136(m, d) m(4, 136, d) +# define MSGPACK_PP_REPEAT_3_138(m, d) MSGPACK_PP_REPEAT_3_137(m, d) m(4, 137, d) +# define MSGPACK_PP_REPEAT_3_139(m, d) MSGPACK_PP_REPEAT_3_138(m, d) m(4, 138, d) +# define MSGPACK_PP_REPEAT_3_140(m, d) MSGPACK_PP_REPEAT_3_139(m, d) m(4, 139, d) +# define MSGPACK_PP_REPEAT_3_141(m, d) MSGPACK_PP_REPEAT_3_140(m, d) m(4, 140, d) +# define MSGPACK_PP_REPEAT_3_142(m, d) MSGPACK_PP_REPEAT_3_141(m, d) m(4, 141, d) +# define MSGPACK_PP_REPEAT_3_143(m, d) MSGPACK_PP_REPEAT_3_142(m, d) m(4, 142, d) +# define MSGPACK_PP_REPEAT_3_144(m, d) MSGPACK_PP_REPEAT_3_143(m, d) m(4, 143, d) +# define MSGPACK_PP_REPEAT_3_145(m, d) MSGPACK_PP_REPEAT_3_144(m, d) m(4, 144, d) +# define MSGPACK_PP_REPEAT_3_146(m, d) MSGPACK_PP_REPEAT_3_145(m, d) m(4, 145, d) +# define MSGPACK_PP_REPEAT_3_147(m, d) MSGPACK_PP_REPEAT_3_146(m, d) m(4, 146, d) +# define MSGPACK_PP_REPEAT_3_148(m, d) MSGPACK_PP_REPEAT_3_147(m, d) m(4, 147, d) +# define MSGPACK_PP_REPEAT_3_149(m, d) MSGPACK_PP_REPEAT_3_148(m, d) m(4, 148, d) +# define MSGPACK_PP_REPEAT_3_150(m, d) MSGPACK_PP_REPEAT_3_149(m, d) m(4, 149, d) +# define MSGPACK_PP_REPEAT_3_151(m, d) MSGPACK_PP_REPEAT_3_150(m, d) m(4, 150, d) +# define MSGPACK_PP_REPEAT_3_152(m, d) MSGPACK_PP_REPEAT_3_151(m, d) m(4, 151, d) +# define MSGPACK_PP_REPEAT_3_153(m, d) MSGPACK_PP_REPEAT_3_152(m, d) m(4, 152, d) +# define MSGPACK_PP_REPEAT_3_154(m, d) MSGPACK_PP_REPEAT_3_153(m, d) m(4, 153, d) +# define MSGPACK_PP_REPEAT_3_155(m, d) MSGPACK_PP_REPEAT_3_154(m, d) m(4, 154, d) +# define MSGPACK_PP_REPEAT_3_156(m, d) MSGPACK_PP_REPEAT_3_155(m, d) m(4, 155, d) +# define MSGPACK_PP_REPEAT_3_157(m, d) MSGPACK_PP_REPEAT_3_156(m, d) m(4, 156, d) +# define MSGPACK_PP_REPEAT_3_158(m, d) MSGPACK_PP_REPEAT_3_157(m, d) m(4, 157, d) +# define MSGPACK_PP_REPEAT_3_159(m, d) MSGPACK_PP_REPEAT_3_158(m, d) m(4, 158, d) +# define MSGPACK_PP_REPEAT_3_160(m, d) MSGPACK_PP_REPEAT_3_159(m, d) m(4, 159, d) +# define MSGPACK_PP_REPEAT_3_161(m, d) MSGPACK_PP_REPEAT_3_160(m, d) m(4, 160, d) +# define MSGPACK_PP_REPEAT_3_162(m, d) MSGPACK_PP_REPEAT_3_161(m, d) m(4, 161, d) +# define MSGPACK_PP_REPEAT_3_163(m, d) MSGPACK_PP_REPEAT_3_162(m, d) m(4, 162, d) +# define MSGPACK_PP_REPEAT_3_164(m, d) MSGPACK_PP_REPEAT_3_163(m, d) m(4, 163, d) +# define MSGPACK_PP_REPEAT_3_165(m, d) MSGPACK_PP_REPEAT_3_164(m, d) m(4, 164, d) +# define MSGPACK_PP_REPEAT_3_166(m, d) MSGPACK_PP_REPEAT_3_165(m, d) m(4, 165, d) +# define MSGPACK_PP_REPEAT_3_167(m, d) MSGPACK_PP_REPEAT_3_166(m, d) m(4, 166, d) +# define MSGPACK_PP_REPEAT_3_168(m, d) MSGPACK_PP_REPEAT_3_167(m, d) m(4, 167, d) +# define MSGPACK_PP_REPEAT_3_169(m, d) MSGPACK_PP_REPEAT_3_168(m, d) m(4, 168, d) +# define MSGPACK_PP_REPEAT_3_170(m, d) MSGPACK_PP_REPEAT_3_169(m, d) m(4, 169, d) +# define MSGPACK_PP_REPEAT_3_171(m, d) MSGPACK_PP_REPEAT_3_170(m, d) m(4, 170, d) +# define MSGPACK_PP_REPEAT_3_172(m, d) MSGPACK_PP_REPEAT_3_171(m, d) m(4, 171, d) +# define MSGPACK_PP_REPEAT_3_173(m, d) MSGPACK_PP_REPEAT_3_172(m, d) m(4, 172, d) +# define MSGPACK_PP_REPEAT_3_174(m, d) MSGPACK_PP_REPEAT_3_173(m, d) m(4, 173, d) +# define MSGPACK_PP_REPEAT_3_175(m, d) MSGPACK_PP_REPEAT_3_174(m, d) m(4, 174, d) +# define MSGPACK_PP_REPEAT_3_176(m, d) MSGPACK_PP_REPEAT_3_175(m, d) m(4, 175, d) +# define MSGPACK_PP_REPEAT_3_177(m, d) MSGPACK_PP_REPEAT_3_176(m, d) m(4, 176, d) +# define MSGPACK_PP_REPEAT_3_178(m, d) MSGPACK_PP_REPEAT_3_177(m, d) m(4, 177, d) +# define MSGPACK_PP_REPEAT_3_179(m, d) MSGPACK_PP_REPEAT_3_178(m, d) m(4, 178, d) +# define MSGPACK_PP_REPEAT_3_180(m, d) MSGPACK_PP_REPEAT_3_179(m, d) m(4, 179, d) +# define MSGPACK_PP_REPEAT_3_181(m, d) MSGPACK_PP_REPEAT_3_180(m, d) m(4, 180, d) +# define MSGPACK_PP_REPEAT_3_182(m, d) MSGPACK_PP_REPEAT_3_181(m, d) m(4, 181, d) +# define MSGPACK_PP_REPEAT_3_183(m, d) MSGPACK_PP_REPEAT_3_182(m, d) m(4, 182, d) +# define MSGPACK_PP_REPEAT_3_184(m, d) MSGPACK_PP_REPEAT_3_183(m, d) m(4, 183, d) +# define MSGPACK_PP_REPEAT_3_185(m, d) MSGPACK_PP_REPEAT_3_184(m, d) m(4, 184, d) +# define MSGPACK_PP_REPEAT_3_186(m, d) MSGPACK_PP_REPEAT_3_185(m, d) m(4, 185, d) +# define MSGPACK_PP_REPEAT_3_187(m, d) MSGPACK_PP_REPEAT_3_186(m, d) m(4, 186, d) +# define MSGPACK_PP_REPEAT_3_188(m, d) MSGPACK_PP_REPEAT_3_187(m, d) m(4, 187, d) +# define MSGPACK_PP_REPEAT_3_189(m, d) MSGPACK_PP_REPEAT_3_188(m, d) m(4, 188, d) +# define MSGPACK_PP_REPEAT_3_190(m, d) MSGPACK_PP_REPEAT_3_189(m, d) m(4, 189, d) +# define MSGPACK_PP_REPEAT_3_191(m, d) MSGPACK_PP_REPEAT_3_190(m, d) m(4, 190, d) +# define MSGPACK_PP_REPEAT_3_192(m, d) MSGPACK_PP_REPEAT_3_191(m, d) m(4, 191, d) +# define MSGPACK_PP_REPEAT_3_193(m, d) MSGPACK_PP_REPEAT_3_192(m, d) m(4, 192, d) +# define MSGPACK_PP_REPEAT_3_194(m, d) MSGPACK_PP_REPEAT_3_193(m, d) m(4, 193, d) +# define MSGPACK_PP_REPEAT_3_195(m, d) MSGPACK_PP_REPEAT_3_194(m, d) m(4, 194, d) +# define MSGPACK_PP_REPEAT_3_196(m, d) MSGPACK_PP_REPEAT_3_195(m, d) m(4, 195, d) +# define MSGPACK_PP_REPEAT_3_197(m, d) MSGPACK_PP_REPEAT_3_196(m, d) m(4, 196, d) +# define MSGPACK_PP_REPEAT_3_198(m, d) MSGPACK_PP_REPEAT_3_197(m, d) m(4, 197, d) +# define MSGPACK_PP_REPEAT_3_199(m, d) MSGPACK_PP_REPEAT_3_198(m, d) m(4, 198, d) +# define MSGPACK_PP_REPEAT_3_200(m, d) MSGPACK_PP_REPEAT_3_199(m, d) m(4, 199, d) +# define MSGPACK_PP_REPEAT_3_201(m, d) MSGPACK_PP_REPEAT_3_200(m, d) m(4, 200, d) +# define MSGPACK_PP_REPEAT_3_202(m, d) MSGPACK_PP_REPEAT_3_201(m, d) m(4, 201, d) +# define MSGPACK_PP_REPEAT_3_203(m, d) MSGPACK_PP_REPEAT_3_202(m, d) m(4, 202, d) +# define MSGPACK_PP_REPEAT_3_204(m, d) MSGPACK_PP_REPEAT_3_203(m, d) m(4, 203, d) +# define MSGPACK_PP_REPEAT_3_205(m, d) MSGPACK_PP_REPEAT_3_204(m, d) m(4, 204, d) +# define MSGPACK_PP_REPEAT_3_206(m, d) MSGPACK_PP_REPEAT_3_205(m, d) m(4, 205, d) +# define MSGPACK_PP_REPEAT_3_207(m, d) MSGPACK_PP_REPEAT_3_206(m, d) m(4, 206, d) +# define MSGPACK_PP_REPEAT_3_208(m, d) MSGPACK_PP_REPEAT_3_207(m, d) m(4, 207, d) +# define MSGPACK_PP_REPEAT_3_209(m, d) MSGPACK_PP_REPEAT_3_208(m, d) m(4, 208, d) +# define MSGPACK_PP_REPEAT_3_210(m, d) MSGPACK_PP_REPEAT_3_209(m, d) m(4, 209, d) +# define MSGPACK_PP_REPEAT_3_211(m, d) MSGPACK_PP_REPEAT_3_210(m, d) m(4, 210, d) +# define MSGPACK_PP_REPEAT_3_212(m, d) MSGPACK_PP_REPEAT_3_211(m, d) m(4, 211, d) +# define MSGPACK_PP_REPEAT_3_213(m, d) MSGPACK_PP_REPEAT_3_212(m, d) m(4, 212, d) +# define MSGPACK_PP_REPEAT_3_214(m, d) MSGPACK_PP_REPEAT_3_213(m, d) m(4, 213, d) +# define MSGPACK_PP_REPEAT_3_215(m, d) MSGPACK_PP_REPEAT_3_214(m, d) m(4, 214, d) +# define MSGPACK_PP_REPEAT_3_216(m, d) MSGPACK_PP_REPEAT_3_215(m, d) m(4, 215, d) +# define MSGPACK_PP_REPEAT_3_217(m, d) MSGPACK_PP_REPEAT_3_216(m, d) m(4, 216, d) +# define MSGPACK_PP_REPEAT_3_218(m, d) MSGPACK_PP_REPEAT_3_217(m, d) m(4, 217, d) +# define MSGPACK_PP_REPEAT_3_219(m, d) MSGPACK_PP_REPEAT_3_218(m, d) m(4, 218, d) +# define MSGPACK_PP_REPEAT_3_220(m, d) MSGPACK_PP_REPEAT_3_219(m, d) m(4, 219, d) +# define MSGPACK_PP_REPEAT_3_221(m, d) MSGPACK_PP_REPEAT_3_220(m, d) m(4, 220, d) +# define MSGPACK_PP_REPEAT_3_222(m, d) MSGPACK_PP_REPEAT_3_221(m, d) m(4, 221, d) +# define MSGPACK_PP_REPEAT_3_223(m, d) MSGPACK_PP_REPEAT_3_222(m, d) m(4, 222, d) +# define MSGPACK_PP_REPEAT_3_224(m, d) MSGPACK_PP_REPEAT_3_223(m, d) m(4, 223, d) +# define MSGPACK_PP_REPEAT_3_225(m, d) MSGPACK_PP_REPEAT_3_224(m, d) m(4, 224, d) +# define MSGPACK_PP_REPEAT_3_226(m, d) MSGPACK_PP_REPEAT_3_225(m, d) m(4, 225, d) +# define MSGPACK_PP_REPEAT_3_227(m, d) MSGPACK_PP_REPEAT_3_226(m, d) m(4, 226, d) +# define MSGPACK_PP_REPEAT_3_228(m, d) MSGPACK_PP_REPEAT_3_227(m, d) m(4, 227, d) +# define MSGPACK_PP_REPEAT_3_229(m, d) MSGPACK_PP_REPEAT_3_228(m, d) m(4, 228, d) +# define MSGPACK_PP_REPEAT_3_230(m, d) MSGPACK_PP_REPEAT_3_229(m, d) m(4, 229, d) +# define MSGPACK_PP_REPEAT_3_231(m, d) MSGPACK_PP_REPEAT_3_230(m, d) m(4, 230, d) +# define MSGPACK_PP_REPEAT_3_232(m, d) MSGPACK_PP_REPEAT_3_231(m, d) m(4, 231, d) +# define MSGPACK_PP_REPEAT_3_233(m, d) MSGPACK_PP_REPEAT_3_232(m, d) m(4, 232, d) +# define MSGPACK_PP_REPEAT_3_234(m, d) MSGPACK_PP_REPEAT_3_233(m, d) m(4, 233, d) +# define MSGPACK_PP_REPEAT_3_235(m, d) MSGPACK_PP_REPEAT_3_234(m, d) m(4, 234, d) +# define MSGPACK_PP_REPEAT_3_236(m, d) MSGPACK_PP_REPEAT_3_235(m, d) m(4, 235, d) +# define MSGPACK_PP_REPEAT_3_237(m, d) MSGPACK_PP_REPEAT_3_236(m, d) m(4, 236, d) +# define MSGPACK_PP_REPEAT_3_238(m, d) MSGPACK_PP_REPEAT_3_237(m, d) m(4, 237, d) +# define MSGPACK_PP_REPEAT_3_239(m, d) MSGPACK_PP_REPEAT_3_238(m, d) m(4, 238, d) +# define MSGPACK_PP_REPEAT_3_240(m, d) MSGPACK_PP_REPEAT_3_239(m, d) m(4, 239, d) +# define MSGPACK_PP_REPEAT_3_241(m, d) MSGPACK_PP_REPEAT_3_240(m, d) m(4, 240, d) +# define MSGPACK_PP_REPEAT_3_242(m, d) MSGPACK_PP_REPEAT_3_241(m, d) m(4, 241, d) +# define MSGPACK_PP_REPEAT_3_243(m, d) MSGPACK_PP_REPEAT_3_242(m, d) m(4, 242, d) +# define MSGPACK_PP_REPEAT_3_244(m, d) MSGPACK_PP_REPEAT_3_243(m, d) m(4, 243, d) +# define MSGPACK_PP_REPEAT_3_245(m, d) MSGPACK_PP_REPEAT_3_244(m, d) m(4, 244, d) +# define MSGPACK_PP_REPEAT_3_246(m, d) MSGPACK_PP_REPEAT_3_245(m, d) m(4, 245, d) +# define MSGPACK_PP_REPEAT_3_247(m, d) MSGPACK_PP_REPEAT_3_246(m, d) m(4, 246, d) +# define MSGPACK_PP_REPEAT_3_248(m, d) MSGPACK_PP_REPEAT_3_247(m, d) m(4, 247, d) +# define MSGPACK_PP_REPEAT_3_249(m, d) MSGPACK_PP_REPEAT_3_248(m, d) m(4, 248, d) +# define MSGPACK_PP_REPEAT_3_250(m, d) MSGPACK_PP_REPEAT_3_249(m, d) m(4, 249, d) +# define MSGPACK_PP_REPEAT_3_251(m, d) MSGPACK_PP_REPEAT_3_250(m, d) m(4, 250, d) +# define MSGPACK_PP_REPEAT_3_252(m, d) MSGPACK_PP_REPEAT_3_251(m, d) m(4, 251, d) +# define MSGPACK_PP_REPEAT_3_253(m, d) MSGPACK_PP_REPEAT_3_252(m, d) m(4, 252, d) +# define MSGPACK_PP_REPEAT_3_254(m, d) MSGPACK_PP_REPEAT_3_253(m, d) m(4, 253, d) +# define MSGPACK_PP_REPEAT_3_255(m, d) MSGPACK_PP_REPEAT_3_254(m, d) m(4, 254, d) +# define MSGPACK_PP_REPEAT_3_256(m, d) MSGPACK_PP_REPEAT_3_255(m, d) m(4, 255, d) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/repetition/repeat_from_to.hpp b/third_party/msgpack/include/msgpack/preprocessor/repetition/repeat_from_to.hpp new file mode 100644 index 000000000000..2a9a19a03fa1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/repetition/repeat_from_to.hpp @@ -0,0 +1,87 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_REPETITION_REPEAT_FROM_TO_HPP +# define MSGPACK_PREPROCESSOR_REPETITION_REPEAT_FROM_TO_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_REPEAT_FROM_TO */ +# +# if 0 +# define MSGPACK_PP_REPEAT_FROM_TO(first, last, macro, data) +# endif +# +# define MSGPACK_PP_REPEAT_FROM_TO MSGPACK_PP_CAT(MSGPACK_PP_REPEAT_FROM_TO_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_REPEAT_P, 4)) +# +# define MSGPACK_PP_REPEAT_FROM_TO_1(f, l, m, dt) MSGPACK_PP_REPEAT_FROM_TO_D_1(MSGPACK_PP_AUTO_REC(MSGPACK_PP_WHILE_P, 256), f, l, m, dt) +# define MSGPACK_PP_REPEAT_FROM_TO_2(f, l, m, dt) MSGPACK_PP_REPEAT_FROM_TO_D_2(MSGPACK_PP_AUTO_REC(MSGPACK_PP_WHILE_P, 256), f, l, m, dt) +# define MSGPACK_PP_REPEAT_FROM_TO_3(f, l, m, dt) MSGPACK_PP_REPEAT_FROM_TO_D_3(MSGPACK_PP_AUTO_REC(MSGPACK_PP_WHILE_P, 256), f, l, m, dt) +# define MSGPACK_PP_REPEAT_FROM_TO_4(f, l, m, dt) MSGPACK_PP_ERROR(0x0003) +# +# define MSGPACK_PP_REPEAT_FROM_TO_1ST MSGPACK_PP_REPEAT_FROM_TO_1 +# define MSGPACK_PP_REPEAT_FROM_TO_2ND MSGPACK_PP_REPEAT_FROM_TO_2 +# define MSGPACK_PP_REPEAT_FROM_TO_3RD MSGPACK_PP_REPEAT_FROM_TO_3 +# +# /* MSGPACK_PP_REPEAT_FROM_TO_D */ +# +# if 0 +# define MSGPACK_PP_REPEAT_FROM_TO_D(d, first, last, macro, data) +# endif +# +# define MSGPACK_PP_REPEAT_FROM_TO_D MSGPACK_PP_CAT(MSGPACK_PP_REPEAT_FROM_TO_D_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_REPEAT_P, 4)) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_REPEAT_FROM_TO_D_1(d, f, l, m, dt) MSGPACK_PP_REPEAT_1(MSGPACK_PP_SUB_D(d, l, f), MSGPACK_PP_REPEAT_FROM_TO_M_1, (d, f, m, dt)) +# define MSGPACK_PP_REPEAT_FROM_TO_D_2(d, f, l, m, dt) MSGPACK_PP_REPEAT_2(MSGPACK_PP_SUB_D(d, l, f), MSGPACK_PP_REPEAT_FROM_TO_M_2, (d, f, m, dt)) +# define MSGPACK_PP_REPEAT_FROM_TO_D_3(d, f, l, m, dt) MSGPACK_PP_REPEAT_3(MSGPACK_PP_SUB_D(d, l, f), MSGPACK_PP_REPEAT_FROM_TO_M_3, (d, f, m, dt)) +# else +# define MSGPACK_PP_REPEAT_FROM_TO_D_1(d, f, l, m, dt) MSGPACK_PP_REPEAT_FROM_TO_D_1_I(d, f, l, m, dt) +# define MSGPACK_PP_REPEAT_FROM_TO_D_2(d, f, l, m, dt) MSGPACK_PP_REPEAT_FROM_TO_D_2_I(d, f, l, m, dt) +# define MSGPACK_PP_REPEAT_FROM_TO_D_3(d, f, l, m, dt) MSGPACK_PP_REPEAT_FROM_TO_D_3_I(d, f, l, m, dt) +# define MSGPACK_PP_REPEAT_FROM_TO_D_1_I(d, f, l, m, dt) MSGPACK_PP_REPEAT_1(MSGPACK_PP_SUB_D(d, l, f), MSGPACK_PP_REPEAT_FROM_TO_M_1, (d, f, m, dt)) +# define MSGPACK_PP_REPEAT_FROM_TO_D_2_I(d, f, l, m, dt) MSGPACK_PP_REPEAT_2(MSGPACK_PP_SUB_D(d, l, f), MSGPACK_PP_REPEAT_FROM_TO_M_2, (d, f, m, dt)) +# define MSGPACK_PP_REPEAT_FROM_TO_D_3_I(d, f, l, m, dt) MSGPACK_PP_REPEAT_3(MSGPACK_PP_SUB_D(d, l, f), MSGPACK_PP_REPEAT_FROM_TO_M_3, (d, f, m, dt)) +# endif +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_REPEAT_FROM_TO_M_1(z, n, dfmd) MSGPACK_PP_REPEAT_FROM_TO_M_1_IM(z, n, MSGPACK_PP_TUPLE_REM_4 dfmd) +# define MSGPACK_PP_REPEAT_FROM_TO_M_2(z, n, dfmd) MSGPACK_PP_REPEAT_FROM_TO_M_2_IM(z, n, MSGPACK_PP_TUPLE_REM_4 dfmd) +# define MSGPACK_PP_REPEAT_FROM_TO_M_3(z, n, dfmd) MSGPACK_PP_REPEAT_FROM_TO_M_3_IM(z, n, MSGPACK_PP_TUPLE_REM_4 dfmd) +# define MSGPACK_PP_REPEAT_FROM_TO_M_1_IM(z, n, im) MSGPACK_PP_REPEAT_FROM_TO_M_1_I(z, n, im) +# define MSGPACK_PP_REPEAT_FROM_TO_M_2_IM(z, n, im) MSGPACK_PP_REPEAT_FROM_TO_M_2_I(z, n, im) +# define MSGPACK_PP_REPEAT_FROM_TO_M_3_IM(z, n, im) MSGPACK_PP_REPEAT_FROM_TO_M_3_I(z, n, im) +# else +# define MSGPACK_PP_REPEAT_FROM_TO_M_1(z, n, dfmd) MSGPACK_PP_REPEAT_FROM_TO_M_1_I(z, n, MSGPACK_PP_TUPLE_ELEM(4, 0, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 1, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 2, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 3, dfmd)) +# define MSGPACK_PP_REPEAT_FROM_TO_M_2(z, n, dfmd) MSGPACK_PP_REPEAT_FROM_TO_M_2_I(z, n, MSGPACK_PP_TUPLE_ELEM(4, 0, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 1, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 2, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 3, dfmd)) +# define MSGPACK_PP_REPEAT_FROM_TO_M_3(z, n, dfmd) MSGPACK_PP_REPEAT_FROM_TO_M_3_I(z, n, MSGPACK_PP_TUPLE_ELEM(4, 0, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 1, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 2, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 3, dfmd)) +# endif +# +# define MSGPACK_PP_REPEAT_FROM_TO_M_1_I(z, n, d, f, m, dt) MSGPACK_PP_REPEAT_FROM_TO_M_1_II(z, MSGPACK_PP_ADD_D(d, n, f), m, dt) +# define MSGPACK_PP_REPEAT_FROM_TO_M_2_I(z, n, d, f, m, dt) MSGPACK_PP_REPEAT_FROM_TO_M_2_II(z, MSGPACK_PP_ADD_D(d, n, f), m, dt) +# define MSGPACK_PP_REPEAT_FROM_TO_M_3_I(z, n, d, f, m, dt) MSGPACK_PP_REPEAT_FROM_TO_M_3_II(z, MSGPACK_PP_ADD_D(d, n, f), m, dt) +# +# define MSGPACK_PP_REPEAT_FROM_TO_M_1_II(z, n, m, dt) m(z, n, dt) +# define MSGPACK_PP_REPEAT_FROM_TO_M_2_II(z, n, m, dt) m(z, n, dt) +# define MSGPACK_PP_REPEAT_FROM_TO_M_3_II(z, n, m, dt) m(z, n, dt) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/selection.hpp b/third_party/msgpack/include/msgpack/preprocessor/selection.hpp new file mode 100644 index 000000000000..e4eec6b1308e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/selection.hpp @@ -0,0 +1,18 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SELECTION_HPP +# define MSGPACK_PREPROCESSOR_SELECTION_HPP +# +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/selection/max.hpp b/third_party/msgpack/include/msgpack/preprocessor/selection/max.hpp new file mode 100644 index 000000000000..fe45b036eff6 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/selection/max.hpp @@ -0,0 +1,39 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SELECTION_MAX_HPP +# define MSGPACK_PREPROCESSOR_SELECTION_MAX_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_MAX */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_MAX(x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL(x, y), y, x) +# else +# define MSGPACK_PP_MAX(x, y) MSGPACK_PP_MAX_I(x, y) +# define MSGPACK_PP_MAX_I(x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL(x, y), y, x) +# endif +# +# /* MSGPACK_PP_MAX_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_MAX_D(d, x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL_D(d, x, y), y, x) +# else +# define MSGPACK_PP_MAX_D(d, x, y) MSGPACK_PP_MAX_D_I(d, x, y) +# define MSGPACK_PP_MAX_D_I(d, x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL_D(d, x, y), y, x) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/selection/min.hpp b/third_party/msgpack/include/msgpack/preprocessor/selection/min.hpp new file mode 100644 index 000000000000..f85e49feebc3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/selection/min.hpp @@ -0,0 +1,39 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SELECTION_MIN_HPP +# define MSGPACK_PREPROCESSOR_SELECTION_MIN_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_MIN */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_MIN(x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL(y, x), y, x) +# else +# define MSGPACK_PP_MIN(x, y) MSGPACK_PP_MIN_I(x, y) +# define MSGPACK_PP_MIN_I(x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL(y, x), y, x) +# endif +# +# /* MSGPACK_PP_MIN_D */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_MIN_D(d, x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL_D(d, y, x), y, x) +# else +# define MSGPACK_PP_MIN_D(d, x, y) MSGPACK_PP_MIN_D_I(d, x, y) +# define MSGPACK_PP_MIN_D_I(d, x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL_D(d, y, x), y, x) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq.hpp new file mode 100644 index 000000000000..252e9f9b7a7b --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq.hpp @@ -0,0 +1,44 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002-2011. * +# * (C) Copyright Edward Diener 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_HPP +# define MSGPACK_PREPROCESSOR_SEQ_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/cat.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/cat.hpp new file mode 100644 index 000000000000..e4fc1ec84ff8 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/cat.hpp @@ -0,0 +1,49 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_CAT_HPP +# define MSGPACK_PREPROCESSOR_SEQ_CAT_HPP +# +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_CAT */ +# +# define MSGPACK_PP_SEQ_CAT(seq) \ + MSGPACK_PP_IF( \ + MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(seq)), \ + MSGPACK_PP_SEQ_CAT_I, \ + MSGPACK_PP_SEQ_HEAD \ + )(seq) \ + /**/ +# define MSGPACK_PP_SEQ_CAT_I(seq) MSGPACK_PP_SEQ_FOLD_LEFT(MSGPACK_PP_SEQ_CAT_O, MSGPACK_PP_SEQ_HEAD(seq), MSGPACK_PP_SEQ_TAIL(seq)) +# +# define MSGPACK_PP_SEQ_CAT_O(s, st, elem) MSGPACK_PP_SEQ_CAT_O_I(st, elem) +# define MSGPACK_PP_SEQ_CAT_O_I(a, b) a ## b +# +# /* MSGPACK_PP_SEQ_CAT_S */ +# +# define MSGPACK_PP_SEQ_CAT_S(s, seq) \ + MSGPACK_PP_IF( \ + MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(seq)), \ + MSGPACK_PP_SEQ_CAT_S_I_A, \ + MSGPACK_PP_SEQ_CAT_S_I_B \ + )(s, seq) \ + /**/ +# define MSGPACK_PP_SEQ_CAT_S_I_A(s, seq) MSGPACK_PP_SEQ_FOLD_LEFT_ ## s(MSGPACK_PP_SEQ_CAT_O, MSGPACK_PP_SEQ_HEAD(seq), MSGPACK_PP_SEQ_TAIL(seq)) +# define MSGPACK_PP_SEQ_CAT_S_I_B(s, seq) MSGPACK_PP_SEQ_HEAD(seq) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/detail/binary_transform.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/detail/binary_transform.hpp new file mode 100644 index 000000000000..cc4e6fd7c9ab --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/detail/binary_transform.hpp @@ -0,0 +1,48 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_DETAIL_BINARY_TRANSFORM_HPP +# define MSGPACK_PREPROCESSOR_SEQ_DETAIL_BINARY_TRANSFORM_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_BINARY_TRANSFORM */ +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_SEQ_BINARY_TRANSFORM(seq) MSGPACK_PP_SEQ_BINARY_TRANSFORM_I(, seq) +# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_I(p, seq) MSGPACK_PP_SEQ_BINARY_TRANSFORM_II(p ## seq) +# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_II(seq) MSGPACK_PP_SEQ_BINARY_TRANSFORM_III(seq) +# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_III(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_BINARY_TRANSFORM_A seq, 0) +# else +# define MSGPACK_PP_SEQ_BINARY_TRANSFORM(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_BINARY_TRANSFORM_A seq, 0) +# endif +# if MSGPACK_PP_VARIADICS +# if MSGPACK_PP_VARIADICS_MSVC +# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_GET_REM(...) \ + MSGPACK_PP_VARIADIC_IS_SINGLE_RETURN(MSGPACK_PP_REM_CAT,MSGPACK_PP_REM,__VA_ARGS__) \ + /**/ +# else +# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_GET_REM(...) MSGPACK_PP_REM +# endif +# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_A(...) (MSGPACK_PP_SEQ_BINARY_TRANSFORM_GET_REM(__VA_ARGS__), __VA_ARGS__)() MSGPACK_PP_SEQ_BINARY_TRANSFORM_B +# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_B(...) (MSGPACK_PP_SEQ_BINARY_TRANSFORM_GET_REM(__VA_ARGS__), __VA_ARGS__)() MSGPACK_PP_SEQ_BINARY_TRANSFORM_A +# else +# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_A(e) (MSGPACK_PP_REM, e)() MSGPACK_PP_SEQ_BINARY_TRANSFORM_B +# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_B(e) (MSGPACK_PP_REM, e)() MSGPACK_PP_SEQ_BINARY_TRANSFORM_A +# endif +# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_A0 (MSGPACK_PP_EAT, ?) +# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_B0 (MSGPACK_PP_EAT, ?) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/detail/is_empty.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/detail/is_empty.hpp new file mode 100644 index 000000000000..b897a04c5c28 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/detail/is_empty.hpp @@ -0,0 +1,49 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2015. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_DETAIL_IS_EMPTY_HPP +# define MSGPACK_PREPROCESSOR_SEQ_DETAIL_IS_EMPTY_HPP +# +# include +# include +# include +# include +# include +# +/* An empty seq is one that is just MSGPACK_PP_SEQ_NIL */ +# +# define MSGPACK_PP_SEQ_DETAIL_IS_EMPTY(seq) \ + MSGPACK_PP_COMPL \ + ( \ + MSGPACK_PP_SEQ_DETAIL_IS_NOT_EMPTY(seq) \ + ) \ +/**/ +# +# define MSGPACK_PP_SEQ_DETAIL_IS_EMPTY_SIZE(size) \ + MSGPACK_PP_COMPL \ + ( \ + MSGPACK_PP_SEQ_DETAIL_IS_NOT_EMPTY_SIZE(size) \ + ) \ +/**/ +# +# define MSGPACK_PP_SEQ_DETAIL_IS_NOT_EMPTY(seq) \ + MSGPACK_PP_SEQ_DETAIL_IS_NOT_EMPTY_SIZE(MSGPACK_PP_SEQ_DETAIL_EMPTY_SIZE(seq)) \ +/**/ +# +# define MSGPACK_PP_SEQ_DETAIL_IS_NOT_EMPTY_SIZE(size) \ + MSGPACK_PP_BOOL(size) \ +/**/ +# +# define MSGPACK_PP_SEQ_DETAIL_EMPTY_SIZE(seq) \ + MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(seq (nil))) \ +/**/ +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/detail/split.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/detail/split.hpp new file mode 100644 index 000000000000..b2f25753fc01 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/detail/split.hpp @@ -0,0 +1,284 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP +# define MSGPACK_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP +# +# include +# +# /* MSGPACK_PP_SEQ_SPLIT */ +# +# define MSGPACK_PP_SEQ_SPLIT(n, seq) MSGPACK_PP_SEQ_SPLIT_D(n, seq) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_SEQ_SPLIT_D(n, seq) (MSGPACK_PP_SEQ_SPLIT_ ## n seq) +# else +# define MSGPACK_PP_SEQ_SPLIT_D(n, seq) (MSGPACK_PP_SEQ_SPLIT_ ## n ## seq) +# endif +# +# define MSGPACK_PP_SEQ_SPLIT_1(x) (x), +# define MSGPACK_PP_SEQ_SPLIT_2(x) (x) MSGPACK_PP_SEQ_SPLIT_1 +# define MSGPACK_PP_SEQ_SPLIT_3(x) (x) MSGPACK_PP_SEQ_SPLIT_2 +# define MSGPACK_PP_SEQ_SPLIT_4(x) (x) MSGPACK_PP_SEQ_SPLIT_3 +# define MSGPACK_PP_SEQ_SPLIT_5(x) (x) MSGPACK_PP_SEQ_SPLIT_4 +# define MSGPACK_PP_SEQ_SPLIT_6(x) (x) MSGPACK_PP_SEQ_SPLIT_5 +# define MSGPACK_PP_SEQ_SPLIT_7(x) (x) MSGPACK_PP_SEQ_SPLIT_6 +# define MSGPACK_PP_SEQ_SPLIT_8(x) (x) MSGPACK_PP_SEQ_SPLIT_7 +# define MSGPACK_PP_SEQ_SPLIT_9(x) (x) MSGPACK_PP_SEQ_SPLIT_8 +# define MSGPACK_PP_SEQ_SPLIT_10(x) (x) MSGPACK_PP_SEQ_SPLIT_9 +# define MSGPACK_PP_SEQ_SPLIT_11(x) (x) MSGPACK_PP_SEQ_SPLIT_10 +# define MSGPACK_PP_SEQ_SPLIT_12(x) (x) MSGPACK_PP_SEQ_SPLIT_11 +# define MSGPACK_PP_SEQ_SPLIT_13(x) (x) MSGPACK_PP_SEQ_SPLIT_12 +# define MSGPACK_PP_SEQ_SPLIT_14(x) (x) MSGPACK_PP_SEQ_SPLIT_13 +# define MSGPACK_PP_SEQ_SPLIT_15(x) (x) MSGPACK_PP_SEQ_SPLIT_14 +# define MSGPACK_PP_SEQ_SPLIT_16(x) (x) MSGPACK_PP_SEQ_SPLIT_15 +# define MSGPACK_PP_SEQ_SPLIT_17(x) (x) MSGPACK_PP_SEQ_SPLIT_16 +# define MSGPACK_PP_SEQ_SPLIT_18(x) (x) MSGPACK_PP_SEQ_SPLIT_17 +# define MSGPACK_PP_SEQ_SPLIT_19(x) (x) MSGPACK_PP_SEQ_SPLIT_18 +# define MSGPACK_PP_SEQ_SPLIT_20(x) (x) MSGPACK_PP_SEQ_SPLIT_19 +# define MSGPACK_PP_SEQ_SPLIT_21(x) (x) MSGPACK_PP_SEQ_SPLIT_20 +# define MSGPACK_PP_SEQ_SPLIT_22(x) (x) MSGPACK_PP_SEQ_SPLIT_21 +# define MSGPACK_PP_SEQ_SPLIT_23(x) (x) MSGPACK_PP_SEQ_SPLIT_22 +# define MSGPACK_PP_SEQ_SPLIT_24(x) (x) MSGPACK_PP_SEQ_SPLIT_23 +# define MSGPACK_PP_SEQ_SPLIT_25(x) (x) MSGPACK_PP_SEQ_SPLIT_24 +# define MSGPACK_PP_SEQ_SPLIT_26(x) (x) MSGPACK_PP_SEQ_SPLIT_25 +# define MSGPACK_PP_SEQ_SPLIT_27(x) (x) MSGPACK_PP_SEQ_SPLIT_26 +# define MSGPACK_PP_SEQ_SPLIT_28(x) (x) MSGPACK_PP_SEQ_SPLIT_27 +# define MSGPACK_PP_SEQ_SPLIT_29(x) (x) MSGPACK_PP_SEQ_SPLIT_28 +# define MSGPACK_PP_SEQ_SPLIT_30(x) (x) MSGPACK_PP_SEQ_SPLIT_29 +# define MSGPACK_PP_SEQ_SPLIT_31(x) (x) MSGPACK_PP_SEQ_SPLIT_30 +# define MSGPACK_PP_SEQ_SPLIT_32(x) (x) MSGPACK_PP_SEQ_SPLIT_31 +# define MSGPACK_PP_SEQ_SPLIT_33(x) (x) MSGPACK_PP_SEQ_SPLIT_32 +# define MSGPACK_PP_SEQ_SPLIT_34(x) (x) MSGPACK_PP_SEQ_SPLIT_33 +# define MSGPACK_PP_SEQ_SPLIT_35(x) (x) MSGPACK_PP_SEQ_SPLIT_34 +# define MSGPACK_PP_SEQ_SPLIT_36(x) (x) MSGPACK_PP_SEQ_SPLIT_35 +# define MSGPACK_PP_SEQ_SPLIT_37(x) (x) MSGPACK_PP_SEQ_SPLIT_36 +# define MSGPACK_PP_SEQ_SPLIT_38(x) (x) MSGPACK_PP_SEQ_SPLIT_37 +# define MSGPACK_PP_SEQ_SPLIT_39(x) (x) MSGPACK_PP_SEQ_SPLIT_38 +# define MSGPACK_PP_SEQ_SPLIT_40(x) (x) MSGPACK_PP_SEQ_SPLIT_39 +# define MSGPACK_PP_SEQ_SPLIT_41(x) (x) MSGPACK_PP_SEQ_SPLIT_40 +# define MSGPACK_PP_SEQ_SPLIT_42(x) (x) MSGPACK_PP_SEQ_SPLIT_41 +# define MSGPACK_PP_SEQ_SPLIT_43(x) (x) MSGPACK_PP_SEQ_SPLIT_42 +# define MSGPACK_PP_SEQ_SPLIT_44(x) (x) MSGPACK_PP_SEQ_SPLIT_43 +# define MSGPACK_PP_SEQ_SPLIT_45(x) (x) MSGPACK_PP_SEQ_SPLIT_44 +# define MSGPACK_PP_SEQ_SPLIT_46(x) (x) MSGPACK_PP_SEQ_SPLIT_45 +# define MSGPACK_PP_SEQ_SPLIT_47(x) (x) MSGPACK_PP_SEQ_SPLIT_46 +# define MSGPACK_PP_SEQ_SPLIT_48(x) (x) MSGPACK_PP_SEQ_SPLIT_47 +# define MSGPACK_PP_SEQ_SPLIT_49(x) (x) MSGPACK_PP_SEQ_SPLIT_48 +# define MSGPACK_PP_SEQ_SPLIT_50(x) (x) MSGPACK_PP_SEQ_SPLIT_49 +# define MSGPACK_PP_SEQ_SPLIT_51(x) (x) MSGPACK_PP_SEQ_SPLIT_50 +# define MSGPACK_PP_SEQ_SPLIT_52(x) (x) MSGPACK_PP_SEQ_SPLIT_51 +# define MSGPACK_PP_SEQ_SPLIT_53(x) (x) MSGPACK_PP_SEQ_SPLIT_52 +# define MSGPACK_PP_SEQ_SPLIT_54(x) (x) MSGPACK_PP_SEQ_SPLIT_53 +# define MSGPACK_PP_SEQ_SPLIT_55(x) (x) MSGPACK_PP_SEQ_SPLIT_54 +# define MSGPACK_PP_SEQ_SPLIT_56(x) (x) MSGPACK_PP_SEQ_SPLIT_55 +# define MSGPACK_PP_SEQ_SPLIT_57(x) (x) MSGPACK_PP_SEQ_SPLIT_56 +# define MSGPACK_PP_SEQ_SPLIT_58(x) (x) MSGPACK_PP_SEQ_SPLIT_57 +# define MSGPACK_PP_SEQ_SPLIT_59(x) (x) MSGPACK_PP_SEQ_SPLIT_58 +# define MSGPACK_PP_SEQ_SPLIT_60(x) (x) MSGPACK_PP_SEQ_SPLIT_59 +# define MSGPACK_PP_SEQ_SPLIT_61(x) (x) MSGPACK_PP_SEQ_SPLIT_60 +# define MSGPACK_PP_SEQ_SPLIT_62(x) (x) MSGPACK_PP_SEQ_SPLIT_61 +# define MSGPACK_PP_SEQ_SPLIT_63(x) (x) MSGPACK_PP_SEQ_SPLIT_62 +# define MSGPACK_PP_SEQ_SPLIT_64(x) (x) MSGPACK_PP_SEQ_SPLIT_63 +# define MSGPACK_PP_SEQ_SPLIT_65(x) (x) MSGPACK_PP_SEQ_SPLIT_64 +# define MSGPACK_PP_SEQ_SPLIT_66(x) (x) MSGPACK_PP_SEQ_SPLIT_65 +# define MSGPACK_PP_SEQ_SPLIT_67(x) (x) MSGPACK_PP_SEQ_SPLIT_66 +# define MSGPACK_PP_SEQ_SPLIT_68(x) (x) MSGPACK_PP_SEQ_SPLIT_67 +# define MSGPACK_PP_SEQ_SPLIT_69(x) (x) MSGPACK_PP_SEQ_SPLIT_68 +# define MSGPACK_PP_SEQ_SPLIT_70(x) (x) MSGPACK_PP_SEQ_SPLIT_69 +# define MSGPACK_PP_SEQ_SPLIT_71(x) (x) MSGPACK_PP_SEQ_SPLIT_70 +# define MSGPACK_PP_SEQ_SPLIT_72(x) (x) MSGPACK_PP_SEQ_SPLIT_71 +# define MSGPACK_PP_SEQ_SPLIT_73(x) (x) MSGPACK_PP_SEQ_SPLIT_72 +# define MSGPACK_PP_SEQ_SPLIT_74(x) (x) MSGPACK_PP_SEQ_SPLIT_73 +# define MSGPACK_PP_SEQ_SPLIT_75(x) (x) MSGPACK_PP_SEQ_SPLIT_74 +# define MSGPACK_PP_SEQ_SPLIT_76(x) (x) MSGPACK_PP_SEQ_SPLIT_75 +# define MSGPACK_PP_SEQ_SPLIT_77(x) (x) MSGPACK_PP_SEQ_SPLIT_76 +# define MSGPACK_PP_SEQ_SPLIT_78(x) (x) MSGPACK_PP_SEQ_SPLIT_77 +# define MSGPACK_PP_SEQ_SPLIT_79(x) (x) MSGPACK_PP_SEQ_SPLIT_78 +# define MSGPACK_PP_SEQ_SPLIT_80(x) (x) MSGPACK_PP_SEQ_SPLIT_79 +# define MSGPACK_PP_SEQ_SPLIT_81(x) (x) MSGPACK_PP_SEQ_SPLIT_80 +# define MSGPACK_PP_SEQ_SPLIT_82(x) (x) MSGPACK_PP_SEQ_SPLIT_81 +# define MSGPACK_PP_SEQ_SPLIT_83(x) (x) MSGPACK_PP_SEQ_SPLIT_82 +# define MSGPACK_PP_SEQ_SPLIT_84(x) (x) MSGPACK_PP_SEQ_SPLIT_83 +# define MSGPACK_PP_SEQ_SPLIT_85(x) (x) MSGPACK_PP_SEQ_SPLIT_84 +# define MSGPACK_PP_SEQ_SPLIT_86(x) (x) MSGPACK_PP_SEQ_SPLIT_85 +# define MSGPACK_PP_SEQ_SPLIT_87(x) (x) MSGPACK_PP_SEQ_SPLIT_86 +# define MSGPACK_PP_SEQ_SPLIT_88(x) (x) MSGPACK_PP_SEQ_SPLIT_87 +# define MSGPACK_PP_SEQ_SPLIT_89(x) (x) MSGPACK_PP_SEQ_SPLIT_88 +# define MSGPACK_PP_SEQ_SPLIT_90(x) (x) MSGPACK_PP_SEQ_SPLIT_89 +# define MSGPACK_PP_SEQ_SPLIT_91(x) (x) MSGPACK_PP_SEQ_SPLIT_90 +# define MSGPACK_PP_SEQ_SPLIT_92(x) (x) MSGPACK_PP_SEQ_SPLIT_91 +# define MSGPACK_PP_SEQ_SPLIT_93(x) (x) MSGPACK_PP_SEQ_SPLIT_92 +# define MSGPACK_PP_SEQ_SPLIT_94(x) (x) MSGPACK_PP_SEQ_SPLIT_93 +# define MSGPACK_PP_SEQ_SPLIT_95(x) (x) MSGPACK_PP_SEQ_SPLIT_94 +# define MSGPACK_PP_SEQ_SPLIT_96(x) (x) MSGPACK_PP_SEQ_SPLIT_95 +# define MSGPACK_PP_SEQ_SPLIT_97(x) (x) MSGPACK_PP_SEQ_SPLIT_96 +# define MSGPACK_PP_SEQ_SPLIT_98(x) (x) MSGPACK_PP_SEQ_SPLIT_97 +# define MSGPACK_PP_SEQ_SPLIT_99(x) (x) MSGPACK_PP_SEQ_SPLIT_98 +# define MSGPACK_PP_SEQ_SPLIT_100(x) (x) MSGPACK_PP_SEQ_SPLIT_99 +# define MSGPACK_PP_SEQ_SPLIT_101(x) (x) MSGPACK_PP_SEQ_SPLIT_100 +# define MSGPACK_PP_SEQ_SPLIT_102(x) (x) MSGPACK_PP_SEQ_SPLIT_101 +# define MSGPACK_PP_SEQ_SPLIT_103(x) (x) MSGPACK_PP_SEQ_SPLIT_102 +# define MSGPACK_PP_SEQ_SPLIT_104(x) (x) MSGPACK_PP_SEQ_SPLIT_103 +# define MSGPACK_PP_SEQ_SPLIT_105(x) (x) MSGPACK_PP_SEQ_SPLIT_104 +# define MSGPACK_PP_SEQ_SPLIT_106(x) (x) MSGPACK_PP_SEQ_SPLIT_105 +# define MSGPACK_PP_SEQ_SPLIT_107(x) (x) MSGPACK_PP_SEQ_SPLIT_106 +# define MSGPACK_PP_SEQ_SPLIT_108(x) (x) MSGPACK_PP_SEQ_SPLIT_107 +# define MSGPACK_PP_SEQ_SPLIT_109(x) (x) MSGPACK_PP_SEQ_SPLIT_108 +# define MSGPACK_PP_SEQ_SPLIT_110(x) (x) MSGPACK_PP_SEQ_SPLIT_109 +# define MSGPACK_PP_SEQ_SPLIT_111(x) (x) MSGPACK_PP_SEQ_SPLIT_110 +# define MSGPACK_PP_SEQ_SPLIT_112(x) (x) MSGPACK_PP_SEQ_SPLIT_111 +# define MSGPACK_PP_SEQ_SPLIT_113(x) (x) MSGPACK_PP_SEQ_SPLIT_112 +# define MSGPACK_PP_SEQ_SPLIT_114(x) (x) MSGPACK_PP_SEQ_SPLIT_113 +# define MSGPACK_PP_SEQ_SPLIT_115(x) (x) MSGPACK_PP_SEQ_SPLIT_114 +# define MSGPACK_PP_SEQ_SPLIT_116(x) (x) MSGPACK_PP_SEQ_SPLIT_115 +# define MSGPACK_PP_SEQ_SPLIT_117(x) (x) MSGPACK_PP_SEQ_SPLIT_116 +# define MSGPACK_PP_SEQ_SPLIT_118(x) (x) MSGPACK_PP_SEQ_SPLIT_117 +# define MSGPACK_PP_SEQ_SPLIT_119(x) (x) MSGPACK_PP_SEQ_SPLIT_118 +# define MSGPACK_PP_SEQ_SPLIT_120(x) (x) MSGPACK_PP_SEQ_SPLIT_119 +# define MSGPACK_PP_SEQ_SPLIT_121(x) (x) MSGPACK_PP_SEQ_SPLIT_120 +# define MSGPACK_PP_SEQ_SPLIT_122(x) (x) MSGPACK_PP_SEQ_SPLIT_121 +# define MSGPACK_PP_SEQ_SPLIT_123(x) (x) MSGPACK_PP_SEQ_SPLIT_122 +# define MSGPACK_PP_SEQ_SPLIT_124(x) (x) MSGPACK_PP_SEQ_SPLIT_123 +# define MSGPACK_PP_SEQ_SPLIT_125(x) (x) MSGPACK_PP_SEQ_SPLIT_124 +# define MSGPACK_PP_SEQ_SPLIT_126(x) (x) MSGPACK_PP_SEQ_SPLIT_125 +# define MSGPACK_PP_SEQ_SPLIT_127(x) (x) MSGPACK_PP_SEQ_SPLIT_126 +# define MSGPACK_PP_SEQ_SPLIT_128(x) (x) MSGPACK_PP_SEQ_SPLIT_127 +# define MSGPACK_PP_SEQ_SPLIT_129(x) (x) MSGPACK_PP_SEQ_SPLIT_128 +# define MSGPACK_PP_SEQ_SPLIT_130(x) (x) MSGPACK_PP_SEQ_SPLIT_129 +# define MSGPACK_PP_SEQ_SPLIT_131(x) (x) MSGPACK_PP_SEQ_SPLIT_130 +# define MSGPACK_PP_SEQ_SPLIT_132(x) (x) MSGPACK_PP_SEQ_SPLIT_131 +# define MSGPACK_PP_SEQ_SPLIT_133(x) (x) MSGPACK_PP_SEQ_SPLIT_132 +# define MSGPACK_PP_SEQ_SPLIT_134(x) (x) MSGPACK_PP_SEQ_SPLIT_133 +# define MSGPACK_PP_SEQ_SPLIT_135(x) (x) MSGPACK_PP_SEQ_SPLIT_134 +# define MSGPACK_PP_SEQ_SPLIT_136(x) (x) MSGPACK_PP_SEQ_SPLIT_135 +# define MSGPACK_PP_SEQ_SPLIT_137(x) (x) MSGPACK_PP_SEQ_SPLIT_136 +# define MSGPACK_PP_SEQ_SPLIT_138(x) (x) MSGPACK_PP_SEQ_SPLIT_137 +# define MSGPACK_PP_SEQ_SPLIT_139(x) (x) MSGPACK_PP_SEQ_SPLIT_138 +# define MSGPACK_PP_SEQ_SPLIT_140(x) (x) MSGPACK_PP_SEQ_SPLIT_139 +# define MSGPACK_PP_SEQ_SPLIT_141(x) (x) MSGPACK_PP_SEQ_SPLIT_140 +# define MSGPACK_PP_SEQ_SPLIT_142(x) (x) MSGPACK_PP_SEQ_SPLIT_141 +# define MSGPACK_PP_SEQ_SPLIT_143(x) (x) MSGPACK_PP_SEQ_SPLIT_142 +# define MSGPACK_PP_SEQ_SPLIT_144(x) (x) MSGPACK_PP_SEQ_SPLIT_143 +# define MSGPACK_PP_SEQ_SPLIT_145(x) (x) MSGPACK_PP_SEQ_SPLIT_144 +# define MSGPACK_PP_SEQ_SPLIT_146(x) (x) MSGPACK_PP_SEQ_SPLIT_145 +# define MSGPACK_PP_SEQ_SPLIT_147(x) (x) MSGPACK_PP_SEQ_SPLIT_146 +# define MSGPACK_PP_SEQ_SPLIT_148(x) (x) MSGPACK_PP_SEQ_SPLIT_147 +# define MSGPACK_PP_SEQ_SPLIT_149(x) (x) MSGPACK_PP_SEQ_SPLIT_148 +# define MSGPACK_PP_SEQ_SPLIT_150(x) (x) MSGPACK_PP_SEQ_SPLIT_149 +# define MSGPACK_PP_SEQ_SPLIT_151(x) (x) MSGPACK_PP_SEQ_SPLIT_150 +# define MSGPACK_PP_SEQ_SPLIT_152(x) (x) MSGPACK_PP_SEQ_SPLIT_151 +# define MSGPACK_PP_SEQ_SPLIT_153(x) (x) MSGPACK_PP_SEQ_SPLIT_152 +# define MSGPACK_PP_SEQ_SPLIT_154(x) (x) MSGPACK_PP_SEQ_SPLIT_153 +# define MSGPACK_PP_SEQ_SPLIT_155(x) (x) MSGPACK_PP_SEQ_SPLIT_154 +# define MSGPACK_PP_SEQ_SPLIT_156(x) (x) MSGPACK_PP_SEQ_SPLIT_155 +# define MSGPACK_PP_SEQ_SPLIT_157(x) (x) MSGPACK_PP_SEQ_SPLIT_156 +# define MSGPACK_PP_SEQ_SPLIT_158(x) (x) MSGPACK_PP_SEQ_SPLIT_157 +# define MSGPACK_PP_SEQ_SPLIT_159(x) (x) MSGPACK_PP_SEQ_SPLIT_158 +# define MSGPACK_PP_SEQ_SPLIT_160(x) (x) MSGPACK_PP_SEQ_SPLIT_159 +# define MSGPACK_PP_SEQ_SPLIT_161(x) (x) MSGPACK_PP_SEQ_SPLIT_160 +# define MSGPACK_PP_SEQ_SPLIT_162(x) (x) MSGPACK_PP_SEQ_SPLIT_161 +# define MSGPACK_PP_SEQ_SPLIT_163(x) (x) MSGPACK_PP_SEQ_SPLIT_162 +# define MSGPACK_PP_SEQ_SPLIT_164(x) (x) MSGPACK_PP_SEQ_SPLIT_163 +# define MSGPACK_PP_SEQ_SPLIT_165(x) (x) MSGPACK_PP_SEQ_SPLIT_164 +# define MSGPACK_PP_SEQ_SPLIT_166(x) (x) MSGPACK_PP_SEQ_SPLIT_165 +# define MSGPACK_PP_SEQ_SPLIT_167(x) (x) MSGPACK_PP_SEQ_SPLIT_166 +# define MSGPACK_PP_SEQ_SPLIT_168(x) (x) MSGPACK_PP_SEQ_SPLIT_167 +# define MSGPACK_PP_SEQ_SPLIT_169(x) (x) MSGPACK_PP_SEQ_SPLIT_168 +# define MSGPACK_PP_SEQ_SPLIT_170(x) (x) MSGPACK_PP_SEQ_SPLIT_169 +# define MSGPACK_PP_SEQ_SPLIT_171(x) (x) MSGPACK_PP_SEQ_SPLIT_170 +# define MSGPACK_PP_SEQ_SPLIT_172(x) (x) MSGPACK_PP_SEQ_SPLIT_171 +# define MSGPACK_PP_SEQ_SPLIT_173(x) (x) MSGPACK_PP_SEQ_SPLIT_172 +# define MSGPACK_PP_SEQ_SPLIT_174(x) (x) MSGPACK_PP_SEQ_SPLIT_173 +# define MSGPACK_PP_SEQ_SPLIT_175(x) (x) MSGPACK_PP_SEQ_SPLIT_174 +# define MSGPACK_PP_SEQ_SPLIT_176(x) (x) MSGPACK_PP_SEQ_SPLIT_175 +# define MSGPACK_PP_SEQ_SPLIT_177(x) (x) MSGPACK_PP_SEQ_SPLIT_176 +# define MSGPACK_PP_SEQ_SPLIT_178(x) (x) MSGPACK_PP_SEQ_SPLIT_177 +# define MSGPACK_PP_SEQ_SPLIT_179(x) (x) MSGPACK_PP_SEQ_SPLIT_178 +# define MSGPACK_PP_SEQ_SPLIT_180(x) (x) MSGPACK_PP_SEQ_SPLIT_179 +# define MSGPACK_PP_SEQ_SPLIT_181(x) (x) MSGPACK_PP_SEQ_SPLIT_180 +# define MSGPACK_PP_SEQ_SPLIT_182(x) (x) MSGPACK_PP_SEQ_SPLIT_181 +# define MSGPACK_PP_SEQ_SPLIT_183(x) (x) MSGPACK_PP_SEQ_SPLIT_182 +# define MSGPACK_PP_SEQ_SPLIT_184(x) (x) MSGPACK_PP_SEQ_SPLIT_183 +# define MSGPACK_PP_SEQ_SPLIT_185(x) (x) MSGPACK_PP_SEQ_SPLIT_184 +# define MSGPACK_PP_SEQ_SPLIT_186(x) (x) MSGPACK_PP_SEQ_SPLIT_185 +# define MSGPACK_PP_SEQ_SPLIT_187(x) (x) MSGPACK_PP_SEQ_SPLIT_186 +# define MSGPACK_PP_SEQ_SPLIT_188(x) (x) MSGPACK_PP_SEQ_SPLIT_187 +# define MSGPACK_PP_SEQ_SPLIT_189(x) (x) MSGPACK_PP_SEQ_SPLIT_188 +# define MSGPACK_PP_SEQ_SPLIT_190(x) (x) MSGPACK_PP_SEQ_SPLIT_189 +# define MSGPACK_PP_SEQ_SPLIT_191(x) (x) MSGPACK_PP_SEQ_SPLIT_190 +# define MSGPACK_PP_SEQ_SPLIT_192(x) (x) MSGPACK_PP_SEQ_SPLIT_191 +# define MSGPACK_PP_SEQ_SPLIT_193(x) (x) MSGPACK_PP_SEQ_SPLIT_192 +# define MSGPACK_PP_SEQ_SPLIT_194(x) (x) MSGPACK_PP_SEQ_SPLIT_193 +# define MSGPACK_PP_SEQ_SPLIT_195(x) (x) MSGPACK_PP_SEQ_SPLIT_194 +# define MSGPACK_PP_SEQ_SPLIT_196(x) (x) MSGPACK_PP_SEQ_SPLIT_195 +# define MSGPACK_PP_SEQ_SPLIT_197(x) (x) MSGPACK_PP_SEQ_SPLIT_196 +# define MSGPACK_PP_SEQ_SPLIT_198(x) (x) MSGPACK_PP_SEQ_SPLIT_197 +# define MSGPACK_PP_SEQ_SPLIT_199(x) (x) MSGPACK_PP_SEQ_SPLIT_198 +# define MSGPACK_PP_SEQ_SPLIT_200(x) (x) MSGPACK_PP_SEQ_SPLIT_199 +# define MSGPACK_PP_SEQ_SPLIT_201(x) (x) MSGPACK_PP_SEQ_SPLIT_200 +# define MSGPACK_PP_SEQ_SPLIT_202(x) (x) MSGPACK_PP_SEQ_SPLIT_201 +# define MSGPACK_PP_SEQ_SPLIT_203(x) (x) MSGPACK_PP_SEQ_SPLIT_202 +# define MSGPACK_PP_SEQ_SPLIT_204(x) (x) MSGPACK_PP_SEQ_SPLIT_203 +# define MSGPACK_PP_SEQ_SPLIT_205(x) (x) MSGPACK_PP_SEQ_SPLIT_204 +# define MSGPACK_PP_SEQ_SPLIT_206(x) (x) MSGPACK_PP_SEQ_SPLIT_205 +# define MSGPACK_PP_SEQ_SPLIT_207(x) (x) MSGPACK_PP_SEQ_SPLIT_206 +# define MSGPACK_PP_SEQ_SPLIT_208(x) (x) MSGPACK_PP_SEQ_SPLIT_207 +# define MSGPACK_PP_SEQ_SPLIT_209(x) (x) MSGPACK_PP_SEQ_SPLIT_208 +# define MSGPACK_PP_SEQ_SPLIT_210(x) (x) MSGPACK_PP_SEQ_SPLIT_209 +# define MSGPACK_PP_SEQ_SPLIT_211(x) (x) MSGPACK_PP_SEQ_SPLIT_210 +# define MSGPACK_PP_SEQ_SPLIT_212(x) (x) MSGPACK_PP_SEQ_SPLIT_211 +# define MSGPACK_PP_SEQ_SPLIT_213(x) (x) MSGPACK_PP_SEQ_SPLIT_212 +# define MSGPACK_PP_SEQ_SPLIT_214(x) (x) MSGPACK_PP_SEQ_SPLIT_213 +# define MSGPACK_PP_SEQ_SPLIT_215(x) (x) MSGPACK_PP_SEQ_SPLIT_214 +# define MSGPACK_PP_SEQ_SPLIT_216(x) (x) MSGPACK_PP_SEQ_SPLIT_215 +# define MSGPACK_PP_SEQ_SPLIT_217(x) (x) MSGPACK_PP_SEQ_SPLIT_216 +# define MSGPACK_PP_SEQ_SPLIT_218(x) (x) MSGPACK_PP_SEQ_SPLIT_217 +# define MSGPACK_PP_SEQ_SPLIT_219(x) (x) MSGPACK_PP_SEQ_SPLIT_218 +# define MSGPACK_PP_SEQ_SPLIT_220(x) (x) MSGPACK_PP_SEQ_SPLIT_219 +# define MSGPACK_PP_SEQ_SPLIT_221(x) (x) MSGPACK_PP_SEQ_SPLIT_220 +# define MSGPACK_PP_SEQ_SPLIT_222(x) (x) MSGPACK_PP_SEQ_SPLIT_221 +# define MSGPACK_PP_SEQ_SPLIT_223(x) (x) MSGPACK_PP_SEQ_SPLIT_222 +# define MSGPACK_PP_SEQ_SPLIT_224(x) (x) MSGPACK_PP_SEQ_SPLIT_223 +# define MSGPACK_PP_SEQ_SPLIT_225(x) (x) MSGPACK_PP_SEQ_SPLIT_224 +# define MSGPACK_PP_SEQ_SPLIT_226(x) (x) MSGPACK_PP_SEQ_SPLIT_225 +# define MSGPACK_PP_SEQ_SPLIT_227(x) (x) MSGPACK_PP_SEQ_SPLIT_226 +# define MSGPACK_PP_SEQ_SPLIT_228(x) (x) MSGPACK_PP_SEQ_SPLIT_227 +# define MSGPACK_PP_SEQ_SPLIT_229(x) (x) MSGPACK_PP_SEQ_SPLIT_228 +# define MSGPACK_PP_SEQ_SPLIT_230(x) (x) MSGPACK_PP_SEQ_SPLIT_229 +# define MSGPACK_PP_SEQ_SPLIT_231(x) (x) MSGPACK_PP_SEQ_SPLIT_230 +# define MSGPACK_PP_SEQ_SPLIT_232(x) (x) MSGPACK_PP_SEQ_SPLIT_231 +# define MSGPACK_PP_SEQ_SPLIT_233(x) (x) MSGPACK_PP_SEQ_SPLIT_232 +# define MSGPACK_PP_SEQ_SPLIT_234(x) (x) MSGPACK_PP_SEQ_SPLIT_233 +# define MSGPACK_PP_SEQ_SPLIT_235(x) (x) MSGPACK_PP_SEQ_SPLIT_234 +# define MSGPACK_PP_SEQ_SPLIT_236(x) (x) MSGPACK_PP_SEQ_SPLIT_235 +# define MSGPACK_PP_SEQ_SPLIT_237(x) (x) MSGPACK_PP_SEQ_SPLIT_236 +# define MSGPACK_PP_SEQ_SPLIT_238(x) (x) MSGPACK_PP_SEQ_SPLIT_237 +# define MSGPACK_PP_SEQ_SPLIT_239(x) (x) MSGPACK_PP_SEQ_SPLIT_238 +# define MSGPACK_PP_SEQ_SPLIT_240(x) (x) MSGPACK_PP_SEQ_SPLIT_239 +# define MSGPACK_PP_SEQ_SPLIT_241(x) (x) MSGPACK_PP_SEQ_SPLIT_240 +# define MSGPACK_PP_SEQ_SPLIT_242(x) (x) MSGPACK_PP_SEQ_SPLIT_241 +# define MSGPACK_PP_SEQ_SPLIT_243(x) (x) MSGPACK_PP_SEQ_SPLIT_242 +# define MSGPACK_PP_SEQ_SPLIT_244(x) (x) MSGPACK_PP_SEQ_SPLIT_243 +# define MSGPACK_PP_SEQ_SPLIT_245(x) (x) MSGPACK_PP_SEQ_SPLIT_244 +# define MSGPACK_PP_SEQ_SPLIT_246(x) (x) MSGPACK_PP_SEQ_SPLIT_245 +# define MSGPACK_PP_SEQ_SPLIT_247(x) (x) MSGPACK_PP_SEQ_SPLIT_246 +# define MSGPACK_PP_SEQ_SPLIT_248(x) (x) MSGPACK_PP_SEQ_SPLIT_247 +# define MSGPACK_PP_SEQ_SPLIT_249(x) (x) MSGPACK_PP_SEQ_SPLIT_248 +# define MSGPACK_PP_SEQ_SPLIT_250(x) (x) MSGPACK_PP_SEQ_SPLIT_249 +# define MSGPACK_PP_SEQ_SPLIT_251(x) (x) MSGPACK_PP_SEQ_SPLIT_250 +# define MSGPACK_PP_SEQ_SPLIT_252(x) (x) MSGPACK_PP_SEQ_SPLIT_251 +# define MSGPACK_PP_SEQ_SPLIT_253(x) (x) MSGPACK_PP_SEQ_SPLIT_252 +# define MSGPACK_PP_SEQ_SPLIT_254(x) (x) MSGPACK_PP_SEQ_SPLIT_253 +# define MSGPACK_PP_SEQ_SPLIT_255(x) (x) MSGPACK_PP_SEQ_SPLIT_254 +# define MSGPACK_PP_SEQ_SPLIT_256(x) (x) MSGPACK_PP_SEQ_SPLIT_255 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/elem.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/elem.hpp new file mode 100644 index 000000000000..b70a5438ce01 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/elem.hpp @@ -0,0 +1,304 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_ELEM_HPP +# define MSGPACK_PREPROCESSOR_SEQ_ELEM_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_ELEM */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_SEQ_ELEM(i, seq) MSGPACK_PP_SEQ_ELEM_I(i, seq) +# else +# define MSGPACK_PP_SEQ_ELEM(i, seq) MSGPACK_PP_SEQ_ELEM_I((i, seq)) +# endif +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_SEQ_ELEM_I(i, seq) MSGPACK_PP_SEQ_ELEM_II((MSGPACK_PP_SEQ_ELEM_ ## i seq)) +# define MSGPACK_PP_SEQ_ELEM_II(res) MSGPACK_PP_SEQ_ELEM_IV(MSGPACK_PP_SEQ_ELEM_III res) +# define MSGPACK_PP_SEQ_ELEM_III(x, _) x MSGPACK_PP_EMPTY() +# define MSGPACK_PP_SEQ_ELEM_IV(x) x +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_SEQ_ELEM_I(par) MSGPACK_PP_SEQ_ELEM_II ## par +# define MSGPACK_PP_SEQ_ELEM_II(i, seq) MSGPACK_PP_SEQ_ELEM_III(MSGPACK_PP_SEQ_ELEM_ ## i ## seq) +# define MSGPACK_PP_SEQ_ELEM_III(im) MSGPACK_PP_SEQ_ELEM_IV(im) +# define MSGPACK_PP_SEQ_ELEM_IV(x, _) x +# else +# if defined(__IBMC__) || defined(__IBMCPP__) +# define MSGPACK_PP_SEQ_ELEM_I(i, seq) MSGPACK_PP_SEQ_ELEM_II(MSGPACK_PP_CAT(MSGPACK_PP_SEQ_ELEM_ ## i, seq)) +# else +# define MSGPACK_PP_SEQ_ELEM_I(i, seq) MSGPACK_PP_SEQ_ELEM_II(MSGPACK_PP_SEQ_ELEM_ ## i seq) +# endif +# define MSGPACK_PP_SEQ_ELEM_II(im) MSGPACK_PP_SEQ_ELEM_III(im) +# define MSGPACK_PP_SEQ_ELEM_III(x, _) x +# endif +# +# define MSGPACK_PP_SEQ_ELEM_0(x) x, MSGPACK_PP_NIL +# define MSGPACK_PP_SEQ_ELEM_1(_) MSGPACK_PP_SEQ_ELEM_0 +# define MSGPACK_PP_SEQ_ELEM_2(_) MSGPACK_PP_SEQ_ELEM_1 +# define MSGPACK_PP_SEQ_ELEM_3(_) MSGPACK_PP_SEQ_ELEM_2 +# define MSGPACK_PP_SEQ_ELEM_4(_) MSGPACK_PP_SEQ_ELEM_3 +# define MSGPACK_PP_SEQ_ELEM_5(_) MSGPACK_PP_SEQ_ELEM_4 +# define MSGPACK_PP_SEQ_ELEM_6(_) MSGPACK_PP_SEQ_ELEM_5 +# define MSGPACK_PP_SEQ_ELEM_7(_) MSGPACK_PP_SEQ_ELEM_6 +# define MSGPACK_PP_SEQ_ELEM_8(_) MSGPACK_PP_SEQ_ELEM_7 +# define MSGPACK_PP_SEQ_ELEM_9(_) MSGPACK_PP_SEQ_ELEM_8 +# define MSGPACK_PP_SEQ_ELEM_10(_) MSGPACK_PP_SEQ_ELEM_9 +# define MSGPACK_PP_SEQ_ELEM_11(_) MSGPACK_PP_SEQ_ELEM_10 +# define MSGPACK_PP_SEQ_ELEM_12(_) MSGPACK_PP_SEQ_ELEM_11 +# define MSGPACK_PP_SEQ_ELEM_13(_) MSGPACK_PP_SEQ_ELEM_12 +# define MSGPACK_PP_SEQ_ELEM_14(_) MSGPACK_PP_SEQ_ELEM_13 +# define MSGPACK_PP_SEQ_ELEM_15(_) MSGPACK_PP_SEQ_ELEM_14 +# define MSGPACK_PP_SEQ_ELEM_16(_) MSGPACK_PP_SEQ_ELEM_15 +# define MSGPACK_PP_SEQ_ELEM_17(_) MSGPACK_PP_SEQ_ELEM_16 +# define MSGPACK_PP_SEQ_ELEM_18(_) MSGPACK_PP_SEQ_ELEM_17 +# define MSGPACK_PP_SEQ_ELEM_19(_) MSGPACK_PP_SEQ_ELEM_18 +# define MSGPACK_PP_SEQ_ELEM_20(_) MSGPACK_PP_SEQ_ELEM_19 +# define MSGPACK_PP_SEQ_ELEM_21(_) MSGPACK_PP_SEQ_ELEM_20 +# define MSGPACK_PP_SEQ_ELEM_22(_) MSGPACK_PP_SEQ_ELEM_21 +# define MSGPACK_PP_SEQ_ELEM_23(_) MSGPACK_PP_SEQ_ELEM_22 +# define MSGPACK_PP_SEQ_ELEM_24(_) MSGPACK_PP_SEQ_ELEM_23 +# define MSGPACK_PP_SEQ_ELEM_25(_) MSGPACK_PP_SEQ_ELEM_24 +# define MSGPACK_PP_SEQ_ELEM_26(_) MSGPACK_PP_SEQ_ELEM_25 +# define MSGPACK_PP_SEQ_ELEM_27(_) MSGPACK_PP_SEQ_ELEM_26 +# define MSGPACK_PP_SEQ_ELEM_28(_) MSGPACK_PP_SEQ_ELEM_27 +# define MSGPACK_PP_SEQ_ELEM_29(_) MSGPACK_PP_SEQ_ELEM_28 +# define MSGPACK_PP_SEQ_ELEM_30(_) MSGPACK_PP_SEQ_ELEM_29 +# define MSGPACK_PP_SEQ_ELEM_31(_) MSGPACK_PP_SEQ_ELEM_30 +# define MSGPACK_PP_SEQ_ELEM_32(_) MSGPACK_PP_SEQ_ELEM_31 +# define MSGPACK_PP_SEQ_ELEM_33(_) MSGPACK_PP_SEQ_ELEM_32 +# define MSGPACK_PP_SEQ_ELEM_34(_) MSGPACK_PP_SEQ_ELEM_33 +# define MSGPACK_PP_SEQ_ELEM_35(_) MSGPACK_PP_SEQ_ELEM_34 +# define MSGPACK_PP_SEQ_ELEM_36(_) MSGPACK_PP_SEQ_ELEM_35 +# define MSGPACK_PP_SEQ_ELEM_37(_) MSGPACK_PP_SEQ_ELEM_36 +# define MSGPACK_PP_SEQ_ELEM_38(_) MSGPACK_PP_SEQ_ELEM_37 +# define MSGPACK_PP_SEQ_ELEM_39(_) MSGPACK_PP_SEQ_ELEM_38 +# define MSGPACK_PP_SEQ_ELEM_40(_) MSGPACK_PP_SEQ_ELEM_39 +# define MSGPACK_PP_SEQ_ELEM_41(_) MSGPACK_PP_SEQ_ELEM_40 +# define MSGPACK_PP_SEQ_ELEM_42(_) MSGPACK_PP_SEQ_ELEM_41 +# define MSGPACK_PP_SEQ_ELEM_43(_) MSGPACK_PP_SEQ_ELEM_42 +# define MSGPACK_PP_SEQ_ELEM_44(_) MSGPACK_PP_SEQ_ELEM_43 +# define MSGPACK_PP_SEQ_ELEM_45(_) MSGPACK_PP_SEQ_ELEM_44 +# define MSGPACK_PP_SEQ_ELEM_46(_) MSGPACK_PP_SEQ_ELEM_45 +# define MSGPACK_PP_SEQ_ELEM_47(_) MSGPACK_PP_SEQ_ELEM_46 +# define MSGPACK_PP_SEQ_ELEM_48(_) MSGPACK_PP_SEQ_ELEM_47 +# define MSGPACK_PP_SEQ_ELEM_49(_) MSGPACK_PP_SEQ_ELEM_48 +# define MSGPACK_PP_SEQ_ELEM_50(_) MSGPACK_PP_SEQ_ELEM_49 +# define MSGPACK_PP_SEQ_ELEM_51(_) MSGPACK_PP_SEQ_ELEM_50 +# define MSGPACK_PP_SEQ_ELEM_52(_) MSGPACK_PP_SEQ_ELEM_51 +# define MSGPACK_PP_SEQ_ELEM_53(_) MSGPACK_PP_SEQ_ELEM_52 +# define MSGPACK_PP_SEQ_ELEM_54(_) MSGPACK_PP_SEQ_ELEM_53 +# define MSGPACK_PP_SEQ_ELEM_55(_) MSGPACK_PP_SEQ_ELEM_54 +# define MSGPACK_PP_SEQ_ELEM_56(_) MSGPACK_PP_SEQ_ELEM_55 +# define MSGPACK_PP_SEQ_ELEM_57(_) MSGPACK_PP_SEQ_ELEM_56 +# define MSGPACK_PP_SEQ_ELEM_58(_) MSGPACK_PP_SEQ_ELEM_57 +# define MSGPACK_PP_SEQ_ELEM_59(_) MSGPACK_PP_SEQ_ELEM_58 +# define MSGPACK_PP_SEQ_ELEM_60(_) MSGPACK_PP_SEQ_ELEM_59 +# define MSGPACK_PP_SEQ_ELEM_61(_) MSGPACK_PP_SEQ_ELEM_60 +# define MSGPACK_PP_SEQ_ELEM_62(_) MSGPACK_PP_SEQ_ELEM_61 +# define MSGPACK_PP_SEQ_ELEM_63(_) MSGPACK_PP_SEQ_ELEM_62 +# define MSGPACK_PP_SEQ_ELEM_64(_) MSGPACK_PP_SEQ_ELEM_63 +# define MSGPACK_PP_SEQ_ELEM_65(_) MSGPACK_PP_SEQ_ELEM_64 +# define MSGPACK_PP_SEQ_ELEM_66(_) MSGPACK_PP_SEQ_ELEM_65 +# define MSGPACK_PP_SEQ_ELEM_67(_) MSGPACK_PP_SEQ_ELEM_66 +# define MSGPACK_PP_SEQ_ELEM_68(_) MSGPACK_PP_SEQ_ELEM_67 +# define MSGPACK_PP_SEQ_ELEM_69(_) MSGPACK_PP_SEQ_ELEM_68 +# define MSGPACK_PP_SEQ_ELEM_70(_) MSGPACK_PP_SEQ_ELEM_69 +# define MSGPACK_PP_SEQ_ELEM_71(_) MSGPACK_PP_SEQ_ELEM_70 +# define MSGPACK_PP_SEQ_ELEM_72(_) MSGPACK_PP_SEQ_ELEM_71 +# define MSGPACK_PP_SEQ_ELEM_73(_) MSGPACK_PP_SEQ_ELEM_72 +# define MSGPACK_PP_SEQ_ELEM_74(_) MSGPACK_PP_SEQ_ELEM_73 +# define MSGPACK_PP_SEQ_ELEM_75(_) MSGPACK_PP_SEQ_ELEM_74 +# define MSGPACK_PP_SEQ_ELEM_76(_) MSGPACK_PP_SEQ_ELEM_75 +# define MSGPACK_PP_SEQ_ELEM_77(_) MSGPACK_PP_SEQ_ELEM_76 +# define MSGPACK_PP_SEQ_ELEM_78(_) MSGPACK_PP_SEQ_ELEM_77 +# define MSGPACK_PP_SEQ_ELEM_79(_) MSGPACK_PP_SEQ_ELEM_78 +# define MSGPACK_PP_SEQ_ELEM_80(_) MSGPACK_PP_SEQ_ELEM_79 +# define MSGPACK_PP_SEQ_ELEM_81(_) MSGPACK_PP_SEQ_ELEM_80 +# define MSGPACK_PP_SEQ_ELEM_82(_) MSGPACK_PP_SEQ_ELEM_81 +# define MSGPACK_PP_SEQ_ELEM_83(_) MSGPACK_PP_SEQ_ELEM_82 +# define MSGPACK_PP_SEQ_ELEM_84(_) MSGPACK_PP_SEQ_ELEM_83 +# define MSGPACK_PP_SEQ_ELEM_85(_) MSGPACK_PP_SEQ_ELEM_84 +# define MSGPACK_PP_SEQ_ELEM_86(_) MSGPACK_PP_SEQ_ELEM_85 +# define MSGPACK_PP_SEQ_ELEM_87(_) MSGPACK_PP_SEQ_ELEM_86 +# define MSGPACK_PP_SEQ_ELEM_88(_) MSGPACK_PP_SEQ_ELEM_87 +# define MSGPACK_PP_SEQ_ELEM_89(_) MSGPACK_PP_SEQ_ELEM_88 +# define MSGPACK_PP_SEQ_ELEM_90(_) MSGPACK_PP_SEQ_ELEM_89 +# define MSGPACK_PP_SEQ_ELEM_91(_) MSGPACK_PP_SEQ_ELEM_90 +# define MSGPACK_PP_SEQ_ELEM_92(_) MSGPACK_PP_SEQ_ELEM_91 +# define MSGPACK_PP_SEQ_ELEM_93(_) MSGPACK_PP_SEQ_ELEM_92 +# define MSGPACK_PP_SEQ_ELEM_94(_) MSGPACK_PP_SEQ_ELEM_93 +# define MSGPACK_PP_SEQ_ELEM_95(_) MSGPACK_PP_SEQ_ELEM_94 +# define MSGPACK_PP_SEQ_ELEM_96(_) MSGPACK_PP_SEQ_ELEM_95 +# define MSGPACK_PP_SEQ_ELEM_97(_) MSGPACK_PP_SEQ_ELEM_96 +# define MSGPACK_PP_SEQ_ELEM_98(_) MSGPACK_PP_SEQ_ELEM_97 +# define MSGPACK_PP_SEQ_ELEM_99(_) MSGPACK_PP_SEQ_ELEM_98 +# define MSGPACK_PP_SEQ_ELEM_100(_) MSGPACK_PP_SEQ_ELEM_99 +# define MSGPACK_PP_SEQ_ELEM_101(_) MSGPACK_PP_SEQ_ELEM_100 +# define MSGPACK_PP_SEQ_ELEM_102(_) MSGPACK_PP_SEQ_ELEM_101 +# define MSGPACK_PP_SEQ_ELEM_103(_) MSGPACK_PP_SEQ_ELEM_102 +# define MSGPACK_PP_SEQ_ELEM_104(_) MSGPACK_PP_SEQ_ELEM_103 +# define MSGPACK_PP_SEQ_ELEM_105(_) MSGPACK_PP_SEQ_ELEM_104 +# define MSGPACK_PP_SEQ_ELEM_106(_) MSGPACK_PP_SEQ_ELEM_105 +# define MSGPACK_PP_SEQ_ELEM_107(_) MSGPACK_PP_SEQ_ELEM_106 +# define MSGPACK_PP_SEQ_ELEM_108(_) MSGPACK_PP_SEQ_ELEM_107 +# define MSGPACK_PP_SEQ_ELEM_109(_) MSGPACK_PP_SEQ_ELEM_108 +# define MSGPACK_PP_SEQ_ELEM_110(_) MSGPACK_PP_SEQ_ELEM_109 +# define MSGPACK_PP_SEQ_ELEM_111(_) MSGPACK_PP_SEQ_ELEM_110 +# define MSGPACK_PP_SEQ_ELEM_112(_) MSGPACK_PP_SEQ_ELEM_111 +# define MSGPACK_PP_SEQ_ELEM_113(_) MSGPACK_PP_SEQ_ELEM_112 +# define MSGPACK_PP_SEQ_ELEM_114(_) MSGPACK_PP_SEQ_ELEM_113 +# define MSGPACK_PP_SEQ_ELEM_115(_) MSGPACK_PP_SEQ_ELEM_114 +# define MSGPACK_PP_SEQ_ELEM_116(_) MSGPACK_PP_SEQ_ELEM_115 +# define MSGPACK_PP_SEQ_ELEM_117(_) MSGPACK_PP_SEQ_ELEM_116 +# define MSGPACK_PP_SEQ_ELEM_118(_) MSGPACK_PP_SEQ_ELEM_117 +# define MSGPACK_PP_SEQ_ELEM_119(_) MSGPACK_PP_SEQ_ELEM_118 +# define MSGPACK_PP_SEQ_ELEM_120(_) MSGPACK_PP_SEQ_ELEM_119 +# define MSGPACK_PP_SEQ_ELEM_121(_) MSGPACK_PP_SEQ_ELEM_120 +# define MSGPACK_PP_SEQ_ELEM_122(_) MSGPACK_PP_SEQ_ELEM_121 +# define MSGPACK_PP_SEQ_ELEM_123(_) MSGPACK_PP_SEQ_ELEM_122 +# define MSGPACK_PP_SEQ_ELEM_124(_) MSGPACK_PP_SEQ_ELEM_123 +# define MSGPACK_PP_SEQ_ELEM_125(_) MSGPACK_PP_SEQ_ELEM_124 +# define MSGPACK_PP_SEQ_ELEM_126(_) MSGPACK_PP_SEQ_ELEM_125 +# define MSGPACK_PP_SEQ_ELEM_127(_) MSGPACK_PP_SEQ_ELEM_126 +# define MSGPACK_PP_SEQ_ELEM_128(_) MSGPACK_PP_SEQ_ELEM_127 +# define MSGPACK_PP_SEQ_ELEM_129(_) MSGPACK_PP_SEQ_ELEM_128 +# define MSGPACK_PP_SEQ_ELEM_130(_) MSGPACK_PP_SEQ_ELEM_129 +# define MSGPACK_PP_SEQ_ELEM_131(_) MSGPACK_PP_SEQ_ELEM_130 +# define MSGPACK_PP_SEQ_ELEM_132(_) MSGPACK_PP_SEQ_ELEM_131 +# define MSGPACK_PP_SEQ_ELEM_133(_) MSGPACK_PP_SEQ_ELEM_132 +# define MSGPACK_PP_SEQ_ELEM_134(_) MSGPACK_PP_SEQ_ELEM_133 +# define MSGPACK_PP_SEQ_ELEM_135(_) MSGPACK_PP_SEQ_ELEM_134 +# define MSGPACK_PP_SEQ_ELEM_136(_) MSGPACK_PP_SEQ_ELEM_135 +# define MSGPACK_PP_SEQ_ELEM_137(_) MSGPACK_PP_SEQ_ELEM_136 +# define MSGPACK_PP_SEQ_ELEM_138(_) MSGPACK_PP_SEQ_ELEM_137 +# define MSGPACK_PP_SEQ_ELEM_139(_) MSGPACK_PP_SEQ_ELEM_138 +# define MSGPACK_PP_SEQ_ELEM_140(_) MSGPACK_PP_SEQ_ELEM_139 +# define MSGPACK_PP_SEQ_ELEM_141(_) MSGPACK_PP_SEQ_ELEM_140 +# define MSGPACK_PP_SEQ_ELEM_142(_) MSGPACK_PP_SEQ_ELEM_141 +# define MSGPACK_PP_SEQ_ELEM_143(_) MSGPACK_PP_SEQ_ELEM_142 +# define MSGPACK_PP_SEQ_ELEM_144(_) MSGPACK_PP_SEQ_ELEM_143 +# define MSGPACK_PP_SEQ_ELEM_145(_) MSGPACK_PP_SEQ_ELEM_144 +# define MSGPACK_PP_SEQ_ELEM_146(_) MSGPACK_PP_SEQ_ELEM_145 +# define MSGPACK_PP_SEQ_ELEM_147(_) MSGPACK_PP_SEQ_ELEM_146 +# define MSGPACK_PP_SEQ_ELEM_148(_) MSGPACK_PP_SEQ_ELEM_147 +# define MSGPACK_PP_SEQ_ELEM_149(_) MSGPACK_PP_SEQ_ELEM_148 +# define MSGPACK_PP_SEQ_ELEM_150(_) MSGPACK_PP_SEQ_ELEM_149 +# define MSGPACK_PP_SEQ_ELEM_151(_) MSGPACK_PP_SEQ_ELEM_150 +# define MSGPACK_PP_SEQ_ELEM_152(_) MSGPACK_PP_SEQ_ELEM_151 +# define MSGPACK_PP_SEQ_ELEM_153(_) MSGPACK_PP_SEQ_ELEM_152 +# define MSGPACK_PP_SEQ_ELEM_154(_) MSGPACK_PP_SEQ_ELEM_153 +# define MSGPACK_PP_SEQ_ELEM_155(_) MSGPACK_PP_SEQ_ELEM_154 +# define MSGPACK_PP_SEQ_ELEM_156(_) MSGPACK_PP_SEQ_ELEM_155 +# define MSGPACK_PP_SEQ_ELEM_157(_) MSGPACK_PP_SEQ_ELEM_156 +# define MSGPACK_PP_SEQ_ELEM_158(_) MSGPACK_PP_SEQ_ELEM_157 +# define MSGPACK_PP_SEQ_ELEM_159(_) MSGPACK_PP_SEQ_ELEM_158 +# define MSGPACK_PP_SEQ_ELEM_160(_) MSGPACK_PP_SEQ_ELEM_159 +# define MSGPACK_PP_SEQ_ELEM_161(_) MSGPACK_PP_SEQ_ELEM_160 +# define MSGPACK_PP_SEQ_ELEM_162(_) MSGPACK_PP_SEQ_ELEM_161 +# define MSGPACK_PP_SEQ_ELEM_163(_) MSGPACK_PP_SEQ_ELEM_162 +# define MSGPACK_PP_SEQ_ELEM_164(_) MSGPACK_PP_SEQ_ELEM_163 +# define MSGPACK_PP_SEQ_ELEM_165(_) MSGPACK_PP_SEQ_ELEM_164 +# define MSGPACK_PP_SEQ_ELEM_166(_) MSGPACK_PP_SEQ_ELEM_165 +# define MSGPACK_PP_SEQ_ELEM_167(_) MSGPACK_PP_SEQ_ELEM_166 +# define MSGPACK_PP_SEQ_ELEM_168(_) MSGPACK_PP_SEQ_ELEM_167 +# define MSGPACK_PP_SEQ_ELEM_169(_) MSGPACK_PP_SEQ_ELEM_168 +# define MSGPACK_PP_SEQ_ELEM_170(_) MSGPACK_PP_SEQ_ELEM_169 +# define MSGPACK_PP_SEQ_ELEM_171(_) MSGPACK_PP_SEQ_ELEM_170 +# define MSGPACK_PP_SEQ_ELEM_172(_) MSGPACK_PP_SEQ_ELEM_171 +# define MSGPACK_PP_SEQ_ELEM_173(_) MSGPACK_PP_SEQ_ELEM_172 +# define MSGPACK_PP_SEQ_ELEM_174(_) MSGPACK_PP_SEQ_ELEM_173 +# define MSGPACK_PP_SEQ_ELEM_175(_) MSGPACK_PP_SEQ_ELEM_174 +# define MSGPACK_PP_SEQ_ELEM_176(_) MSGPACK_PP_SEQ_ELEM_175 +# define MSGPACK_PP_SEQ_ELEM_177(_) MSGPACK_PP_SEQ_ELEM_176 +# define MSGPACK_PP_SEQ_ELEM_178(_) MSGPACK_PP_SEQ_ELEM_177 +# define MSGPACK_PP_SEQ_ELEM_179(_) MSGPACK_PP_SEQ_ELEM_178 +# define MSGPACK_PP_SEQ_ELEM_180(_) MSGPACK_PP_SEQ_ELEM_179 +# define MSGPACK_PP_SEQ_ELEM_181(_) MSGPACK_PP_SEQ_ELEM_180 +# define MSGPACK_PP_SEQ_ELEM_182(_) MSGPACK_PP_SEQ_ELEM_181 +# define MSGPACK_PP_SEQ_ELEM_183(_) MSGPACK_PP_SEQ_ELEM_182 +# define MSGPACK_PP_SEQ_ELEM_184(_) MSGPACK_PP_SEQ_ELEM_183 +# define MSGPACK_PP_SEQ_ELEM_185(_) MSGPACK_PP_SEQ_ELEM_184 +# define MSGPACK_PP_SEQ_ELEM_186(_) MSGPACK_PP_SEQ_ELEM_185 +# define MSGPACK_PP_SEQ_ELEM_187(_) MSGPACK_PP_SEQ_ELEM_186 +# define MSGPACK_PP_SEQ_ELEM_188(_) MSGPACK_PP_SEQ_ELEM_187 +# define MSGPACK_PP_SEQ_ELEM_189(_) MSGPACK_PP_SEQ_ELEM_188 +# define MSGPACK_PP_SEQ_ELEM_190(_) MSGPACK_PP_SEQ_ELEM_189 +# define MSGPACK_PP_SEQ_ELEM_191(_) MSGPACK_PP_SEQ_ELEM_190 +# define MSGPACK_PP_SEQ_ELEM_192(_) MSGPACK_PP_SEQ_ELEM_191 +# define MSGPACK_PP_SEQ_ELEM_193(_) MSGPACK_PP_SEQ_ELEM_192 +# define MSGPACK_PP_SEQ_ELEM_194(_) MSGPACK_PP_SEQ_ELEM_193 +# define MSGPACK_PP_SEQ_ELEM_195(_) MSGPACK_PP_SEQ_ELEM_194 +# define MSGPACK_PP_SEQ_ELEM_196(_) MSGPACK_PP_SEQ_ELEM_195 +# define MSGPACK_PP_SEQ_ELEM_197(_) MSGPACK_PP_SEQ_ELEM_196 +# define MSGPACK_PP_SEQ_ELEM_198(_) MSGPACK_PP_SEQ_ELEM_197 +# define MSGPACK_PP_SEQ_ELEM_199(_) MSGPACK_PP_SEQ_ELEM_198 +# define MSGPACK_PP_SEQ_ELEM_200(_) MSGPACK_PP_SEQ_ELEM_199 +# define MSGPACK_PP_SEQ_ELEM_201(_) MSGPACK_PP_SEQ_ELEM_200 +# define MSGPACK_PP_SEQ_ELEM_202(_) MSGPACK_PP_SEQ_ELEM_201 +# define MSGPACK_PP_SEQ_ELEM_203(_) MSGPACK_PP_SEQ_ELEM_202 +# define MSGPACK_PP_SEQ_ELEM_204(_) MSGPACK_PP_SEQ_ELEM_203 +# define MSGPACK_PP_SEQ_ELEM_205(_) MSGPACK_PP_SEQ_ELEM_204 +# define MSGPACK_PP_SEQ_ELEM_206(_) MSGPACK_PP_SEQ_ELEM_205 +# define MSGPACK_PP_SEQ_ELEM_207(_) MSGPACK_PP_SEQ_ELEM_206 +# define MSGPACK_PP_SEQ_ELEM_208(_) MSGPACK_PP_SEQ_ELEM_207 +# define MSGPACK_PP_SEQ_ELEM_209(_) MSGPACK_PP_SEQ_ELEM_208 +# define MSGPACK_PP_SEQ_ELEM_210(_) MSGPACK_PP_SEQ_ELEM_209 +# define MSGPACK_PP_SEQ_ELEM_211(_) MSGPACK_PP_SEQ_ELEM_210 +# define MSGPACK_PP_SEQ_ELEM_212(_) MSGPACK_PP_SEQ_ELEM_211 +# define MSGPACK_PP_SEQ_ELEM_213(_) MSGPACK_PP_SEQ_ELEM_212 +# define MSGPACK_PP_SEQ_ELEM_214(_) MSGPACK_PP_SEQ_ELEM_213 +# define MSGPACK_PP_SEQ_ELEM_215(_) MSGPACK_PP_SEQ_ELEM_214 +# define MSGPACK_PP_SEQ_ELEM_216(_) MSGPACK_PP_SEQ_ELEM_215 +# define MSGPACK_PP_SEQ_ELEM_217(_) MSGPACK_PP_SEQ_ELEM_216 +# define MSGPACK_PP_SEQ_ELEM_218(_) MSGPACK_PP_SEQ_ELEM_217 +# define MSGPACK_PP_SEQ_ELEM_219(_) MSGPACK_PP_SEQ_ELEM_218 +# define MSGPACK_PP_SEQ_ELEM_220(_) MSGPACK_PP_SEQ_ELEM_219 +# define MSGPACK_PP_SEQ_ELEM_221(_) MSGPACK_PP_SEQ_ELEM_220 +# define MSGPACK_PP_SEQ_ELEM_222(_) MSGPACK_PP_SEQ_ELEM_221 +# define MSGPACK_PP_SEQ_ELEM_223(_) MSGPACK_PP_SEQ_ELEM_222 +# define MSGPACK_PP_SEQ_ELEM_224(_) MSGPACK_PP_SEQ_ELEM_223 +# define MSGPACK_PP_SEQ_ELEM_225(_) MSGPACK_PP_SEQ_ELEM_224 +# define MSGPACK_PP_SEQ_ELEM_226(_) MSGPACK_PP_SEQ_ELEM_225 +# define MSGPACK_PP_SEQ_ELEM_227(_) MSGPACK_PP_SEQ_ELEM_226 +# define MSGPACK_PP_SEQ_ELEM_228(_) MSGPACK_PP_SEQ_ELEM_227 +# define MSGPACK_PP_SEQ_ELEM_229(_) MSGPACK_PP_SEQ_ELEM_228 +# define MSGPACK_PP_SEQ_ELEM_230(_) MSGPACK_PP_SEQ_ELEM_229 +# define MSGPACK_PP_SEQ_ELEM_231(_) MSGPACK_PP_SEQ_ELEM_230 +# define MSGPACK_PP_SEQ_ELEM_232(_) MSGPACK_PP_SEQ_ELEM_231 +# define MSGPACK_PP_SEQ_ELEM_233(_) MSGPACK_PP_SEQ_ELEM_232 +# define MSGPACK_PP_SEQ_ELEM_234(_) MSGPACK_PP_SEQ_ELEM_233 +# define MSGPACK_PP_SEQ_ELEM_235(_) MSGPACK_PP_SEQ_ELEM_234 +# define MSGPACK_PP_SEQ_ELEM_236(_) MSGPACK_PP_SEQ_ELEM_235 +# define MSGPACK_PP_SEQ_ELEM_237(_) MSGPACK_PP_SEQ_ELEM_236 +# define MSGPACK_PP_SEQ_ELEM_238(_) MSGPACK_PP_SEQ_ELEM_237 +# define MSGPACK_PP_SEQ_ELEM_239(_) MSGPACK_PP_SEQ_ELEM_238 +# define MSGPACK_PP_SEQ_ELEM_240(_) MSGPACK_PP_SEQ_ELEM_239 +# define MSGPACK_PP_SEQ_ELEM_241(_) MSGPACK_PP_SEQ_ELEM_240 +# define MSGPACK_PP_SEQ_ELEM_242(_) MSGPACK_PP_SEQ_ELEM_241 +# define MSGPACK_PP_SEQ_ELEM_243(_) MSGPACK_PP_SEQ_ELEM_242 +# define MSGPACK_PP_SEQ_ELEM_244(_) MSGPACK_PP_SEQ_ELEM_243 +# define MSGPACK_PP_SEQ_ELEM_245(_) MSGPACK_PP_SEQ_ELEM_244 +# define MSGPACK_PP_SEQ_ELEM_246(_) MSGPACK_PP_SEQ_ELEM_245 +# define MSGPACK_PP_SEQ_ELEM_247(_) MSGPACK_PP_SEQ_ELEM_246 +# define MSGPACK_PP_SEQ_ELEM_248(_) MSGPACK_PP_SEQ_ELEM_247 +# define MSGPACK_PP_SEQ_ELEM_249(_) MSGPACK_PP_SEQ_ELEM_248 +# define MSGPACK_PP_SEQ_ELEM_250(_) MSGPACK_PP_SEQ_ELEM_249 +# define MSGPACK_PP_SEQ_ELEM_251(_) MSGPACK_PP_SEQ_ELEM_250 +# define MSGPACK_PP_SEQ_ELEM_252(_) MSGPACK_PP_SEQ_ELEM_251 +# define MSGPACK_PP_SEQ_ELEM_253(_) MSGPACK_PP_SEQ_ELEM_252 +# define MSGPACK_PP_SEQ_ELEM_254(_) MSGPACK_PP_SEQ_ELEM_253 +# define MSGPACK_PP_SEQ_ELEM_255(_) MSGPACK_PP_SEQ_ELEM_254 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/enum.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/enum.hpp new file mode 100644 index 000000000000..4db9e9210667 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/enum.hpp @@ -0,0 +1,288 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_ENUM_HPP +# define MSGPACK_PREPROCESSOR_SEQ_ENUM_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_ENUM */ +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_ENUM(seq) MSGPACK_PP_SEQ_ENUM_I(seq) +# define MSGPACK_PP_SEQ_ENUM_I(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_ENUM_, MSGPACK_PP_SEQ_SIZE(seq)) seq +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_SEQ_ENUM(seq) MSGPACK_PP_SEQ_ENUM_I(MSGPACK_PP_SEQ_SIZE(seq), seq) +# define MSGPACK_PP_SEQ_ENUM_I(size, seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_ENUM_, size) seq +# else +# define MSGPACK_PP_SEQ_ENUM(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_ENUM_, MSGPACK_PP_SEQ_SIZE(seq)) seq +# endif +# +# define MSGPACK_PP_SEQ_ENUM_1(x) x +# define MSGPACK_PP_SEQ_ENUM_2(x) x, MSGPACK_PP_SEQ_ENUM_1 +# define MSGPACK_PP_SEQ_ENUM_3(x) x, MSGPACK_PP_SEQ_ENUM_2 +# define MSGPACK_PP_SEQ_ENUM_4(x) x, MSGPACK_PP_SEQ_ENUM_3 +# define MSGPACK_PP_SEQ_ENUM_5(x) x, MSGPACK_PP_SEQ_ENUM_4 +# define MSGPACK_PP_SEQ_ENUM_6(x) x, MSGPACK_PP_SEQ_ENUM_5 +# define MSGPACK_PP_SEQ_ENUM_7(x) x, MSGPACK_PP_SEQ_ENUM_6 +# define MSGPACK_PP_SEQ_ENUM_8(x) x, MSGPACK_PP_SEQ_ENUM_7 +# define MSGPACK_PP_SEQ_ENUM_9(x) x, MSGPACK_PP_SEQ_ENUM_8 +# define MSGPACK_PP_SEQ_ENUM_10(x) x, MSGPACK_PP_SEQ_ENUM_9 +# define MSGPACK_PP_SEQ_ENUM_11(x) x, MSGPACK_PP_SEQ_ENUM_10 +# define MSGPACK_PP_SEQ_ENUM_12(x) x, MSGPACK_PP_SEQ_ENUM_11 +# define MSGPACK_PP_SEQ_ENUM_13(x) x, MSGPACK_PP_SEQ_ENUM_12 +# define MSGPACK_PP_SEQ_ENUM_14(x) x, MSGPACK_PP_SEQ_ENUM_13 +# define MSGPACK_PP_SEQ_ENUM_15(x) x, MSGPACK_PP_SEQ_ENUM_14 +# define MSGPACK_PP_SEQ_ENUM_16(x) x, MSGPACK_PP_SEQ_ENUM_15 +# define MSGPACK_PP_SEQ_ENUM_17(x) x, MSGPACK_PP_SEQ_ENUM_16 +# define MSGPACK_PP_SEQ_ENUM_18(x) x, MSGPACK_PP_SEQ_ENUM_17 +# define MSGPACK_PP_SEQ_ENUM_19(x) x, MSGPACK_PP_SEQ_ENUM_18 +# define MSGPACK_PP_SEQ_ENUM_20(x) x, MSGPACK_PP_SEQ_ENUM_19 +# define MSGPACK_PP_SEQ_ENUM_21(x) x, MSGPACK_PP_SEQ_ENUM_20 +# define MSGPACK_PP_SEQ_ENUM_22(x) x, MSGPACK_PP_SEQ_ENUM_21 +# define MSGPACK_PP_SEQ_ENUM_23(x) x, MSGPACK_PP_SEQ_ENUM_22 +# define MSGPACK_PP_SEQ_ENUM_24(x) x, MSGPACK_PP_SEQ_ENUM_23 +# define MSGPACK_PP_SEQ_ENUM_25(x) x, MSGPACK_PP_SEQ_ENUM_24 +# define MSGPACK_PP_SEQ_ENUM_26(x) x, MSGPACK_PP_SEQ_ENUM_25 +# define MSGPACK_PP_SEQ_ENUM_27(x) x, MSGPACK_PP_SEQ_ENUM_26 +# define MSGPACK_PP_SEQ_ENUM_28(x) x, MSGPACK_PP_SEQ_ENUM_27 +# define MSGPACK_PP_SEQ_ENUM_29(x) x, MSGPACK_PP_SEQ_ENUM_28 +# define MSGPACK_PP_SEQ_ENUM_30(x) x, MSGPACK_PP_SEQ_ENUM_29 +# define MSGPACK_PP_SEQ_ENUM_31(x) x, MSGPACK_PP_SEQ_ENUM_30 +# define MSGPACK_PP_SEQ_ENUM_32(x) x, MSGPACK_PP_SEQ_ENUM_31 +# define MSGPACK_PP_SEQ_ENUM_33(x) x, MSGPACK_PP_SEQ_ENUM_32 +# define MSGPACK_PP_SEQ_ENUM_34(x) x, MSGPACK_PP_SEQ_ENUM_33 +# define MSGPACK_PP_SEQ_ENUM_35(x) x, MSGPACK_PP_SEQ_ENUM_34 +# define MSGPACK_PP_SEQ_ENUM_36(x) x, MSGPACK_PP_SEQ_ENUM_35 +# define MSGPACK_PP_SEQ_ENUM_37(x) x, MSGPACK_PP_SEQ_ENUM_36 +# define MSGPACK_PP_SEQ_ENUM_38(x) x, MSGPACK_PP_SEQ_ENUM_37 +# define MSGPACK_PP_SEQ_ENUM_39(x) x, MSGPACK_PP_SEQ_ENUM_38 +# define MSGPACK_PP_SEQ_ENUM_40(x) x, MSGPACK_PP_SEQ_ENUM_39 +# define MSGPACK_PP_SEQ_ENUM_41(x) x, MSGPACK_PP_SEQ_ENUM_40 +# define MSGPACK_PP_SEQ_ENUM_42(x) x, MSGPACK_PP_SEQ_ENUM_41 +# define MSGPACK_PP_SEQ_ENUM_43(x) x, MSGPACK_PP_SEQ_ENUM_42 +# define MSGPACK_PP_SEQ_ENUM_44(x) x, MSGPACK_PP_SEQ_ENUM_43 +# define MSGPACK_PP_SEQ_ENUM_45(x) x, MSGPACK_PP_SEQ_ENUM_44 +# define MSGPACK_PP_SEQ_ENUM_46(x) x, MSGPACK_PP_SEQ_ENUM_45 +# define MSGPACK_PP_SEQ_ENUM_47(x) x, MSGPACK_PP_SEQ_ENUM_46 +# define MSGPACK_PP_SEQ_ENUM_48(x) x, MSGPACK_PP_SEQ_ENUM_47 +# define MSGPACK_PP_SEQ_ENUM_49(x) x, MSGPACK_PP_SEQ_ENUM_48 +# define MSGPACK_PP_SEQ_ENUM_50(x) x, MSGPACK_PP_SEQ_ENUM_49 +# define MSGPACK_PP_SEQ_ENUM_51(x) x, MSGPACK_PP_SEQ_ENUM_50 +# define MSGPACK_PP_SEQ_ENUM_52(x) x, MSGPACK_PP_SEQ_ENUM_51 +# define MSGPACK_PP_SEQ_ENUM_53(x) x, MSGPACK_PP_SEQ_ENUM_52 +# define MSGPACK_PP_SEQ_ENUM_54(x) x, MSGPACK_PP_SEQ_ENUM_53 +# define MSGPACK_PP_SEQ_ENUM_55(x) x, MSGPACK_PP_SEQ_ENUM_54 +# define MSGPACK_PP_SEQ_ENUM_56(x) x, MSGPACK_PP_SEQ_ENUM_55 +# define MSGPACK_PP_SEQ_ENUM_57(x) x, MSGPACK_PP_SEQ_ENUM_56 +# define MSGPACK_PP_SEQ_ENUM_58(x) x, MSGPACK_PP_SEQ_ENUM_57 +# define MSGPACK_PP_SEQ_ENUM_59(x) x, MSGPACK_PP_SEQ_ENUM_58 +# define MSGPACK_PP_SEQ_ENUM_60(x) x, MSGPACK_PP_SEQ_ENUM_59 +# define MSGPACK_PP_SEQ_ENUM_61(x) x, MSGPACK_PP_SEQ_ENUM_60 +# define MSGPACK_PP_SEQ_ENUM_62(x) x, MSGPACK_PP_SEQ_ENUM_61 +# define MSGPACK_PP_SEQ_ENUM_63(x) x, MSGPACK_PP_SEQ_ENUM_62 +# define MSGPACK_PP_SEQ_ENUM_64(x) x, MSGPACK_PP_SEQ_ENUM_63 +# define MSGPACK_PP_SEQ_ENUM_65(x) x, MSGPACK_PP_SEQ_ENUM_64 +# define MSGPACK_PP_SEQ_ENUM_66(x) x, MSGPACK_PP_SEQ_ENUM_65 +# define MSGPACK_PP_SEQ_ENUM_67(x) x, MSGPACK_PP_SEQ_ENUM_66 +# define MSGPACK_PP_SEQ_ENUM_68(x) x, MSGPACK_PP_SEQ_ENUM_67 +# define MSGPACK_PP_SEQ_ENUM_69(x) x, MSGPACK_PP_SEQ_ENUM_68 +# define MSGPACK_PP_SEQ_ENUM_70(x) x, MSGPACK_PP_SEQ_ENUM_69 +# define MSGPACK_PP_SEQ_ENUM_71(x) x, MSGPACK_PP_SEQ_ENUM_70 +# define MSGPACK_PP_SEQ_ENUM_72(x) x, MSGPACK_PP_SEQ_ENUM_71 +# define MSGPACK_PP_SEQ_ENUM_73(x) x, MSGPACK_PP_SEQ_ENUM_72 +# define MSGPACK_PP_SEQ_ENUM_74(x) x, MSGPACK_PP_SEQ_ENUM_73 +# define MSGPACK_PP_SEQ_ENUM_75(x) x, MSGPACK_PP_SEQ_ENUM_74 +# define MSGPACK_PP_SEQ_ENUM_76(x) x, MSGPACK_PP_SEQ_ENUM_75 +# define MSGPACK_PP_SEQ_ENUM_77(x) x, MSGPACK_PP_SEQ_ENUM_76 +# define MSGPACK_PP_SEQ_ENUM_78(x) x, MSGPACK_PP_SEQ_ENUM_77 +# define MSGPACK_PP_SEQ_ENUM_79(x) x, MSGPACK_PP_SEQ_ENUM_78 +# define MSGPACK_PP_SEQ_ENUM_80(x) x, MSGPACK_PP_SEQ_ENUM_79 +# define MSGPACK_PP_SEQ_ENUM_81(x) x, MSGPACK_PP_SEQ_ENUM_80 +# define MSGPACK_PP_SEQ_ENUM_82(x) x, MSGPACK_PP_SEQ_ENUM_81 +# define MSGPACK_PP_SEQ_ENUM_83(x) x, MSGPACK_PP_SEQ_ENUM_82 +# define MSGPACK_PP_SEQ_ENUM_84(x) x, MSGPACK_PP_SEQ_ENUM_83 +# define MSGPACK_PP_SEQ_ENUM_85(x) x, MSGPACK_PP_SEQ_ENUM_84 +# define MSGPACK_PP_SEQ_ENUM_86(x) x, MSGPACK_PP_SEQ_ENUM_85 +# define MSGPACK_PP_SEQ_ENUM_87(x) x, MSGPACK_PP_SEQ_ENUM_86 +# define MSGPACK_PP_SEQ_ENUM_88(x) x, MSGPACK_PP_SEQ_ENUM_87 +# define MSGPACK_PP_SEQ_ENUM_89(x) x, MSGPACK_PP_SEQ_ENUM_88 +# define MSGPACK_PP_SEQ_ENUM_90(x) x, MSGPACK_PP_SEQ_ENUM_89 +# define MSGPACK_PP_SEQ_ENUM_91(x) x, MSGPACK_PP_SEQ_ENUM_90 +# define MSGPACK_PP_SEQ_ENUM_92(x) x, MSGPACK_PP_SEQ_ENUM_91 +# define MSGPACK_PP_SEQ_ENUM_93(x) x, MSGPACK_PP_SEQ_ENUM_92 +# define MSGPACK_PP_SEQ_ENUM_94(x) x, MSGPACK_PP_SEQ_ENUM_93 +# define MSGPACK_PP_SEQ_ENUM_95(x) x, MSGPACK_PP_SEQ_ENUM_94 +# define MSGPACK_PP_SEQ_ENUM_96(x) x, MSGPACK_PP_SEQ_ENUM_95 +# define MSGPACK_PP_SEQ_ENUM_97(x) x, MSGPACK_PP_SEQ_ENUM_96 +# define MSGPACK_PP_SEQ_ENUM_98(x) x, MSGPACK_PP_SEQ_ENUM_97 +# define MSGPACK_PP_SEQ_ENUM_99(x) x, MSGPACK_PP_SEQ_ENUM_98 +# define MSGPACK_PP_SEQ_ENUM_100(x) x, MSGPACK_PP_SEQ_ENUM_99 +# define MSGPACK_PP_SEQ_ENUM_101(x) x, MSGPACK_PP_SEQ_ENUM_100 +# define MSGPACK_PP_SEQ_ENUM_102(x) x, MSGPACK_PP_SEQ_ENUM_101 +# define MSGPACK_PP_SEQ_ENUM_103(x) x, MSGPACK_PP_SEQ_ENUM_102 +# define MSGPACK_PP_SEQ_ENUM_104(x) x, MSGPACK_PP_SEQ_ENUM_103 +# define MSGPACK_PP_SEQ_ENUM_105(x) x, MSGPACK_PP_SEQ_ENUM_104 +# define MSGPACK_PP_SEQ_ENUM_106(x) x, MSGPACK_PP_SEQ_ENUM_105 +# define MSGPACK_PP_SEQ_ENUM_107(x) x, MSGPACK_PP_SEQ_ENUM_106 +# define MSGPACK_PP_SEQ_ENUM_108(x) x, MSGPACK_PP_SEQ_ENUM_107 +# define MSGPACK_PP_SEQ_ENUM_109(x) x, MSGPACK_PP_SEQ_ENUM_108 +# define MSGPACK_PP_SEQ_ENUM_110(x) x, MSGPACK_PP_SEQ_ENUM_109 +# define MSGPACK_PP_SEQ_ENUM_111(x) x, MSGPACK_PP_SEQ_ENUM_110 +# define MSGPACK_PP_SEQ_ENUM_112(x) x, MSGPACK_PP_SEQ_ENUM_111 +# define MSGPACK_PP_SEQ_ENUM_113(x) x, MSGPACK_PP_SEQ_ENUM_112 +# define MSGPACK_PP_SEQ_ENUM_114(x) x, MSGPACK_PP_SEQ_ENUM_113 +# define MSGPACK_PP_SEQ_ENUM_115(x) x, MSGPACK_PP_SEQ_ENUM_114 +# define MSGPACK_PP_SEQ_ENUM_116(x) x, MSGPACK_PP_SEQ_ENUM_115 +# define MSGPACK_PP_SEQ_ENUM_117(x) x, MSGPACK_PP_SEQ_ENUM_116 +# define MSGPACK_PP_SEQ_ENUM_118(x) x, MSGPACK_PP_SEQ_ENUM_117 +# define MSGPACK_PP_SEQ_ENUM_119(x) x, MSGPACK_PP_SEQ_ENUM_118 +# define MSGPACK_PP_SEQ_ENUM_120(x) x, MSGPACK_PP_SEQ_ENUM_119 +# define MSGPACK_PP_SEQ_ENUM_121(x) x, MSGPACK_PP_SEQ_ENUM_120 +# define MSGPACK_PP_SEQ_ENUM_122(x) x, MSGPACK_PP_SEQ_ENUM_121 +# define MSGPACK_PP_SEQ_ENUM_123(x) x, MSGPACK_PP_SEQ_ENUM_122 +# define MSGPACK_PP_SEQ_ENUM_124(x) x, MSGPACK_PP_SEQ_ENUM_123 +# define MSGPACK_PP_SEQ_ENUM_125(x) x, MSGPACK_PP_SEQ_ENUM_124 +# define MSGPACK_PP_SEQ_ENUM_126(x) x, MSGPACK_PP_SEQ_ENUM_125 +# define MSGPACK_PP_SEQ_ENUM_127(x) x, MSGPACK_PP_SEQ_ENUM_126 +# define MSGPACK_PP_SEQ_ENUM_128(x) x, MSGPACK_PP_SEQ_ENUM_127 +# define MSGPACK_PP_SEQ_ENUM_129(x) x, MSGPACK_PP_SEQ_ENUM_128 +# define MSGPACK_PP_SEQ_ENUM_130(x) x, MSGPACK_PP_SEQ_ENUM_129 +# define MSGPACK_PP_SEQ_ENUM_131(x) x, MSGPACK_PP_SEQ_ENUM_130 +# define MSGPACK_PP_SEQ_ENUM_132(x) x, MSGPACK_PP_SEQ_ENUM_131 +# define MSGPACK_PP_SEQ_ENUM_133(x) x, MSGPACK_PP_SEQ_ENUM_132 +# define MSGPACK_PP_SEQ_ENUM_134(x) x, MSGPACK_PP_SEQ_ENUM_133 +# define MSGPACK_PP_SEQ_ENUM_135(x) x, MSGPACK_PP_SEQ_ENUM_134 +# define MSGPACK_PP_SEQ_ENUM_136(x) x, MSGPACK_PP_SEQ_ENUM_135 +# define MSGPACK_PP_SEQ_ENUM_137(x) x, MSGPACK_PP_SEQ_ENUM_136 +# define MSGPACK_PP_SEQ_ENUM_138(x) x, MSGPACK_PP_SEQ_ENUM_137 +# define MSGPACK_PP_SEQ_ENUM_139(x) x, MSGPACK_PP_SEQ_ENUM_138 +# define MSGPACK_PP_SEQ_ENUM_140(x) x, MSGPACK_PP_SEQ_ENUM_139 +# define MSGPACK_PP_SEQ_ENUM_141(x) x, MSGPACK_PP_SEQ_ENUM_140 +# define MSGPACK_PP_SEQ_ENUM_142(x) x, MSGPACK_PP_SEQ_ENUM_141 +# define MSGPACK_PP_SEQ_ENUM_143(x) x, MSGPACK_PP_SEQ_ENUM_142 +# define MSGPACK_PP_SEQ_ENUM_144(x) x, MSGPACK_PP_SEQ_ENUM_143 +# define MSGPACK_PP_SEQ_ENUM_145(x) x, MSGPACK_PP_SEQ_ENUM_144 +# define MSGPACK_PP_SEQ_ENUM_146(x) x, MSGPACK_PP_SEQ_ENUM_145 +# define MSGPACK_PP_SEQ_ENUM_147(x) x, MSGPACK_PP_SEQ_ENUM_146 +# define MSGPACK_PP_SEQ_ENUM_148(x) x, MSGPACK_PP_SEQ_ENUM_147 +# define MSGPACK_PP_SEQ_ENUM_149(x) x, MSGPACK_PP_SEQ_ENUM_148 +# define MSGPACK_PP_SEQ_ENUM_150(x) x, MSGPACK_PP_SEQ_ENUM_149 +# define MSGPACK_PP_SEQ_ENUM_151(x) x, MSGPACK_PP_SEQ_ENUM_150 +# define MSGPACK_PP_SEQ_ENUM_152(x) x, MSGPACK_PP_SEQ_ENUM_151 +# define MSGPACK_PP_SEQ_ENUM_153(x) x, MSGPACK_PP_SEQ_ENUM_152 +# define MSGPACK_PP_SEQ_ENUM_154(x) x, MSGPACK_PP_SEQ_ENUM_153 +# define MSGPACK_PP_SEQ_ENUM_155(x) x, MSGPACK_PP_SEQ_ENUM_154 +# define MSGPACK_PP_SEQ_ENUM_156(x) x, MSGPACK_PP_SEQ_ENUM_155 +# define MSGPACK_PP_SEQ_ENUM_157(x) x, MSGPACK_PP_SEQ_ENUM_156 +# define MSGPACK_PP_SEQ_ENUM_158(x) x, MSGPACK_PP_SEQ_ENUM_157 +# define MSGPACK_PP_SEQ_ENUM_159(x) x, MSGPACK_PP_SEQ_ENUM_158 +# define MSGPACK_PP_SEQ_ENUM_160(x) x, MSGPACK_PP_SEQ_ENUM_159 +# define MSGPACK_PP_SEQ_ENUM_161(x) x, MSGPACK_PP_SEQ_ENUM_160 +# define MSGPACK_PP_SEQ_ENUM_162(x) x, MSGPACK_PP_SEQ_ENUM_161 +# define MSGPACK_PP_SEQ_ENUM_163(x) x, MSGPACK_PP_SEQ_ENUM_162 +# define MSGPACK_PP_SEQ_ENUM_164(x) x, MSGPACK_PP_SEQ_ENUM_163 +# define MSGPACK_PP_SEQ_ENUM_165(x) x, MSGPACK_PP_SEQ_ENUM_164 +# define MSGPACK_PP_SEQ_ENUM_166(x) x, MSGPACK_PP_SEQ_ENUM_165 +# define MSGPACK_PP_SEQ_ENUM_167(x) x, MSGPACK_PP_SEQ_ENUM_166 +# define MSGPACK_PP_SEQ_ENUM_168(x) x, MSGPACK_PP_SEQ_ENUM_167 +# define MSGPACK_PP_SEQ_ENUM_169(x) x, MSGPACK_PP_SEQ_ENUM_168 +# define MSGPACK_PP_SEQ_ENUM_170(x) x, MSGPACK_PP_SEQ_ENUM_169 +# define MSGPACK_PP_SEQ_ENUM_171(x) x, MSGPACK_PP_SEQ_ENUM_170 +# define MSGPACK_PP_SEQ_ENUM_172(x) x, MSGPACK_PP_SEQ_ENUM_171 +# define MSGPACK_PP_SEQ_ENUM_173(x) x, MSGPACK_PP_SEQ_ENUM_172 +# define MSGPACK_PP_SEQ_ENUM_174(x) x, MSGPACK_PP_SEQ_ENUM_173 +# define MSGPACK_PP_SEQ_ENUM_175(x) x, MSGPACK_PP_SEQ_ENUM_174 +# define MSGPACK_PP_SEQ_ENUM_176(x) x, MSGPACK_PP_SEQ_ENUM_175 +# define MSGPACK_PP_SEQ_ENUM_177(x) x, MSGPACK_PP_SEQ_ENUM_176 +# define MSGPACK_PP_SEQ_ENUM_178(x) x, MSGPACK_PP_SEQ_ENUM_177 +# define MSGPACK_PP_SEQ_ENUM_179(x) x, MSGPACK_PP_SEQ_ENUM_178 +# define MSGPACK_PP_SEQ_ENUM_180(x) x, MSGPACK_PP_SEQ_ENUM_179 +# define MSGPACK_PP_SEQ_ENUM_181(x) x, MSGPACK_PP_SEQ_ENUM_180 +# define MSGPACK_PP_SEQ_ENUM_182(x) x, MSGPACK_PP_SEQ_ENUM_181 +# define MSGPACK_PP_SEQ_ENUM_183(x) x, MSGPACK_PP_SEQ_ENUM_182 +# define MSGPACK_PP_SEQ_ENUM_184(x) x, MSGPACK_PP_SEQ_ENUM_183 +# define MSGPACK_PP_SEQ_ENUM_185(x) x, MSGPACK_PP_SEQ_ENUM_184 +# define MSGPACK_PP_SEQ_ENUM_186(x) x, MSGPACK_PP_SEQ_ENUM_185 +# define MSGPACK_PP_SEQ_ENUM_187(x) x, MSGPACK_PP_SEQ_ENUM_186 +# define MSGPACK_PP_SEQ_ENUM_188(x) x, MSGPACK_PP_SEQ_ENUM_187 +# define MSGPACK_PP_SEQ_ENUM_189(x) x, MSGPACK_PP_SEQ_ENUM_188 +# define MSGPACK_PP_SEQ_ENUM_190(x) x, MSGPACK_PP_SEQ_ENUM_189 +# define MSGPACK_PP_SEQ_ENUM_191(x) x, MSGPACK_PP_SEQ_ENUM_190 +# define MSGPACK_PP_SEQ_ENUM_192(x) x, MSGPACK_PP_SEQ_ENUM_191 +# define MSGPACK_PP_SEQ_ENUM_193(x) x, MSGPACK_PP_SEQ_ENUM_192 +# define MSGPACK_PP_SEQ_ENUM_194(x) x, MSGPACK_PP_SEQ_ENUM_193 +# define MSGPACK_PP_SEQ_ENUM_195(x) x, MSGPACK_PP_SEQ_ENUM_194 +# define MSGPACK_PP_SEQ_ENUM_196(x) x, MSGPACK_PP_SEQ_ENUM_195 +# define MSGPACK_PP_SEQ_ENUM_197(x) x, MSGPACK_PP_SEQ_ENUM_196 +# define MSGPACK_PP_SEQ_ENUM_198(x) x, MSGPACK_PP_SEQ_ENUM_197 +# define MSGPACK_PP_SEQ_ENUM_199(x) x, MSGPACK_PP_SEQ_ENUM_198 +# define MSGPACK_PP_SEQ_ENUM_200(x) x, MSGPACK_PP_SEQ_ENUM_199 +# define MSGPACK_PP_SEQ_ENUM_201(x) x, MSGPACK_PP_SEQ_ENUM_200 +# define MSGPACK_PP_SEQ_ENUM_202(x) x, MSGPACK_PP_SEQ_ENUM_201 +# define MSGPACK_PP_SEQ_ENUM_203(x) x, MSGPACK_PP_SEQ_ENUM_202 +# define MSGPACK_PP_SEQ_ENUM_204(x) x, MSGPACK_PP_SEQ_ENUM_203 +# define MSGPACK_PP_SEQ_ENUM_205(x) x, MSGPACK_PP_SEQ_ENUM_204 +# define MSGPACK_PP_SEQ_ENUM_206(x) x, MSGPACK_PP_SEQ_ENUM_205 +# define MSGPACK_PP_SEQ_ENUM_207(x) x, MSGPACK_PP_SEQ_ENUM_206 +# define MSGPACK_PP_SEQ_ENUM_208(x) x, MSGPACK_PP_SEQ_ENUM_207 +# define MSGPACK_PP_SEQ_ENUM_209(x) x, MSGPACK_PP_SEQ_ENUM_208 +# define MSGPACK_PP_SEQ_ENUM_210(x) x, MSGPACK_PP_SEQ_ENUM_209 +# define MSGPACK_PP_SEQ_ENUM_211(x) x, MSGPACK_PP_SEQ_ENUM_210 +# define MSGPACK_PP_SEQ_ENUM_212(x) x, MSGPACK_PP_SEQ_ENUM_211 +# define MSGPACK_PP_SEQ_ENUM_213(x) x, MSGPACK_PP_SEQ_ENUM_212 +# define MSGPACK_PP_SEQ_ENUM_214(x) x, MSGPACK_PP_SEQ_ENUM_213 +# define MSGPACK_PP_SEQ_ENUM_215(x) x, MSGPACK_PP_SEQ_ENUM_214 +# define MSGPACK_PP_SEQ_ENUM_216(x) x, MSGPACK_PP_SEQ_ENUM_215 +# define MSGPACK_PP_SEQ_ENUM_217(x) x, MSGPACK_PP_SEQ_ENUM_216 +# define MSGPACK_PP_SEQ_ENUM_218(x) x, MSGPACK_PP_SEQ_ENUM_217 +# define MSGPACK_PP_SEQ_ENUM_219(x) x, MSGPACK_PP_SEQ_ENUM_218 +# define MSGPACK_PP_SEQ_ENUM_220(x) x, MSGPACK_PP_SEQ_ENUM_219 +# define MSGPACK_PP_SEQ_ENUM_221(x) x, MSGPACK_PP_SEQ_ENUM_220 +# define MSGPACK_PP_SEQ_ENUM_222(x) x, MSGPACK_PP_SEQ_ENUM_221 +# define MSGPACK_PP_SEQ_ENUM_223(x) x, MSGPACK_PP_SEQ_ENUM_222 +# define MSGPACK_PP_SEQ_ENUM_224(x) x, MSGPACK_PP_SEQ_ENUM_223 +# define MSGPACK_PP_SEQ_ENUM_225(x) x, MSGPACK_PP_SEQ_ENUM_224 +# define MSGPACK_PP_SEQ_ENUM_226(x) x, MSGPACK_PP_SEQ_ENUM_225 +# define MSGPACK_PP_SEQ_ENUM_227(x) x, MSGPACK_PP_SEQ_ENUM_226 +# define MSGPACK_PP_SEQ_ENUM_228(x) x, MSGPACK_PP_SEQ_ENUM_227 +# define MSGPACK_PP_SEQ_ENUM_229(x) x, MSGPACK_PP_SEQ_ENUM_228 +# define MSGPACK_PP_SEQ_ENUM_230(x) x, MSGPACK_PP_SEQ_ENUM_229 +# define MSGPACK_PP_SEQ_ENUM_231(x) x, MSGPACK_PP_SEQ_ENUM_230 +# define MSGPACK_PP_SEQ_ENUM_232(x) x, MSGPACK_PP_SEQ_ENUM_231 +# define MSGPACK_PP_SEQ_ENUM_233(x) x, MSGPACK_PP_SEQ_ENUM_232 +# define MSGPACK_PP_SEQ_ENUM_234(x) x, MSGPACK_PP_SEQ_ENUM_233 +# define MSGPACK_PP_SEQ_ENUM_235(x) x, MSGPACK_PP_SEQ_ENUM_234 +# define MSGPACK_PP_SEQ_ENUM_236(x) x, MSGPACK_PP_SEQ_ENUM_235 +# define MSGPACK_PP_SEQ_ENUM_237(x) x, MSGPACK_PP_SEQ_ENUM_236 +# define MSGPACK_PP_SEQ_ENUM_238(x) x, MSGPACK_PP_SEQ_ENUM_237 +# define MSGPACK_PP_SEQ_ENUM_239(x) x, MSGPACK_PP_SEQ_ENUM_238 +# define MSGPACK_PP_SEQ_ENUM_240(x) x, MSGPACK_PP_SEQ_ENUM_239 +# define MSGPACK_PP_SEQ_ENUM_241(x) x, MSGPACK_PP_SEQ_ENUM_240 +# define MSGPACK_PP_SEQ_ENUM_242(x) x, MSGPACK_PP_SEQ_ENUM_241 +# define MSGPACK_PP_SEQ_ENUM_243(x) x, MSGPACK_PP_SEQ_ENUM_242 +# define MSGPACK_PP_SEQ_ENUM_244(x) x, MSGPACK_PP_SEQ_ENUM_243 +# define MSGPACK_PP_SEQ_ENUM_245(x) x, MSGPACK_PP_SEQ_ENUM_244 +# define MSGPACK_PP_SEQ_ENUM_246(x) x, MSGPACK_PP_SEQ_ENUM_245 +# define MSGPACK_PP_SEQ_ENUM_247(x) x, MSGPACK_PP_SEQ_ENUM_246 +# define MSGPACK_PP_SEQ_ENUM_248(x) x, MSGPACK_PP_SEQ_ENUM_247 +# define MSGPACK_PP_SEQ_ENUM_249(x) x, MSGPACK_PP_SEQ_ENUM_248 +# define MSGPACK_PP_SEQ_ENUM_250(x) x, MSGPACK_PP_SEQ_ENUM_249 +# define MSGPACK_PP_SEQ_ENUM_251(x) x, MSGPACK_PP_SEQ_ENUM_250 +# define MSGPACK_PP_SEQ_ENUM_252(x) x, MSGPACK_PP_SEQ_ENUM_251 +# define MSGPACK_PP_SEQ_ENUM_253(x) x, MSGPACK_PP_SEQ_ENUM_252 +# define MSGPACK_PP_SEQ_ENUM_254(x) x, MSGPACK_PP_SEQ_ENUM_253 +# define MSGPACK_PP_SEQ_ENUM_255(x) x, MSGPACK_PP_SEQ_ENUM_254 +# define MSGPACK_PP_SEQ_ENUM_256(x) x, MSGPACK_PP_SEQ_ENUM_255 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/filter.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/filter.hpp new file mode 100644 index 000000000000..3caf450a9f24 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/filter.hpp @@ -0,0 +1,54 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_FILTER_HPP +# define MSGPACK_PREPROCESSOR_SEQ_FILTER_HPP +# +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_FILTER */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_FILTER(pred, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT(MSGPACK_PP_SEQ_FILTER_O, (pred, data, (nil)), seq))) +# else +# define MSGPACK_PP_SEQ_FILTER(pred, data, seq) MSGPACK_PP_SEQ_FILTER_I(pred, data, seq) +# define MSGPACK_PP_SEQ_FILTER_I(pred, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT(MSGPACK_PP_SEQ_FILTER_O, (pred, data, (nil)), seq))) +# endif +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_SEQ_FILTER_O(s, st, elem) MSGPACK_PP_SEQ_FILTER_O_IM(s, MSGPACK_PP_TUPLE_REM_3 st, elem) +# define MSGPACK_PP_SEQ_FILTER_O_IM(s, im, elem) MSGPACK_PP_SEQ_FILTER_O_I(s, im, elem) +# else +# define MSGPACK_PP_SEQ_FILTER_O(s, st, elem) MSGPACK_PP_SEQ_FILTER_O_I(s, MSGPACK_PP_TUPLE_ELEM(3, 0, st), MSGPACK_PP_TUPLE_ELEM(3, 1, st), MSGPACK_PP_TUPLE_ELEM(3, 2, st), elem) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC() +# define MSGPACK_PP_SEQ_FILTER_O_I(s, pred, data, res, elem) (pred, data, res MSGPACK_PP_EXPR_IF(pred(s, data, elem), (elem))) +# else +# define MSGPACK_PP_SEQ_FILTER_O_I(s, pred, data, res, elem) (pred, data, res MSGPACK_PP_EXPR_IF(pred##(s, data, elem), (elem))) +# endif +# +# /* MSGPACK_PP_SEQ_FILTER_S */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_FILTER_S(s, pred, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT_ ## s(MSGPACK_PP_SEQ_FILTER_O, (pred, data, (nil)), seq))) +# else +# define MSGPACK_PP_SEQ_FILTER_S(s, pred, data, seq) MSGPACK_PP_SEQ_FILTER_S_I(s, pred, data, seq) +# define MSGPACK_PP_SEQ_FILTER_S_I(s, pred, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT_ ## s(MSGPACK_PP_SEQ_FILTER_O, (pred, data, (nil)), seq))) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/first_n.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/first_n.hpp new file mode 100644 index 000000000000..944212b38fea --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/first_n.hpp @@ -0,0 +1,30 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_FIRST_N_HPP +# define MSGPACK_PREPROCESSOR_SEQ_FIRST_N_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_FIRST_N */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_FIRST_N(n, seq) MSGPACK_PP_IF(n, MSGPACK_PP_TUPLE_ELEM, MSGPACK_PP_TUPLE_EAT_3)(2, 0, MSGPACK_PP_SEQ_SPLIT(n, seq (nil))) +# else +# define MSGPACK_PP_SEQ_FIRST_N(n, seq) MSGPACK_PP_SEQ_FIRST_N_I(n, seq) +# define MSGPACK_PP_SEQ_FIRST_N_I(n, seq) MSGPACK_PP_IF(n, MSGPACK_PP_TUPLE_ELEM, MSGPACK_PP_TUPLE_EAT_3)(2, 0, MSGPACK_PP_SEQ_SPLIT(n, seq (nil))) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/fold_left.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/fold_left.hpp new file mode 100644 index 000000000000..0ce5d16b6206 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/fold_left.hpp @@ -0,0 +1,1070 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_FOLD_LEFT_HPP +# define MSGPACK_PREPROCESSOR_SEQ_FOLD_LEFT_HPP +# +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_FOLD_LEFT */ +# +# if 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT(op, state, seq) ... +# endif +# +# define MSGPACK_PP_SEQ_FOLD_LEFT MSGPACK_PP_CAT(MSGPACK_PP_SEQ_FOLD_LEFT_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_SEQ_FOLD_LEFT_P, 256)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_P(n) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_, MSGPACK_PP_SEQ_FOLD_LEFT_I_ ## n(MSGPACK_PP_SEQ_FOLD_LEFT_O, MSGPACK_PP_NIL, (nil), 1)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_O(s, st, _) st +# +# define MSGPACK_PP_SEQ_FOLD_LEFT_257(op, st, ss) MSGPACK_PP_ERROR(0x0005) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_257(op, st, ss, sz) MSGPACK_PP_ERROR(0x0005) +# +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_NIL 1 +# +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) 0 +# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) 0 +# +# define MSGPACK_PP_SEQ_FOLD_LEFT_F(op, st, ss, sz) st +# +# define MSGPACK_PP_SEQ_FOLD_LEFT_1(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_2(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_3(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_4(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_5(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_6(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_7(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_8(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_9(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_10(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_11(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_12(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_13(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_14(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_15(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_16(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_17(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_18(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_19(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_20(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_21(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_22(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_23(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_24(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_25(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_26(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_27(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_28(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_29(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_30(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_31(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_32(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_33(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_34(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_35(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_36(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_37(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_38(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_39(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_40(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_41(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_42(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_43(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_44(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_45(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_46(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_47(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_48(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_49(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_50(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_51(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_52(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_53(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_54(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_55(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_56(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_57(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_58(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_59(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_60(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_61(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_62(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_63(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_64(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_65(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_66(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_67(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_68(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_69(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_70(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_71(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_72(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_73(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_74(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_75(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_76(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_77(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_78(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_79(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_80(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_81(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_82(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_83(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_84(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_85(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_86(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_87(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_88(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_89(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_90(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_91(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_92(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_93(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_94(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_95(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_96(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_97(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_98(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_99(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_100(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_101(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_102(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_103(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_104(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_105(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_106(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_107(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_108(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_109(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_110(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_111(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_112(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_113(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_114(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_115(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_116(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_117(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_118(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_119(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_120(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_121(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_122(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_123(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_124(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_125(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_126(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_127(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_128(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_129(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_130(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_131(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_132(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_133(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_134(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_135(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_136(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_137(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_138(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_139(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_140(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_141(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_142(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_143(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_144(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_145(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_146(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_147(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_148(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_149(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_150(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_151(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_152(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_153(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_154(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_155(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_156(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_157(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_158(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_159(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_160(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_161(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_162(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_163(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_164(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_165(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_166(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_167(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_168(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_169(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_170(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_171(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_172(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_173(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_174(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_175(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_176(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_177(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_178(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_179(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_180(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_181(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_182(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_183(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_184(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_185(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_186(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_187(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_188(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_189(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_190(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_191(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_192(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_193(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_194(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_195(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_196(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_197(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_198(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_199(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_200(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_201(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_202(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_203(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_204(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_205(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_206(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_207(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_208(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_209(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_210(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_211(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_212(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_213(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_214(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_215(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_216(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_217(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_218(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_219(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_220(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_221(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_222(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_223(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_224(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_225(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_226(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_227(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_228(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_229(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_230(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_231(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_232(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_233(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_234(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_235(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_236(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_237(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_238(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_239(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_240(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_241(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_242(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_243(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_244(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_245(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_246(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_247(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_248(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_249(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_250(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_251(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_252(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_253(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_254(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_255(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_256(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss)) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC() +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_2, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(2, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_3, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(3, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_4, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(4, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_5, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(5, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_6, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(6, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_7, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(7, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_8, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(8, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_9, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(9, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_10, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(10, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_11, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(11, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_12, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(12, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_13, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(13, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_14, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(14, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_15, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(15, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_16, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(16, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_17, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(17, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_18, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(18, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_19, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(19, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_20, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(20, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_21, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(21, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_22, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(22, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_23, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(23, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_24, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(24, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_25, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(25, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_26, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(26, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_27, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(27, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_28, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(28, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_29, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(29, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_30, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(30, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_31, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(31, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_32, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(32, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_33, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(33, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_34, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(34, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_35, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(35, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_36, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(36, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_37, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(37, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_38, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(38, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_39, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(39, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_40, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(40, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_41, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(41, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_42, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(42, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_43, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(43, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_44, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(44, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_45, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(45, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_46, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(46, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_47, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(47, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_48, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(48, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_49, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(49, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_50, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(50, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_51, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(51, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_52, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(52, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_53, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(53, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_54, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(54, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_55, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(55, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_56, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(56, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_57, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(57, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_58, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(58, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_59, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(59, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_60, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(60, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_61, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(61, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_62, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(62, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_63, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(63, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_64, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(64, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_65, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(65, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_66, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(66, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_67, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(67, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_68, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(68, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_69, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(69, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_70, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(70, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_71, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(71, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_72, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(72, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_73, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(73, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_74, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(74, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_75, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(75, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_76, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(76, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_77, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(77, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_78, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(78, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_79, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(79, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_80, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(80, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_81, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(81, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_82, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(82, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_83, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(83, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_84, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(84, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_85, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(85, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_86, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(86, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_87, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(87, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_88, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(88, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_89, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(89, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_90, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(90, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_91, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(91, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_92, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(92, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_93, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(93, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_94, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(94, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_95, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(95, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_96, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(96, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_97, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(97, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_98, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(98, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_99, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(99, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_100, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(100, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_101, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(101, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_102, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(102, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_103, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(103, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_104, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(104, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_105, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(105, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_106, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(106, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_107, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(107, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_108, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(108, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_109, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(109, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_110, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(110, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_111, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(111, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_112, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(112, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_113, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(113, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_114, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(114, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_115, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(115, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_116, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(116, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_117, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(117, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_118, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(118, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_119, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(119, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_120, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(120, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_121, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(121, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_122, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(122, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_123, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(123, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_124, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(124, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_125, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(125, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_126, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(126, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_127, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(127, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_128, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(128, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_129, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(129, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_130, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(130, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_131, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(131, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_132, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(132, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_133, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(133, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_134, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(134, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_135, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(135, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_136, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(136, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_137, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(137, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_138, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(138, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_139, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(139, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_140, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(140, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_141, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(141, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_142, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(142, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_143, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(143, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_144, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(144, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_145, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(145, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_146, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(146, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_147, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(147, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_148, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(148, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_149, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(149, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_150, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(150, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_151, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(151, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_152, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(152, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_153, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(153, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_154, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(154, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_155, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(155, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_156, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(156, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_157, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(157, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_158, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(158, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_159, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(159, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_160, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(160, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_161, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(161, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_162, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(162, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_163, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(163, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_164, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(164, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_165, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(165, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_166, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(166, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_167, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(167, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_168, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(168, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_169, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(169, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_170, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(170, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_171, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(171, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_172, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(172, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_173, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(173, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_174, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(174, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_175, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(175, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_176, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(176, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_177, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(177, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_178, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(178, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_179, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(179, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_180, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(180, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_181, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(181, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_182, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(182, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_183, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(183, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_184, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(184, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_185, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(185, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_186, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(186, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_187, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(187, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_188, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(188, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_189, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(189, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_190, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(190, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_191, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(191, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_192, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(192, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_193, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(193, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_194, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(194, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_195, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(195, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_196, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(196, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_197, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(197, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_198, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(198, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_199, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(199, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_200, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(200, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_201, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(201, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_202, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(202, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_203, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(203, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_204, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(204, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_205, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(205, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_206, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(206, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_207, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(207, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_208, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(208, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_209, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(209, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_210, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(210, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_211, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(211, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_212, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(212, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_213, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(213, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_214, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(214, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_215, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(215, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_216, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(216, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_217, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(217, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_218, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(218, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_219, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(219, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_220, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(220, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_221, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(221, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_222, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(222, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_223, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(223, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_224, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(224, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_225, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(225, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_226, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(226, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_227, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(227, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_228, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(228, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_229, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(229, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_230, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(230, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_231, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(231, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_232, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(232, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_233, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(233, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_234, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(234, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_235, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(235, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_236, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(236, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_237, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(237, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_238, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(238, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_239, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(239, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_240, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(240, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_241, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(241, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_242, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(242, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_243, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(243, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_244, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(244, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_245, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(245, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_246, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(246, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_247, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(247, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_248, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(248, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_249, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(249, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_250, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(250, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_251, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(251, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_252, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(252, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_253, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(253, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_254, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(254, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_255, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(255, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_256, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(256, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_257, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(257, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# else +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_2, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(2, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_3, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(3, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_4, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(4, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_5, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(5, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_6, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(6, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_7, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(7, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_8, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(8, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_9, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(9, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_10, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(10, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_11, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(11, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_12, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(12, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_13, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(13, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_14, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(14, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_15, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(15, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_16, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(16, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_17, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(17, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_18, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(18, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_19, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(19, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_20, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(20, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_21, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(21, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_22, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(22, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_23, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(23, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_24, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(24, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_25, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(25, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_26, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(26, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_27, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(27, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_28, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(28, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_29, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(29, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_30, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(30, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_31, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(31, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_32, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(32, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_33, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(33, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_34, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(34, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_35, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(35, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_36, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(36, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_37, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(37, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_38, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(38, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_39, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(39, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_40, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(40, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_41, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(41, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_42, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(42, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_43, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(43, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_44, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(44, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_45, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(45, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_46, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(46, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_47, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(47, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_48, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(48, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_49, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(49, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_50, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(50, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_51, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(51, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_52, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(52, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_53, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(53, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_54, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(54, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_55, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(55, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_56, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(56, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_57, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(57, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_58, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(58, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_59, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(59, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_60, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(60, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_61, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(61, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_62, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(62, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_63, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(63, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_64, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(64, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_65, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(65, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_66, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(66, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_67, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(67, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_68, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(68, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_69, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(69, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_70, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(70, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_71, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(71, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_72, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(72, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_73, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(73, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_74, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(74, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_75, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(75, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_76, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(76, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_77, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(77, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_78, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(78, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_79, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(79, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_80, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(80, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_81, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(81, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_82, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(82, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_83, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(83, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_84, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(84, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_85, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(85, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_86, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(86, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_87, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(87, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_88, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(88, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_89, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(89, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_90, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(90, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_91, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(91, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_92, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(92, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_93, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(93, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_94, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(94, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_95, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(95, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_96, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(96, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_97, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(97, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_98, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(98, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_99, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(99, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_100, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(100, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_101, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(101, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_102, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(102, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_103, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(103, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_104, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(104, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_105, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(105, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_106, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(106, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_107, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(107, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_108, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(108, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_109, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(109, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_110, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(110, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_111, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(111, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_112, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(112, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_113, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(113, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_114, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(114, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_115, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(115, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_116, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(116, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_117, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(117, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_118, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(118, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_119, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(119, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_120, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(120, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_121, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(121, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_122, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(122, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_123, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(123, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_124, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(124, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_125, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(125, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_126, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(126, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_127, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(127, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_128, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(128, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_129, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(129, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_130, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(130, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_131, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(131, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_132, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(132, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_133, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(133, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_134, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(134, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_135, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(135, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_136, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(136, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_137, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(137, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_138, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(138, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_139, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(139, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_140, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(140, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_141, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(141, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_142, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(142, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_143, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(143, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_144, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(144, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_145, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(145, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_146, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(146, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_147, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(147, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_148, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(148, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_149, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(149, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_150, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(150, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_151, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(151, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_152, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(152, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_153, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(153, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_154, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(154, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_155, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(155, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_156, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(156, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_157, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(157, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_158, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(158, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_159, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(159, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_160, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(160, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_161, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(161, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_162, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(162, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_163, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(163, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_164, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(164, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_165, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(165, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_166, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(166, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_167, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(167, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_168, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(168, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_169, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(169, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_170, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(170, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_171, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(171, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_172, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(172, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_173, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(173, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_174, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(174, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_175, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(175, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_176, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(176, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_177, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(177, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_178, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(178, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_179, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(179, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_180, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(180, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_181, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(181, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_182, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(182, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_183, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(183, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_184, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(184, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_185, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(185, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_186, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(186, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_187, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(187, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_188, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(188, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_189, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(189, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_190, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(190, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_191, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(191, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_192, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(192, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_193, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(193, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_194, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(194, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_195, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(195, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_196, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(196, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_197, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(197, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_198, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(198, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_199, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(199, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_200, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(200, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_201, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(201, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_202, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(202, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_203, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(203, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_204, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(204, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_205, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(205, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_206, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(206, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_207, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(207, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_208, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(208, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_209, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(209, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_210, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(210, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_211, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(211, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_212, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(212, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_213, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(213, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_214, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(214, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_215, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(215, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_216, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(216, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_217, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(217, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_218, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(218, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_219, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(219, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_220, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(220, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_221, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(221, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_222, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(222, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_223, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(223, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_224, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(224, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_225, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(225, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_226, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(226, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_227, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(227, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_228, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(228, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_229, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(229, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_230, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(230, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_231, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(231, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_232, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(232, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_233, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(233, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_234, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(234, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_235, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(235, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_236, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(236, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_237, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(237, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_238, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(238, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_239, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(239, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_240, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(240, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_241, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(241, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_242, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(242, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_243, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(243, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_244, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(244, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_245, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(245, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_246, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(246, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_247, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(247, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_248, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(248, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_249, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(249, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_250, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(250, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_251, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(251, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_252, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(252, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_253, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(253, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_254, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(254, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_255, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(255, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_256, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(256, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# define MSGPACK_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_257, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(257, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/fold_right.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/fold_right.hpp new file mode 100644 index 000000000000..b9411562c8b7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/fold_right.hpp @@ -0,0 +1,288 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_FOLD_RIGHT_HPP +# define MSGPACK_PREPROCESSOR_SEQ_FOLD_RIGHT_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_FOLD_RIGHT */ +# +# if 0 +# define MSGPACK_PP_SEQ_FOLD_RIGHT(op, state, seq) ... +# endif +# +# define MSGPACK_PP_SEQ_FOLD_RIGHT MSGPACK_PP_CAT(MSGPACK_PP_SEQ_FOLD_RIGHT_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_SEQ_FOLD_LEFT_P, 256)) +# +# define MSGPACK_PP_SEQ_FOLD_RIGHT_257(op, st, ss) MSGPACK_PP_ERROR(0x0005) +# +# define MSGPACK_PP_SEQ_FOLD_RIGHT_1(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_1(op, st, MSGPACK_PP_SEQ_REVERSE_S(2, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_2(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_2(op, st, MSGPACK_PP_SEQ_REVERSE_S(3, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_3(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_3(op, st, MSGPACK_PP_SEQ_REVERSE_S(4, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_4(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_4(op, st, MSGPACK_PP_SEQ_REVERSE_S(5, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_5(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_5(op, st, MSGPACK_PP_SEQ_REVERSE_S(6, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_6(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_6(op, st, MSGPACK_PP_SEQ_REVERSE_S(7, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_7(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_7(op, st, MSGPACK_PP_SEQ_REVERSE_S(8, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_8(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_8(op, st, MSGPACK_PP_SEQ_REVERSE_S(9, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_9(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_9(op, st, MSGPACK_PP_SEQ_REVERSE_S(10, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_10(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_10(op, st, MSGPACK_PP_SEQ_REVERSE_S(11, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_11(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_11(op, st, MSGPACK_PP_SEQ_REVERSE_S(12, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_12(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_12(op, st, MSGPACK_PP_SEQ_REVERSE_S(13, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_13(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_13(op, st, MSGPACK_PP_SEQ_REVERSE_S(14, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_14(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_14(op, st, MSGPACK_PP_SEQ_REVERSE_S(15, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_15(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_15(op, st, MSGPACK_PP_SEQ_REVERSE_S(16, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_16(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_16(op, st, MSGPACK_PP_SEQ_REVERSE_S(17, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_17(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_17(op, st, MSGPACK_PP_SEQ_REVERSE_S(18, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_18(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_18(op, st, MSGPACK_PP_SEQ_REVERSE_S(19, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_19(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_19(op, st, MSGPACK_PP_SEQ_REVERSE_S(20, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_20(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_20(op, st, MSGPACK_PP_SEQ_REVERSE_S(21, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_21(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_21(op, st, MSGPACK_PP_SEQ_REVERSE_S(22, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_22(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_22(op, st, MSGPACK_PP_SEQ_REVERSE_S(23, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_23(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_23(op, st, MSGPACK_PP_SEQ_REVERSE_S(24, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_24(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_24(op, st, MSGPACK_PP_SEQ_REVERSE_S(25, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_25(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_25(op, st, MSGPACK_PP_SEQ_REVERSE_S(26, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_26(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_26(op, st, MSGPACK_PP_SEQ_REVERSE_S(27, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_27(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_27(op, st, MSGPACK_PP_SEQ_REVERSE_S(28, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_28(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_28(op, st, MSGPACK_PP_SEQ_REVERSE_S(29, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_29(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_29(op, st, MSGPACK_PP_SEQ_REVERSE_S(30, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_30(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_30(op, st, MSGPACK_PP_SEQ_REVERSE_S(31, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_31(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_31(op, st, MSGPACK_PP_SEQ_REVERSE_S(32, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_32(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_32(op, st, MSGPACK_PP_SEQ_REVERSE_S(33, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_33(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_33(op, st, MSGPACK_PP_SEQ_REVERSE_S(34, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_34(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_34(op, st, MSGPACK_PP_SEQ_REVERSE_S(35, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_35(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_35(op, st, MSGPACK_PP_SEQ_REVERSE_S(36, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_36(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_36(op, st, MSGPACK_PP_SEQ_REVERSE_S(37, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_37(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_37(op, st, MSGPACK_PP_SEQ_REVERSE_S(38, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_38(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_38(op, st, MSGPACK_PP_SEQ_REVERSE_S(39, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_39(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_39(op, st, MSGPACK_PP_SEQ_REVERSE_S(40, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_40(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_40(op, st, MSGPACK_PP_SEQ_REVERSE_S(41, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_41(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_41(op, st, MSGPACK_PP_SEQ_REVERSE_S(42, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_42(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_42(op, st, MSGPACK_PP_SEQ_REVERSE_S(43, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_43(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_43(op, st, MSGPACK_PP_SEQ_REVERSE_S(44, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_44(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_44(op, st, MSGPACK_PP_SEQ_REVERSE_S(45, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_45(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_45(op, st, MSGPACK_PP_SEQ_REVERSE_S(46, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_46(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_46(op, st, MSGPACK_PP_SEQ_REVERSE_S(47, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_47(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_47(op, st, MSGPACK_PP_SEQ_REVERSE_S(48, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_48(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_48(op, st, MSGPACK_PP_SEQ_REVERSE_S(49, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_49(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_49(op, st, MSGPACK_PP_SEQ_REVERSE_S(50, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_50(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_50(op, st, MSGPACK_PP_SEQ_REVERSE_S(51, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_51(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_51(op, st, MSGPACK_PP_SEQ_REVERSE_S(52, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_52(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_52(op, st, MSGPACK_PP_SEQ_REVERSE_S(53, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_53(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_53(op, st, MSGPACK_PP_SEQ_REVERSE_S(54, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_54(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_54(op, st, MSGPACK_PP_SEQ_REVERSE_S(55, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_55(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_55(op, st, MSGPACK_PP_SEQ_REVERSE_S(56, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_56(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_56(op, st, MSGPACK_PP_SEQ_REVERSE_S(57, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_57(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_57(op, st, MSGPACK_PP_SEQ_REVERSE_S(58, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_58(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_58(op, st, MSGPACK_PP_SEQ_REVERSE_S(59, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_59(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_59(op, st, MSGPACK_PP_SEQ_REVERSE_S(60, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_60(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_60(op, st, MSGPACK_PP_SEQ_REVERSE_S(61, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_61(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_61(op, st, MSGPACK_PP_SEQ_REVERSE_S(62, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_62(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_62(op, st, MSGPACK_PP_SEQ_REVERSE_S(63, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_63(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_63(op, st, MSGPACK_PP_SEQ_REVERSE_S(64, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_64(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_64(op, st, MSGPACK_PP_SEQ_REVERSE_S(65, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_65(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_65(op, st, MSGPACK_PP_SEQ_REVERSE_S(66, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_66(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_66(op, st, MSGPACK_PP_SEQ_REVERSE_S(67, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_67(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_67(op, st, MSGPACK_PP_SEQ_REVERSE_S(68, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_68(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_68(op, st, MSGPACK_PP_SEQ_REVERSE_S(69, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_69(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_69(op, st, MSGPACK_PP_SEQ_REVERSE_S(70, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_70(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_70(op, st, MSGPACK_PP_SEQ_REVERSE_S(71, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_71(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_71(op, st, MSGPACK_PP_SEQ_REVERSE_S(72, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_72(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_72(op, st, MSGPACK_PP_SEQ_REVERSE_S(73, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_73(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_73(op, st, MSGPACK_PP_SEQ_REVERSE_S(74, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_74(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_74(op, st, MSGPACK_PP_SEQ_REVERSE_S(75, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_75(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_75(op, st, MSGPACK_PP_SEQ_REVERSE_S(76, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_76(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_76(op, st, MSGPACK_PP_SEQ_REVERSE_S(77, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_77(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_77(op, st, MSGPACK_PP_SEQ_REVERSE_S(78, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_78(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_78(op, st, MSGPACK_PP_SEQ_REVERSE_S(79, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_79(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_79(op, st, MSGPACK_PP_SEQ_REVERSE_S(80, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_80(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_80(op, st, MSGPACK_PP_SEQ_REVERSE_S(81, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_81(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_81(op, st, MSGPACK_PP_SEQ_REVERSE_S(82, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_82(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_82(op, st, MSGPACK_PP_SEQ_REVERSE_S(83, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_83(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_83(op, st, MSGPACK_PP_SEQ_REVERSE_S(84, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_84(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_84(op, st, MSGPACK_PP_SEQ_REVERSE_S(85, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_85(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_85(op, st, MSGPACK_PP_SEQ_REVERSE_S(86, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_86(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_86(op, st, MSGPACK_PP_SEQ_REVERSE_S(87, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_87(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_87(op, st, MSGPACK_PP_SEQ_REVERSE_S(88, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_88(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_88(op, st, MSGPACK_PP_SEQ_REVERSE_S(89, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_89(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_89(op, st, MSGPACK_PP_SEQ_REVERSE_S(90, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_90(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_90(op, st, MSGPACK_PP_SEQ_REVERSE_S(91, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_91(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_91(op, st, MSGPACK_PP_SEQ_REVERSE_S(92, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_92(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_92(op, st, MSGPACK_PP_SEQ_REVERSE_S(93, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_93(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_93(op, st, MSGPACK_PP_SEQ_REVERSE_S(94, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_94(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_94(op, st, MSGPACK_PP_SEQ_REVERSE_S(95, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_95(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_95(op, st, MSGPACK_PP_SEQ_REVERSE_S(96, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_96(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_96(op, st, MSGPACK_PP_SEQ_REVERSE_S(97, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_97(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_97(op, st, MSGPACK_PP_SEQ_REVERSE_S(98, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_98(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_98(op, st, MSGPACK_PP_SEQ_REVERSE_S(99, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_99(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_99(op, st, MSGPACK_PP_SEQ_REVERSE_S(100, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_100(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_100(op, st, MSGPACK_PP_SEQ_REVERSE_S(101, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_101(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_101(op, st, MSGPACK_PP_SEQ_REVERSE_S(102, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_102(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_102(op, st, MSGPACK_PP_SEQ_REVERSE_S(103, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_103(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_103(op, st, MSGPACK_PP_SEQ_REVERSE_S(104, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_104(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_104(op, st, MSGPACK_PP_SEQ_REVERSE_S(105, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_105(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_105(op, st, MSGPACK_PP_SEQ_REVERSE_S(106, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_106(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_106(op, st, MSGPACK_PP_SEQ_REVERSE_S(107, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_107(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_107(op, st, MSGPACK_PP_SEQ_REVERSE_S(108, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_108(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_108(op, st, MSGPACK_PP_SEQ_REVERSE_S(109, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_109(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_109(op, st, MSGPACK_PP_SEQ_REVERSE_S(110, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_110(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_110(op, st, MSGPACK_PP_SEQ_REVERSE_S(111, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_111(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_111(op, st, MSGPACK_PP_SEQ_REVERSE_S(112, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_112(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_112(op, st, MSGPACK_PP_SEQ_REVERSE_S(113, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_113(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_113(op, st, MSGPACK_PP_SEQ_REVERSE_S(114, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_114(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_114(op, st, MSGPACK_PP_SEQ_REVERSE_S(115, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_115(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_115(op, st, MSGPACK_PP_SEQ_REVERSE_S(116, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_116(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_116(op, st, MSGPACK_PP_SEQ_REVERSE_S(117, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_117(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_117(op, st, MSGPACK_PP_SEQ_REVERSE_S(118, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_118(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_118(op, st, MSGPACK_PP_SEQ_REVERSE_S(119, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_119(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_119(op, st, MSGPACK_PP_SEQ_REVERSE_S(120, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_120(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_120(op, st, MSGPACK_PP_SEQ_REVERSE_S(121, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_121(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_121(op, st, MSGPACK_PP_SEQ_REVERSE_S(122, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_122(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_122(op, st, MSGPACK_PP_SEQ_REVERSE_S(123, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_123(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_123(op, st, MSGPACK_PP_SEQ_REVERSE_S(124, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_124(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_124(op, st, MSGPACK_PP_SEQ_REVERSE_S(125, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_125(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_125(op, st, MSGPACK_PP_SEQ_REVERSE_S(126, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_126(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_126(op, st, MSGPACK_PP_SEQ_REVERSE_S(127, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_127(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_127(op, st, MSGPACK_PP_SEQ_REVERSE_S(128, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_128(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_128(op, st, MSGPACK_PP_SEQ_REVERSE_S(129, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_129(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_129(op, st, MSGPACK_PP_SEQ_REVERSE_S(130, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_130(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_130(op, st, MSGPACK_PP_SEQ_REVERSE_S(131, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_131(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_131(op, st, MSGPACK_PP_SEQ_REVERSE_S(132, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_132(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_132(op, st, MSGPACK_PP_SEQ_REVERSE_S(133, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_133(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_133(op, st, MSGPACK_PP_SEQ_REVERSE_S(134, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_134(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_134(op, st, MSGPACK_PP_SEQ_REVERSE_S(135, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_135(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_135(op, st, MSGPACK_PP_SEQ_REVERSE_S(136, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_136(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_136(op, st, MSGPACK_PP_SEQ_REVERSE_S(137, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_137(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_137(op, st, MSGPACK_PP_SEQ_REVERSE_S(138, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_138(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_138(op, st, MSGPACK_PP_SEQ_REVERSE_S(139, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_139(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_139(op, st, MSGPACK_PP_SEQ_REVERSE_S(140, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_140(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_140(op, st, MSGPACK_PP_SEQ_REVERSE_S(141, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_141(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_141(op, st, MSGPACK_PP_SEQ_REVERSE_S(142, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_142(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_142(op, st, MSGPACK_PP_SEQ_REVERSE_S(143, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_143(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_143(op, st, MSGPACK_PP_SEQ_REVERSE_S(144, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_144(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_144(op, st, MSGPACK_PP_SEQ_REVERSE_S(145, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_145(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_145(op, st, MSGPACK_PP_SEQ_REVERSE_S(146, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_146(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_146(op, st, MSGPACK_PP_SEQ_REVERSE_S(147, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_147(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_147(op, st, MSGPACK_PP_SEQ_REVERSE_S(148, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_148(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_148(op, st, MSGPACK_PP_SEQ_REVERSE_S(149, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_149(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_149(op, st, MSGPACK_PP_SEQ_REVERSE_S(150, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_150(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_150(op, st, MSGPACK_PP_SEQ_REVERSE_S(151, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_151(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_151(op, st, MSGPACK_PP_SEQ_REVERSE_S(152, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_152(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_152(op, st, MSGPACK_PP_SEQ_REVERSE_S(153, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_153(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_153(op, st, MSGPACK_PP_SEQ_REVERSE_S(154, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_154(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_154(op, st, MSGPACK_PP_SEQ_REVERSE_S(155, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_155(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_155(op, st, MSGPACK_PP_SEQ_REVERSE_S(156, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_156(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_156(op, st, MSGPACK_PP_SEQ_REVERSE_S(157, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_157(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_157(op, st, MSGPACK_PP_SEQ_REVERSE_S(158, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_158(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_158(op, st, MSGPACK_PP_SEQ_REVERSE_S(159, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_159(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_159(op, st, MSGPACK_PP_SEQ_REVERSE_S(160, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_160(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_160(op, st, MSGPACK_PP_SEQ_REVERSE_S(161, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_161(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_161(op, st, MSGPACK_PP_SEQ_REVERSE_S(162, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_162(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_162(op, st, MSGPACK_PP_SEQ_REVERSE_S(163, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_163(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_163(op, st, MSGPACK_PP_SEQ_REVERSE_S(164, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_164(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_164(op, st, MSGPACK_PP_SEQ_REVERSE_S(165, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_165(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_165(op, st, MSGPACK_PP_SEQ_REVERSE_S(166, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_166(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_166(op, st, MSGPACK_PP_SEQ_REVERSE_S(167, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_167(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_167(op, st, MSGPACK_PP_SEQ_REVERSE_S(168, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_168(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_168(op, st, MSGPACK_PP_SEQ_REVERSE_S(169, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_169(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_169(op, st, MSGPACK_PP_SEQ_REVERSE_S(170, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_170(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_170(op, st, MSGPACK_PP_SEQ_REVERSE_S(171, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_171(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_171(op, st, MSGPACK_PP_SEQ_REVERSE_S(172, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_172(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_172(op, st, MSGPACK_PP_SEQ_REVERSE_S(173, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_173(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_173(op, st, MSGPACK_PP_SEQ_REVERSE_S(174, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_174(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_174(op, st, MSGPACK_PP_SEQ_REVERSE_S(175, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_175(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_175(op, st, MSGPACK_PP_SEQ_REVERSE_S(176, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_176(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_176(op, st, MSGPACK_PP_SEQ_REVERSE_S(177, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_177(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_177(op, st, MSGPACK_PP_SEQ_REVERSE_S(178, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_178(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_178(op, st, MSGPACK_PP_SEQ_REVERSE_S(179, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_179(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_179(op, st, MSGPACK_PP_SEQ_REVERSE_S(180, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_180(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_180(op, st, MSGPACK_PP_SEQ_REVERSE_S(181, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_181(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_181(op, st, MSGPACK_PP_SEQ_REVERSE_S(182, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_182(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_182(op, st, MSGPACK_PP_SEQ_REVERSE_S(183, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_183(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_183(op, st, MSGPACK_PP_SEQ_REVERSE_S(184, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_184(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_184(op, st, MSGPACK_PP_SEQ_REVERSE_S(185, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_185(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_185(op, st, MSGPACK_PP_SEQ_REVERSE_S(186, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_186(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_186(op, st, MSGPACK_PP_SEQ_REVERSE_S(187, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_187(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_187(op, st, MSGPACK_PP_SEQ_REVERSE_S(188, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_188(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_188(op, st, MSGPACK_PP_SEQ_REVERSE_S(189, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_189(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_189(op, st, MSGPACK_PP_SEQ_REVERSE_S(190, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_190(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_190(op, st, MSGPACK_PP_SEQ_REVERSE_S(191, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_191(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_191(op, st, MSGPACK_PP_SEQ_REVERSE_S(192, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_192(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_192(op, st, MSGPACK_PP_SEQ_REVERSE_S(193, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_193(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_193(op, st, MSGPACK_PP_SEQ_REVERSE_S(194, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_194(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_194(op, st, MSGPACK_PP_SEQ_REVERSE_S(195, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_195(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_195(op, st, MSGPACK_PP_SEQ_REVERSE_S(196, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_196(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_196(op, st, MSGPACK_PP_SEQ_REVERSE_S(197, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_197(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_197(op, st, MSGPACK_PP_SEQ_REVERSE_S(198, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_198(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_198(op, st, MSGPACK_PP_SEQ_REVERSE_S(199, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_199(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_199(op, st, MSGPACK_PP_SEQ_REVERSE_S(200, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_200(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_200(op, st, MSGPACK_PP_SEQ_REVERSE_S(201, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_201(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_201(op, st, MSGPACK_PP_SEQ_REVERSE_S(202, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_202(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_202(op, st, MSGPACK_PP_SEQ_REVERSE_S(203, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_203(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_203(op, st, MSGPACK_PP_SEQ_REVERSE_S(204, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_204(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_204(op, st, MSGPACK_PP_SEQ_REVERSE_S(205, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_205(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_205(op, st, MSGPACK_PP_SEQ_REVERSE_S(206, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_206(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_206(op, st, MSGPACK_PP_SEQ_REVERSE_S(207, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_207(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_207(op, st, MSGPACK_PP_SEQ_REVERSE_S(208, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_208(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_208(op, st, MSGPACK_PP_SEQ_REVERSE_S(209, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_209(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_209(op, st, MSGPACK_PP_SEQ_REVERSE_S(210, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_210(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_210(op, st, MSGPACK_PP_SEQ_REVERSE_S(211, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_211(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_211(op, st, MSGPACK_PP_SEQ_REVERSE_S(212, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_212(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_212(op, st, MSGPACK_PP_SEQ_REVERSE_S(213, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_213(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_213(op, st, MSGPACK_PP_SEQ_REVERSE_S(214, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_214(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_214(op, st, MSGPACK_PP_SEQ_REVERSE_S(215, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_215(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_215(op, st, MSGPACK_PP_SEQ_REVERSE_S(216, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_216(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_216(op, st, MSGPACK_PP_SEQ_REVERSE_S(217, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_217(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_217(op, st, MSGPACK_PP_SEQ_REVERSE_S(218, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_218(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_218(op, st, MSGPACK_PP_SEQ_REVERSE_S(219, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_219(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_219(op, st, MSGPACK_PP_SEQ_REVERSE_S(220, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_220(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_220(op, st, MSGPACK_PP_SEQ_REVERSE_S(221, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_221(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_221(op, st, MSGPACK_PP_SEQ_REVERSE_S(222, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_222(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_222(op, st, MSGPACK_PP_SEQ_REVERSE_S(223, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_223(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_223(op, st, MSGPACK_PP_SEQ_REVERSE_S(224, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_224(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_224(op, st, MSGPACK_PP_SEQ_REVERSE_S(225, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_225(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_225(op, st, MSGPACK_PP_SEQ_REVERSE_S(226, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_226(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_226(op, st, MSGPACK_PP_SEQ_REVERSE_S(227, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_227(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_227(op, st, MSGPACK_PP_SEQ_REVERSE_S(228, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_228(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_228(op, st, MSGPACK_PP_SEQ_REVERSE_S(229, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_229(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_229(op, st, MSGPACK_PP_SEQ_REVERSE_S(230, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_230(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_230(op, st, MSGPACK_PP_SEQ_REVERSE_S(231, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_231(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_231(op, st, MSGPACK_PP_SEQ_REVERSE_S(232, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_232(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_232(op, st, MSGPACK_PP_SEQ_REVERSE_S(233, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_233(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_233(op, st, MSGPACK_PP_SEQ_REVERSE_S(234, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_234(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_234(op, st, MSGPACK_PP_SEQ_REVERSE_S(235, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_235(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_235(op, st, MSGPACK_PP_SEQ_REVERSE_S(236, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_236(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_236(op, st, MSGPACK_PP_SEQ_REVERSE_S(237, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_237(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_237(op, st, MSGPACK_PP_SEQ_REVERSE_S(238, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_238(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_238(op, st, MSGPACK_PP_SEQ_REVERSE_S(239, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_239(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_239(op, st, MSGPACK_PP_SEQ_REVERSE_S(240, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_240(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_240(op, st, MSGPACK_PP_SEQ_REVERSE_S(241, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_241(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_241(op, st, MSGPACK_PP_SEQ_REVERSE_S(242, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_242(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_242(op, st, MSGPACK_PP_SEQ_REVERSE_S(243, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_243(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_243(op, st, MSGPACK_PP_SEQ_REVERSE_S(244, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_244(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_244(op, st, MSGPACK_PP_SEQ_REVERSE_S(245, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_245(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_245(op, st, MSGPACK_PP_SEQ_REVERSE_S(246, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_246(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_246(op, st, MSGPACK_PP_SEQ_REVERSE_S(247, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_247(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_247(op, st, MSGPACK_PP_SEQ_REVERSE_S(248, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_248(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_248(op, st, MSGPACK_PP_SEQ_REVERSE_S(249, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_249(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_249(op, st, MSGPACK_PP_SEQ_REVERSE_S(250, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_250(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_250(op, st, MSGPACK_PP_SEQ_REVERSE_S(251, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_251(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_251(op, st, MSGPACK_PP_SEQ_REVERSE_S(252, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_252(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_252(op, st, MSGPACK_PP_SEQ_REVERSE_S(253, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_253(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_253(op, st, MSGPACK_PP_SEQ_REVERSE_S(254, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_254(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_254(op, st, MSGPACK_PP_SEQ_REVERSE_S(255, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_255(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_255(op, st, MSGPACK_PP_SEQ_REVERSE_S(256, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# define MSGPACK_PP_SEQ_FOLD_RIGHT_256(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_256(op, st, MSGPACK_PP_SEQ_REVERSE_S(257, ss), MSGPACK_PP_SEQ_SIZE(ss)) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/for_each.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/for_each.hpp new file mode 100644 index 000000000000..6c678a14ea5d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/for_each.hpp @@ -0,0 +1,107 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_FOR_EACH_HPP +# define MSGPACK_PREPROCESSOR_SEQ_FOR_EACH_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_FOR_EACH */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_FOR_EACH(macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_DETAIL_CHECK(macro, data, seq) +# else +# define MSGPACK_PP_SEQ_FOR_EACH(macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_D(macro, data, seq) +# define MSGPACK_PP_SEQ_FOR_EACH_D(macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_DETAIL_CHECK(macro, data, seq) +# endif +# +# define MSGPACK_PP_SEQ_FOR_EACH_DETAIL_CHECK_EXEC(macro, data, seq) MSGPACK_PP_FOR((macro, data, seq, MSGPACK_PP_SEQ_SIZE(seq)), MSGPACK_PP_SEQ_FOR_EACH_P, MSGPACK_PP_SEQ_FOR_EACH_O, MSGPACK_PP_SEQ_FOR_EACH_M) +# define MSGPACK_PP_SEQ_FOR_EACH_DETAIL_CHECK_EMPTY(macro, data, seq) +# +# define MSGPACK_PP_SEQ_FOR_EACH_DETAIL_CHECK(macro, data, seq) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_SEQ_DETAIL_IS_NOT_EMPTY(seq), \ + MSGPACK_PP_SEQ_FOR_EACH_DETAIL_CHECK_EXEC, \ + MSGPACK_PP_SEQ_FOR_EACH_DETAIL_CHECK_EMPTY \ + ) \ + (macro, data, seq) \ +/**/ +# +# define MSGPACK_PP_SEQ_FOR_EACH_P(r, x) MSGPACK_PP_TUPLE_ELEM(4, 3, x) +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_SEQ_FOR_EACH_O(r, x) MSGPACK_PP_SEQ_FOR_EACH_O_I x +# else +# define MSGPACK_PP_SEQ_FOR_EACH_O(r, x) MSGPACK_PP_SEQ_FOR_EACH_O_I(MSGPACK_PP_TUPLE_ELEM(4, 0, x), MSGPACK_PP_TUPLE_ELEM(4, 1, x), MSGPACK_PP_TUPLE_ELEM(4, 2, x), MSGPACK_PP_TUPLE_ELEM(4, 3, x)) +# endif +# +# define MSGPACK_PP_SEQ_FOR_EACH_O_I(macro, data, seq, sz) \ + MSGPACK_PP_SEQ_FOR_EACH_O_I_DEC(macro, data, seq, MSGPACK_PP_DEC(sz)) \ +/**/ +# define MSGPACK_PP_SEQ_FOR_EACH_O_I_DEC(macro, data, seq, sz) \ + ( \ + macro, \ + data, \ + MSGPACK_PP_IF \ + ( \ + sz, \ + MSGPACK_PP_SEQ_FOR_EACH_O_I_TAIL, \ + MSGPACK_PP_SEQ_FOR_EACH_O_I_NIL \ + ) \ + (seq), \ + sz \ + ) \ +/**/ +# define MSGPACK_PP_SEQ_FOR_EACH_O_I_TAIL(seq) MSGPACK_PP_SEQ_TAIL(seq) +# define MSGPACK_PP_SEQ_FOR_EACH_O_I_NIL(seq) MSGPACK_PP_NIL +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_SEQ_FOR_EACH_M(r, x) MSGPACK_PP_SEQ_FOR_EACH_M_IM(r, MSGPACK_PP_TUPLE_REM_4 x) +# define MSGPACK_PP_SEQ_FOR_EACH_M_IM(r, im) MSGPACK_PP_SEQ_FOR_EACH_M_I(r, im) +# else +# define MSGPACK_PP_SEQ_FOR_EACH_M(r, x) MSGPACK_PP_SEQ_FOR_EACH_M_I(r, MSGPACK_PP_TUPLE_ELEM(4, 0, x), MSGPACK_PP_TUPLE_ELEM(4, 1, x), MSGPACK_PP_TUPLE_ELEM(4, 2, x), MSGPACK_PP_TUPLE_ELEM(4, 3, x)) +# endif +# +# define MSGPACK_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq, sz) macro(r, data, MSGPACK_PP_SEQ_HEAD(seq)) +# +# /* MSGPACK_PP_SEQ_FOR_EACH_R */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_FOR_EACH_R(r, macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_DETAIL_CHECK_R(r, macro, data, seq) +# else +# define MSGPACK_PP_SEQ_FOR_EACH_R(r, macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq) +# define MSGPACK_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_DETAIL_CHECK_R(r, macro, data, seq) +# endif +# +# define MSGPACK_PP_SEQ_FOR_EACH_DETAIL_CHECK_EXEC_R(r, macro, data, seq) MSGPACK_PP_FOR_ ## r((macro, data, seq, MSGPACK_PP_SEQ_SIZE(seq)), MSGPACK_PP_SEQ_FOR_EACH_P, MSGPACK_PP_SEQ_FOR_EACH_O, MSGPACK_PP_SEQ_FOR_EACH_M) +# define MSGPACK_PP_SEQ_FOR_EACH_DETAIL_CHECK_EMPTY_R(r, macro, data, seq) +# +# define MSGPACK_PP_SEQ_FOR_EACH_DETAIL_CHECK_R(r, macro, data, seq) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_SEQ_DETAIL_IS_NOT_EMPTY(seq), \ + MSGPACK_PP_SEQ_FOR_EACH_DETAIL_CHECK_EXEC_R, \ + MSGPACK_PP_SEQ_FOR_EACH_DETAIL_CHECK_EMPTY_R \ + ) \ + (r, macro, data, seq) \ +/**/ +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/for_each_i.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/for_each_i.hpp new file mode 100644 index 000000000000..9828c4d20e7d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/for_each_i.hpp @@ -0,0 +1,109 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_FOR_EACH_I_HPP +# define MSGPACK_PREPROCESSOR_SEQ_FOR_EACH_I_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_FOR_EACH_I */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_FOR_EACH_I(macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_I_DETAIL_CHECK(macro, data, seq) +# else +# define MSGPACK_PP_SEQ_FOR_EACH_I(macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_I_I(macro, data, seq) +# define MSGPACK_PP_SEQ_FOR_EACH_I_I(macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_I_DETAIL_CHECK(macro, data, seq) +# endif +# +# define MSGPACK_PP_SEQ_FOR_EACH_I_DETAIL_CHECK_EXEC(macro, data, seq) MSGPACK_PP_FOR((macro, data, seq, 0, MSGPACK_PP_SEQ_SIZE(seq)), MSGPACK_PP_SEQ_FOR_EACH_I_P, MSGPACK_PP_SEQ_FOR_EACH_I_O, MSGPACK_PP_SEQ_FOR_EACH_I_M) +# define MSGPACK_PP_SEQ_FOR_EACH_I_DETAIL_CHECK_EMPTY(macro, data, seq) +# +# define MSGPACK_PP_SEQ_FOR_EACH_I_DETAIL_CHECK(macro, data, seq) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_SEQ_DETAIL_IS_NOT_EMPTY(seq), \ + MSGPACK_PP_SEQ_FOR_EACH_I_DETAIL_CHECK_EXEC, \ + MSGPACK_PP_SEQ_FOR_EACH_I_DETAIL_CHECK_EMPTY \ + ) \ + (macro, data, seq) \ +/**/ +# +# define MSGPACK_PP_SEQ_FOR_EACH_I_P(r, x) MSGPACK_PP_TUPLE_ELEM(5, 4, x) +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_SEQ_FOR_EACH_I_O(r, x) MSGPACK_PP_SEQ_FOR_EACH_I_O_I x +# else +# define MSGPACK_PP_SEQ_FOR_EACH_I_O(r, x) MSGPACK_PP_SEQ_FOR_EACH_I_O_I(MSGPACK_PP_TUPLE_ELEM(5, 0, x), MSGPACK_PP_TUPLE_ELEM(5, 1, x), MSGPACK_PP_TUPLE_ELEM(5, 2, x), MSGPACK_PP_TUPLE_ELEM(5, 3, x), MSGPACK_PP_TUPLE_ELEM(5, 4, x)) +# endif +# +# define MSGPACK_PP_SEQ_FOR_EACH_I_O_I(macro, data, seq, i, sz) \ + MSGPACK_PP_SEQ_FOR_EACH_I_O_I_DEC(macro, data, seq, i, MSGPACK_PP_DEC(sz)) \ +/**/ +# define MSGPACK_PP_SEQ_FOR_EACH_I_O_I_DEC(macro, data, seq, i, sz) \ + ( \ + macro, \ + data, \ + MSGPACK_PP_IF \ + ( \ + sz, \ + MSGPACK_PP_SEQ_FOR_EACH_I_O_I_TAIL, \ + MSGPACK_PP_SEQ_FOR_EACH_I_O_I_NIL \ + ) \ + (seq), \ + MSGPACK_PP_INC(i), \ + sz \ + ) \ +/**/ +# define MSGPACK_PP_SEQ_FOR_EACH_I_O_I_TAIL(seq) MSGPACK_PP_SEQ_TAIL(seq) +# define MSGPACK_PP_SEQ_FOR_EACH_I_O_I_NIL(seq) MSGPACK_PP_NIL +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_SEQ_FOR_EACH_I_M(r, x) MSGPACK_PP_SEQ_FOR_EACH_I_M_IM(r, MSGPACK_PP_TUPLE_REM_5 x) +# define MSGPACK_PP_SEQ_FOR_EACH_I_M_IM(r, im) MSGPACK_PP_SEQ_FOR_EACH_I_M_I(r, im) +# else +# define MSGPACK_PP_SEQ_FOR_EACH_I_M(r, x) MSGPACK_PP_SEQ_FOR_EACH_I_M_I(r, MSGPACK_PP_TUPLE_ELEM(5, 0, x), MSGPACK_PP_TUPLE_ELEM(5, 1, x), MSGPACK_PP_TUPLE_ELEM(5, 2, x), MSGPACK_PP_TUPLE_ELEM(5, 3, x), MSGPACK_PP_TUPLE_ELEM(5, 4, x)) +# endif +# +# define MSGPACK_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i, sz) macro(r, data, i, MSGPACK_PP_SEQ_HEAD(seq)) +# +# /* MSGPACK_PP_SEQ_FOR_EACH_I_R */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK(r, macro, data, seq) +# else +# define MSGPACK_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq) +# define MSGPACK_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK(r, macro, data, seq) +# endif +# +# define MSGPACK_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EXEC(r, macro, data, seq) MSGPACK_PP_FOR_ ## r((macro, data, seq, 0, MSGPACK_PP_SEQ_SIZE(seq)), MSGPACK_PP_SEQ_FOR_EACH_I_P, MSGPACK_PP_SEQ_FOR_EACH_I_O, MSGPACK_PP_SEQ_FOR_EACH_I_M) +# define MSGPACK_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EMPTY(r, macro, data, seq) +# +# define MSGPACK_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK(r, macro, data, seq) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_SEQ_DETAIL_IS_NOT_EMPTY(seq), \ + MSGPACK_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EXEC, \ + MSGPACK_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EMPTY \ + ) \ + (r, macro, data, seq) \ +/**/ +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/for_each_product.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/for_each_product.hpp new file mode 100644 index 000000000000..0b297e22b1b8 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/for_each_product.hpp @@ -0,0 +1,126 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_FOR_EACH_PRODUCT_HPP +# define MSGPACK_PREPROCESSOR_SEQ_FOR_EACH_PRODUCT_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_FOR_EACH_PRODUCT */ +# +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT(macro, sets) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_E(MSGPACK_PP_FOR, macro, sets) +# +# /* MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_R */ +# +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_R(r, macro, sets) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_E(MSGPACK_PP_FOR_ ## r, macro, sets) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_E(impl, macro, sets) impl((MSGPACK_PP_SEQ_HEAD(sets)(nil), MSGPACK_PP_SEQ_TAIL(sets)(nil), (nil), macro), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_0) +# else +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_E(impl, macro, sets) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_E_I(impl, macro, sets) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_E_I(impl, macro, sets) impl((MSGPACK_PP_SEQ_HEAD(sets)(nil), MSGPACK_PP_SEQ_TAIL(sets)(nil), (nil), macro), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_0) +# endif +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P_I data +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P_I(cset, rset, res, macro) MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(cset)) +# else +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P(r, data) MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(MSGPACK_PP_TUPLE_ELEM(4, 0, data))) +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O_I data +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O_I(cset, rset, res, macro) (MSGPACK_PP_SEQ_TAIL(cset), rset, res, macro) +# else +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O(r, data) (MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(4, 0, data)), MSGPACK_PP_TUPLE_ELEM(4, 1, data), MSGPACK_PP_TUPLE_ELEM(4, 2, data), MSGPACK_PP_TUPLE_ELEM(4, 3, data)) +# endif +# +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, i) MSGPACK_PP_IF(MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(MSGPACK_PP_TUPLE_ELEM(4, 1, data))), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_ ## i, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, MSGPACK_PP_TUPLE_ELEM(4, 0, data), MSGPACK_PP_TUPLE_ELEM(4, 1, data), MSGPACK_PP_TUPLE_ELEM(4, 2, data), MSGPACK_PP_TUPLE_ELEM(4, 3, data)) +# else +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I_IM(r, MSGPACK_PP_TUPLE_REM_4 data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I_IM(r, im) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, im) +# endif +# +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, cset, rset, res, macro) macro(r, MSGPACK_PP_SEQ_TAIL(res (MSGPACK_PP_SEQ_HEAD(cset)))) +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H_I data +# else +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H_I(MSGPACK_PP_TUPLE_ELEM(4, 0, data), MSGPACK_PP_TUPLE_ELEM(4, 1, data), MSGPACK_PP_TUPLE_ELEM(4, 2, data), MSGPACK_PP_TUPLE_ELEM(4, 3, data)) +# endif +# +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H_I(cset, rset, res, macro) (MSGPACK_PP_SEQ_HEAD(rset)(nil), MSGPACK_PP_SEQ_TAIL(rset), res (MSGPACK_PP_SEQ_HEAD(cset)), macro) +# +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_0(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 0)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_1(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 1)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_2(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 2)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_3(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 3)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_4(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 4)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_5(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 5)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_6(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 6)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_7(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 7)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_8(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 8)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_9(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 9)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_10(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 10)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_11(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 11)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_12(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 12)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_13(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 13)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_14(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 14)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_15(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 15)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_16(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 16)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_17(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 17)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_18(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 18)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_19(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 19)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_20(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 20)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_21(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 21)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_22(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 22)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_23(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 23)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_24(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 24)(r, data) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_25(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 25)(r, data) +# +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_0(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_1) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_1(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_2) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_2(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_3) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_3(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_4) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_4(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_5) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_5(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_6) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_6(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_7) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_7(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_8) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_8(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_9) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_9(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_10) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_10(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_11) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_11(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_12) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_12(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_13) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_13(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_14) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_14(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_15) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_15(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_16) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_16(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_17) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_17(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_18) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_18(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_19) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_19(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_20) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_20(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_21) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_21(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_22) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_22(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_23) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_23(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_24) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_24(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_25) +# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_25(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_26) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/insert.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/insert.hpp new file mode 100644 index 000000000000..afe3244c8622 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/insert.hpp @@ -0,0 +1,28 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_INSERT_HPP +# define MSGPACK_PREPROCESSOR_SEQ_INSERT_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_INSERT */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_INSERT(seq, i, elem) MSGPACK_PP_SEQ_FIRST_N(i, seq) (elem) MSGPACK_PP_SEQ_REST_N(i, seq) +# else +# define MSGPACK_PP_SEQ_INSERT(seq, i, elem) MSGPACK_PP_SEQ_INSERT_I(seq, i, elem) +# define MSGPACK_PP_SEQ_INSERT_I(seq, i, elem) MSGPACK_PP_SEQ_FIRST_N(i, seq) (elem) MSGPACK_PP_SEQ_REST_N(i, seq) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/pop_back.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/pop_back.hpp new file mode 100644 index 000000000000..838c02ffb081 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/pop_back.hpp @@ -0,0 +1,29 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_POP_BACK_HPP +# define MSGPACK_PREPROCESSOR_SEQ_POP_BACK_HPP +# +# include +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_POP_BACK */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_POP_BACK(seq) MSGPACK_PP_SEQ_FIRST_N(MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(seq)), seq) +# else +# define MSGPACK_PP_SEQ_POP_BACK(seq) MSGPACK_PP_SEQ_POP_BACK_I(seq) +# define MSGPACK_PP_SEQ_POP_BACK_I(seq) MSGPACK_PP_SEQ_FIRST_N(MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(seq)), seq) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/pop_front.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/pop_front.hpp new file mode 100644 index 000000000000..2ae59a5c9cce --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/pop_front.hpp @@ -0,0 +1,27 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_POP_FRONT_HPP +# define MSGPACK_PREPROCESSOR_SEQ_POP_FRONT_HPP +# +# include +# include +# +# /* MSGPACK_PP_SEQ_POP_FRONT */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_POP_FRONT(seq) MSGPACK_PP_SEQ_TAIL(seq) +# else +# define MSGPACK_PP_SEQ_POP_FRONT(seq) MSGPACK_PP_SEQ_POP_FRONT_I(seq) +# define MSGPACK_PP_SEQ_POP_FRONT_I(seq) MSGPACK_PP_SEQ_TAIL(seq) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/push_back.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/push_back.hpp new file mode 100644 index 000000000000..873db65959bf --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/push_back.hpp @@ -0,0 +1,19 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_PUSH_BACK_HPP +# define MSGPACK_PREPROCESSOR_SEQ_PUSH_BACK_HPP +# +# /* MSGPACK_PP_SEQ_PUSH_BACK */ +# +# define MSGPACK_PP_SEQ_PUSH_BACK(seq, elem) seq(elem) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/push_front.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/push_front.hpp new file mode 100644 index 000000000000..a8148f04ea50 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/push_front.hpp @@ -0,0 +1,19 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_PUSH_FRONT_HPP +# define MSGPACK_PREPROCESSOR_SEQ_PUSH_FRONT_HPP +# +# /* MSGPACK_PP_SEQ_PUSH_FRONT */ +# +# define MSGPACK_PP_SEQ_PUSH_FRONT(seq, elem) (elem)seq +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/remove.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/remove.hpp new file mode 100644 index 000000000000..a87331ed6700 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/remove.hpp @@ -0,0 +1,29 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_REMOVE_HPP +# define MSGPACK_PREPROCESSOR_SEQ_REMOVE_HPP +# +# include +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_REMOVE */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_REMOVE(seq, i) MSGPACK_PP_SEQ_FIRST_N(i, seq) MSGPACK_PP_SEQ_REST_N(MSGPACK_PP_INC(i), seq) +# else +# define MSGPACK_PP_SEQ_REMOVE(seq, i) MSGPACK_PP_SEQ_REMOVE_I(seq, i) +# define MSGPACK_PP_SEQ_REMOVE_I(seq, i) MSGPACK_PP_SEQ_FIRST_N(i, seq) MSGPACK_PP_SEQ_REST_N(MSGPACK_PP_INC(i), seq) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/replace.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/replace.hpp new file mode 100644 index 000000000000..697a62c4df07 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/replace.hpp @@ -0,0 +1,45 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_REPLACE_HPP +# define MSGPACK_PREPROCESSOR_SEQ_REPLACE_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_REPLACE */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_REPLACE(seq, i, elem) MSGPACK_PP_SEQ_FIRST_N(i, seq) (elem) MSGPACK_PP_SEQ_REPLACE_DETAIL_REST(seq, i) +# else +# define MSGPACK_PP_SEQ_REPLACE(seq, i, elem) MSGPACK_PP_SEQ_REPLACE_I(seq, i, elem) +# define MSGPACK_PP_SEQ_REPLACE_I(seq, i, elem) MSGPACK_PP_SEQ_FIRST_N(i, seq) (elem) MSGPACK_PP_SEQ_REPLACE_DETAIL_REST(seq, i) +# endif +# +# define MSGPACK_PP_SEQ_REPLACE_DETAIL_REST_EMPTY(seq, i) +# define MSGPACK_PP_SEQ_REPLACE_DETAIL_REST_VALID(seq, i) MSGPACK_PP_SEQ_REST_N(MSGPACK_PP_INC(i), seq) +# define MSGPACK_PP_SEQ_REPLACE_DETAIL_REST(seq, i) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_EQUAL(i,MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(seq))), \ + MSGPACK_PP_SEQ_REPLACE_DETAIL_REST_EMPTY, \ + MSGPACK_PP_SEQ_REPLACE_DETAIL_REST_VALID \ + ) \ + (seq, i) \ +/**/ +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/rest_n.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/rest_n.hpp new file mode 100644 index 000000000000..f8aac0b88225 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/rest_n.hpp @@ -0,0 +1,46 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_REST_N_HPP +# define MSGPACK_PREPROCESSOR_SEQ_REST_N_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_REST_N */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_REST_N(n, seq) MSGPACK_PP_SEQ_REST_N_DETAIL_EXEC(n, seq, MSGPACK_PP_SEQ_DETAIL_EMPTY_SIZE(seq)) +# else +# define MSGPACK_PP_SEQ_REST_N(n, seq) MSGPACK_PP_SEQ_REST_N_I(n, seq) +# define MSGPACK_PP_SEQ_REST_N_I(n, seq) MSGPACK_PP_SEQ_REST_N_DETAIL_EXEC(n, seq, MSGPACK_PP_SEQ_DETAIL_EMPTY_SIZE(seq)) +# endif +# +# define MSGPACK_PP_SEQ_REST_N_DETAIL_EXEC(n, seq, size) \ + MSGPACK_PP_EXPR_IIF \ + ( \ + MSGPACK_PP_BITAND \ + ( \ + MSGPACK_PP_SEQ_DETAIL_IS_NOT_EMPTY_SIZE(size), \ + MSGPACK_PP_NOT_EQUAL(n,size) \ + ), \ + MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_SEQ_SPLIT(MSGPACK_PP_INC(n), MSGPACK_PP_IDENTITY( (nil) seq )))() \ + ) \ +/**/ +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/reverse.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/reverse.hpp new file mode 100644 index 000000000000..9beba27ef98d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/reverse.hpp @@ -0,0 +1,39 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_REVERSE_HPP +# define MSGPACK_PREPROCESSOR_SEQ_REVERSE_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_REVERSE */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_REVERSE(seq) MSGPACK_PP_SEQ_FOLD_LEFT(MSGPACK_PP_SEQ_REVERSE_O, MSGPACK_PP_EMPTY, seq)() +# else +# define MSGPACK_PP_SEQ_REVERSE(seq) MSGPACK_PP_SEQ_REVERSE_I(seq) +# define MSGPACK_PP_SEQ_REVERSE_I(seq) MSGPACK_PP_SEQ_FOLD_LEFT(MSGPACK_PP_SEQ_REVERSE_O, MSGPACK_PP_EMPTY, seq)() +# endif +# +# define MSGPACK_PP_SEQ_REVERSE_O(s, state, elem) (elem) state +# +# /* MSGPACK_PP_SEQ_REVERSE_S */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_REVERSE_S(s, seq) MSGPACK_PP_SEQ_FOLD_LEFT_ ## s(MSGPACK_PP_SEQ_REVERSE_O, MSGPACK_PP_EMPTY, seq)() +# else +# define MSGPACK_PP_SEQ_REVERSE_S(s, seq) MSGPACK_PP_SEQ_REVERSE_S_I(s, seq) +# define MSGPACK_PP_SEQ_REVERSE_S_I(s, seq) MSGPACK_PP_SEQ_FOLD_LEFT_ ## s(MSGPACK_PP_SEQ_REVERSE_O, MSGPACK_PP_EMPTY, seq)() +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/seq.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/seq.hpp new file mode 100644 index 000000000000..c789c2cc035e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/seq.hpp @@ -0,0 +1,44 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_SEQ_HPP +# define MSGPACK_PREPROCESSOR_SEQ_SEQ_HPP +# +# include +# include +# +# /* MSGPACK_PP_SEQ_HEAD */ +# +# define MSGPACK_PP_SEQ_HEAD(seq) MSGPACK_PP_SEQ_ELEM(0, seq) +# +# /* MSGPACK_PP_SEQ_TAIL */ +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_SEQ_TAIL(seq) MSGPACK_PP_SEQ_TAIL_1((seq)) +# define MSGPACK_PP_SEQ_TAIL_1(par) MSGPACK_PP_SEQ_TAIL_2 ## par +# define MSGPACK_PP_SEQ_TAIL_2(seq) MSGPACK_PP_SEQ_TAIL_I ## seq +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_SEQ_TAIL(seq) MSGPACK_PP_SEQ_TAIL_ID(MSGPACK_PP_SEQ_TAIL_I seq) +# define MSGPACK_PP_SEQ_TAIL_ID(id) id +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_TAIL(seq) MSGPACK_PP_SEQ_TAIL_D(seq) +# define MSGPACK_PP_SEQ_TAIL_D(seq) MSGPACK_PP_SEQ_TAIL_I seq +# else +# define MSGPACK_PP_SEQ_TAIL(seq) MSGPACK_PP_SEQ_TAIL_I seq +# endif +# +# define MSGPACK_PP_SEQ_TAIL_I(x) +# +# /* MSGPACK_PP_SEQ_NIL */ +# +# define MSGPACK_PP_SEQ_NIL(x) (x) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/size.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/size.hpp new file mode 100644 index 000000000000..0e04baf42a3f --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/size.hpp @@ -0,0 +1,548 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_SIZE_HPP +# define MSGPACK_PREPROCESSOR_SEQ_SIZE_HPP +# +# include +# include +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_SEQ_SIZE(seq) MSGPACK_PP_SEQ_SIZE_I((seq)) +# define MSGPACK_PP_SEQ_SIZE_I(par) MSGPACK_PP_SEQ_SIZE_II ## par +# define MSGPACK_PP_SEQ_SIZE_II(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_SIZE_, MSGPACK_PP_SEQ_SIZE_0 ## seq) +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() || MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_SEQ_SIZE(seq) MSGPACK_PP_SEQ_SIZE_I(seq) +# define MSGPACK_PP_SEQ_SIZE_I(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_SIZE_, MSGPACK_PP_SEQ_SIZE_0 seq) +# elif defined(__IBMC__) || defined(__IBMCPP__) +# define MSGPACK_PP_SEQ_SIZE(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_SIZE_, MSGPACK_PP_CAT(MSGPACK_PP_SEQ_SIZE_0, seq)) +# else +# define MSGPACK_PP_SEQ_SIZE(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_SIZE_, MSGPACK_PP_SEQ_SIZE_0 seq) +# endif +# +# define MSGPACK_PP_SEQ_SIZE_0(_) MSGPACK_PP_SEQ_SIZE_1 +# define MSGPACK_PP_SEQ_SIZE_1(_) MSGPACK_PP_SEQ_SIZE_2 +# define MSGPACK_PP_SEQ_SIZE_2(_) MSGPACK_PP_SEQ_SIZE_3 +# define MSGPACK_PP_SEQ_SIZE_3(_) MSGPACK_PP_SEQ_SIZE_4 +# define MSGPACK_PP_SEQ_SIZE_4(_) MSGPACK_PP_SEQ_SIZE_5 +# define MSGPACK_PP_SEQ_SIZE_5(_) MSGPACK_PP_SEQ_SIZE_6 +# define MSGPACK_PP_SEQ_SIZE_6(_) MSGPACK_PP_SEQ_SIZE_7 +# define MSGPACK_PP_SEQ_SIZE_7(_) MSGPACK_PP_SEQ_SIZE_8 +# define MSGPACK_PP_SEQ_SIZE_8(_) MSGPACK_PP_SEQ_SIZE_9 +# define MSGPACK_PP_SEQ_SIZE_9(_) MSGPACK_PP_SEQ_SIZE_10 +# define MSGPACK_PP_SEQ_SIZE_10(_) MSGPACK_PP_SEQ_SIZE_11 +# define MSGPACK_PP_SEQ_SIZE_11(_) MSGPACK_PP_SEQ_SIZE_12 +# define MSGPACK_PP_SEQ_SIZE_12(_) MSGPACK_PP_SEQ_SIZE_13 +# define MSGPACK_PP_SEQ_SIZE_13(_) MSGPACK_PP_SEQ_SIZE_14 +# define MSGPACK_PP_SEQ_SIZE_14(_) MSGPACK_PP_SEQ_SIZE_15 +# define MSGPACK_PP_SEQ_SIZE_15(_) MSGPACK_PP_SEQ_SIZE_16 +# define MSGPACK_PP_SEQ_SIZE_16(_) MSGPACK_PP_SEQ_SIZE_17 +# define MSGPACK_PP_SEQ_SIZE_17(_) MSGPACK_PP_SEQ_SIZE_18 +# define MSGPACK_PP_SEQ_SIZE_18(_) MSGPACK_PP_SEQ_SIZE_19 +# define MSGPACK_PP_SEQ_SIZE_19(_) MSGPACK_PP_SEQ_SIZE_20 +# define MSGPACK_PP_SEQ_SIZE_20(_) MSGPACK_PP_SEQ_SIZE_21 +# define MSGPACK_PP_SEQ_SIZE_21(_) MSGPACK_PP_SEQ_SIZE_22 +# define MSGPACK_PP_SEQ_SIZE_22(_) MSGPACK_PP_SEQ_SIZE_23 +# define MSGPACK_PP_SEQ_SIZE_23(_) MSGPACK_PP_SEQ_SIZE_24 +# define MSGPACK_PP_SEQ_SIZE_24(_) MSGPACK_PP_SEQ_SIZE_25 +# define MSGPACK_PP_SEQ_SIZE_25(_) MSGPACK_PP_SEQ_SIZE_26 +# define MSGPACK_PP_SEQ_SIZE_26(_) MSGPACK_PP_SEQ_SIZE_27 +# define MSGPACK_PP_SEQ_SIZE_27(_) MSGPACK_PP_SEQ_SIZE_28 +# define MSGPACK_PP_SEQ_SIZE_28(_) MSGPACK_PP_SEQ_SIZE_29 +# define MSGPACK_PP_SEQ_SIZE_29(_) MSGPACK_PP_SEQ_SIZE_30 +# define MSGPACK_PP_SEQ_SIZE_30(_) MSGPACK_PP_SEQ_SIZE_31 +# define MSGPACK_PP_SEQ_SIZE_31(_) MSGPACK_PP_SEQ_SIZE_32 +# define MSGPACK_PP_SEQ_SIZE_32(_) MSGPACK_PP_SEQ_SIZE_33 +# define MSGPACK_PP_SEQ_SIZE_33(_) MSGPACK_PP_SEQ_SIZE_34 +# define MSGPACK_PP_SEQ_SIZE_34(_) MSGPACK_PP_SEQ_SIZE_35 +# define MSGPACK_PP_SEQ_SIZE_35(_) MSGPACK_PP_SEQ_SIZE_36 +# define MSGPACK_PP_SEQ_SIZE_36(_) MSGPACK_PP_SEQ_SIZE_37 +# define MSGPACK_PP_SEQ_SIZE_37(_) MSGPACK_PP_SEQ_SIZE_38 +# define MSGPACK_PP_SEQ_SIZE_38(_) MSGPACK_PP_SEQ_SIZE_39 +# define MSGPACK_PP_SEQ_SIZE_39(_) MSGPACK_PP_SEQ_SIZE_40 +# define MSGPACK_PP_SEQ_SIZE_40(_) MSGPACK_PP_SEQ_SIZE_41 +# define MSGPACK_PP_SEQ_SIZE_41(_) MSGPACK_PP_SEQ_SIZE_42 +# define MSGPACK_PP_SEQ_SIZE_42(_) MSGPACK_PP_SEQ_SIZE_43 +# define MSGPACK_PP_SEQ_SIZE_43(_) MSGPACK_PP_SEQ_SIZE_44 +# define MSGPACK_PP_SEQ_SIZE_44(_) MSGPACK_PP_SEQ_SIZE_45 +# define MSGPACK_PP_SEQ_SIZE_45(_) MSGPACK_PP_SEQ_SIZE_46 +# define MSGPACK_PP_SEQ_SIZE_46(_) MSGPACK_PP_SEQ_SIZE_47 +# define MSGPACK_PP_SEQ_SIZE_47(_) MSGPACK_PP_SEQ_SIZE_48 +# define MSGPACK_PP_SEQ_SIZE_48(_) MSGPACK_PP_SEQ_SIZE_49 +# define MSGPACK_PP_SEQ_SIZE_49(_) MSGPACK_PP_SEQ_SIZE_50 +# define MSGPACK_PP_SEQ_SIZE_50(_) MSGPACK_PP_SEQ_SIZE_51 +# define MSGPACK_PP_SEQ_SIZE_51(_) MSGPACK_PP_SEQ_SIZE_52 +# define MSGPACK_PP_SEQ_SIZE_52(_) MSGPACK_PP_SEQ_SIZE_53 +# define MSGPACK_PP_SEQ_SIZE_53(_) MSGPACK_PP_SEQ_SIZE_54 +# define MSGPACK_PP_SEQ_SIZE_54(_) MSGPACK_PP_SEQ_SIZE_55 +# define MSGPACK_PP_SEQ_SIZE_55(_) MSGPACK_PP_SEQ_SIZE_56 +# define MSGPACK_PP_SEQ_SIZE_56(_) MSGPACK_PP_SEQ_SIZE_57 +# define MSGPACK_PP_SEQ_SIZE_57(_) MSGPACK_PP_SEQ_SIZE_58 +# define MSGPACK_PP_SEQ_SIZE_58(_) MSGPACK_PP_SEQ_SIZE_59 +# define MSGPACK_PP_SEQ_SIZE_59(_) MSGPACK_PP_SEQ_SIZE_60 +# define MSGPACK_PP_SEQ_SIZE_60(_) MSGPACK_PP_SEQ_SIZE_61 +# define MSGPACK_PP_SEQ_SIZE_61(_) MSGPACK_PP_SEQ_SIZE_62 +# define MSGPACK_PP_SEQ_SIZE_62(_) MSGPACK_PP_SEQ_SIZE_63 +# define MSGPACK_PP_SEQ_SIZE_63(_) MSGPACK_PP_SEQ_SIZE_64 +# define MSGPACK_PP_SEQ_SIZE_64(_) MSGPACK_PP_SEQ_SIZE_65 +# define MSGPACK_PP_SEQ_SIZE_65(_) MSGPACK_PP_SEQ_SIZE_66 +# define MSGPACK_PP_SEQ_SIZE_66(_) MSGPACK_PP_SEQ_SIZE_67 +# define MSGPACK_PP_SEQ_SIZE_67(_) MSGPACK_PP_SEQ_SIZE_68 +# define MSGPACK_PP_SEQ_SIZE_68(_) MSGPACK_PP_SEQ_SIZE_69 +# define MSGPACK_PP_SEQ_SIZE_69(_) MSGPACK_PP_SEQ_SIZE_70 +# define MSGPACK_PP_SEQ_SIZE_70(_) MSGPACK_PP_SEQ_SIZE_71 +# define MSGPACK_PP_SEQ_SIZE_71(_) MSGPACK_PP_SEQ_SIZE_72 +# define MSGPACK_PP_SEQ_SIZE_72(_) MSGPACK_PP_SEQ_SIZE_73 +# define MSGPACK_PP_SEQ_SIZE_73(_) MSGPACK_PP_SEQ_SIZE_74 +# define MSGPACK_PP_SEQ_SIZE_74(_) MSGPACK_PP_SEQ_SIZE_75 +# define MSGPACK_PP_SEQ_SIZE_75(_) MSGPACK_PP_SEQ_SIZE_76 +# define MSGPACK_PP_SEQ_SIZE_76(_) MSGPACK_PP_SEQ_SIZE_77 +# define MSGPACK_PP_SEQ_SIZE_77(_) MSGPACK_PP_SEQ_SIZE_78 +# define MSGPACK_PP_SEQ_SIZE_78(_) MSGPACK_PP_SEQ_SIZE_79 +# define MSGPACK_PP_SEQ_SIZE_79(_) MSGPACK_PP_SEQ_SIZE_80 +# define MSGPACK_PP_SEQ_SIZE_80(_) MSGPACK_PP_SEQ_SIZE_81 +# define MSGPACK_PP_SEQ_SIZE_81(_) MSGPACK_PP_SEQ_SIZE_82 +# define MSGPACK_PP_SEQ_SIZE_82(_) MSGPACK_PP_SEQ_SIZE_83 +# define MSGPACK_PP_SEQ_SIZE_83(_) MSGPACK_PP_SEQ_SIZE_84 +# define MSGPACK_PP_SEQ_SIZE_84(_) MSGPACK_PP_SEQ_SIZE_85 +# define MSGPACK_PP_SEQ_SIZE_85(_) MSGPACK_PP_SEQ_SIZE_86 +# define MSGPACK_PP_SEQ_SIZE_86(_) MSGPACK_PP_SEQ_SIZE_87 +# define MSGPACK_PP_SEQ_SIZE_87(_) MSGPACK_PP_SEQ_SIZE_88 +# define MSGPACK_PP_SEQ_SIZE_88(_) MSGPACK_PP_SEQ_SIZE_89 +# define MSGPACK_PP_SEQ_SIZE_89(_) MSGPACK_PP_SEQ_SIZE_90 +# define MSGPACK_PP_SEQ_SIZE_90(_) MSGPACK_PP_SEQ_SIZE_91 +# define MSGPACK_PP_SEQ_SIZE_91(_) MSGPACK_PP_SEQ_SIZE_92 +# define MSGPACK_PP_SEQ_SIZE_92(_) MSGPACK_PP_SEQ_SIZE_93 +# define MSGPACK_PP_SEQ_SIZE_93(_) MSGPACK_PP_SEQ_SIZE_94 +# define MSGPACK_PP_SEQ_SIZE_94(_) MSGPACK_PP_SEQ_SIZE_95 +# define MSGPACK_PP_SEQ_SIZE_95(_) MSGPACK_PP_SEQ_SIZE_96 +# define MSGPACK_PP_SEQ_SIZE_96(_) MSGPACK_PP_SEQ_SIZE_97 +# define MSGPACK_PP_SEQ_SIZE_97(_) MSGPACK_PP_SEQ_SIZE_98 +# define MSGPACK_PP_SEQ_SIZE_98(_) MSGPACK_PP_SEQ_SIZE_99 +# define MSGPACK_PP_SEQ_SIZE_99(_) MSGPACK_PP_SEQ_SIZE_100 +# define MSGPACK_PP_SEQ_SIZE_100(_) MSGPACK_PP_SEQ_SIZE_101 +# define MSGPACK_PP_SEQ_SIZE_101(_) MSGPACK_PP_SEQ_SIZE_102 +# define MSGPACK_PP_SEQ_SIZE_102(_) MSGPACK_PP_SEQ_SIZE_103 +# define MSGPACK_PP_SEQ_SIZE_103(_) MSGPACK_PP_SEQ_SIZE_104 +# define MSGPACK_PP_SEQ_SIZE_104(_) MSGPACK_PP_SEQ_SIZE_105 +# define MSGPACK_PP_SEQ_SIZE_105(_) MSGPACK_PP_SEQ_SIZE_106 +# define MSGPACK_PP_SEQ_SIZE_106(_) MSGPACK_PP_SEQ_SIZE_107 +# define MSGPACK_PP_SEQ_SIZE_107(_) MSGPACK_PP_SEQ_SIZE_108 +# define MSGPACK_PP_SEQ_SIZE_108(_) MSGPACK_PP_SEQ_SIZE_109 +# define MSGPACK_PP_SEQ_SIZE_109(_) MSGPACK_PP_SEQ_SIZE_110 +# define MSGPACK_PP_SEQ_SIZE_110(_) MSGPACK_PP_SEQ_SIZE_111 +# define MSGPACK_PP_SEQ_SIZE_111(_) MSGPACK_PP_SEQ_SIZE_112 +# define MSGPACK_PP_SEQ_SIZE_112(_) MSGPACK_PP_SEQ_SIZE_113 +# define MSGPACK_PP_SEQ_SIZE_113(_) MSGPACK_PP_SEQ_SIZE_114 +# define MSGPACK_PP_SEQ_SIZE_114(_) MSGPACK_PP_SEQ_SIZE_115 +# define MSGPACK_PP_SEQ_SIZE_115(_) MSGPACK_PP_SEQ_SIZE_116 +# define MSGPACK_PP_SEQ_SIZE_116(_) MSGPACK_PP_SEQ_SIZE_117 +# define MSGPACK_PP_SEQ_SIZE_117(_) MSGPACK_PP_SEQ_SIZE_118 +# define MSGPACK_PP_SEQ_SIZE_118(_) MSGPACK_PP_SEQ_SIZE_119 +# define MSGPACK_PP_SEQ_SIZE_119(_) MSGPACK_PP_SEQ_SIZE_120 +# define MSGPACK_PP_SEQ_SIZE_120(_) MSGPACK_PP_SEQ_SIZE_121 +# define MSGPACK_PP_SEQ_SIZE_121(_) MSGPACK_PP_SEQ_SIZE_122 +# define MSGPACK_PP_SEQ_SIZE_122(_) MSGPACK_PP_SEQ_SIZE_123 +# define MSGPACK_PP_SEQ_SIZE_123(_) MSGPACK_PP_SEQ_SIZE_124 +# define MSGPACK_PP_SEQ_SIZE_124(_) MSGPACK_PP_SEQ_SIZE_125 +# define MSGPACK_PP_SEQ_SIZE_125(_) MSGPACK_PP_SEQ_SIZE_126 +# define MSGPACK_PP_SEQ_SIZE_126(_) MSGPACK_PP_SEQ_SIZE_127 +# define MSGPACK_PP_SEQ_SIZE_127(_) MSGPACK_PP_SEQ_SIZE_128 +# define MSGPACK_PP_SEQ_SIZE_128(_) MSGPACK_PP_SEQ_SIZE_129 +# define MSGPACK_PP_SEQ_SIZE_129(_) MSGPACK_PP_SEQ_SIZE_130 +# define MSGPACK_PP_SEQ_SIZE_130(_) MSGPACK_PP_SEQ_SIZE_131 +# define MSGPACK_PP_SEQ_SIZE_131(_) MSGPACK_PP_SEQ_SIZE_132 +# define MSGPACK_PP_SEQ_SIZE_132(_) MSGPACK_PP_SEQ_SIZE_133 +# define MSGPACK_PP_SEQ_SIZE_133(_) MSGPACK_PP_SEQ_SIZE_134 +# define MSGPACK_PP_SEQ_SIZE_134(_) MSGPACK_PP_SEQ_SIZE_135 +# define MSGPACK_PP_SEQ_SIZE_135(_) MSGPACK_PP_SEQ_SIZE_136 +# define MSGPACK_PP_SEQ_SIZE_136(_) MSGPACK_PP_SEQ_SIZE_137 +# define MSGPACK_PP_SEQ_SIZE_137(_) MSGPACK_PP_SEQ_SIZE_138 +# define MSGPACK_PP_SEQ_SIZE_138(_) MSGPACK_PP_SEQ_SIZE_139 +# define MSGPACK_PP_SEQ_SIZE_139(_) MSGPACK_PP_SEQ_SIZE_140 +# define MSGPACK_PP_SEQ_SIZE_140(_) MSGPACK_PP_SEQ_SIZE_141 +# define MSGPACK_PP_SEQ_SIZE_141(_) MSGPACK_PP_SEQ_SIZE_142 +# define MSGPACK_PP_SEQ_SIZE_142(_) MSGPACK_PP_SEQ_SIZE_143 +# define MSGPACK_PP_SEQ_SIZE_143(_) MSGPACK_PP_SEQ_SIZE_144 +# define MSGPACK_PP_SEQ_SIZE_144(_) MSGPACK_PP_SEQ_SIZE_145 +# define MSGPACK_PP_SEQ_SIZE_145(_) MSGPACK_PP_SEQ_SIZE_146 +# define MSGPACK_PP_SEQ_SIZE_146(_) MSGPACK_PP_SEQ_SIZE_147 +# define MSGPACK_PP_SEQ_SIZE_147(_) MSGPACK_PP_SEQ_SIZE_148 +# define MSGPACK_PP_SEQ_SIZE_148(_) MSGPACK_PP_SEQ_SIZE_149 +# define MSGPACK_PP_SEQ_SIZE_149(_) MSGPACK_PP_SEQ_SIZE_150 +# define MSGPACK_PP_SEQ_SIZE_150(_) MSGPACK_PP_SEQ_SIZE_151 +# define MSGPACK_PP_SEQ_SIZE_151(_) MSGPACK_PP_SEQ_SIZE_152 +# define MSGPACK_PP_SEQ_SIZE_152(_) MSGPACK_PP_SEQ_SIZE_153 +# define MSGPACK_PP_SEQ_SIZE_153(_) MSGPACK_PP_SEQ_SIZE_154 +# define MSGPACK_PP_SEQ_SIZE_154(_) MSGPACK_PP_SEQ_SIZE_155 +# define MSGPACK_PP_SEQ_SIZE_155(_) MSGPACK_PP_SEQ_SIZE_156 +# define MSGPACK_PP_SEQ_SIZE_156(_) MSGPACK_PP_SEQ_SIZE_157 +# define MSGPACK_PP_SEQ_SIZE_157(_) MSGPACK_PP_SEQ_SIZE_158 +# define MSGPACK_PP_SEQ_SIZE_158(_) MSGPACK_PP_SEQ_SIZE_159 +# define MSGPACK_PP_SEQ_SIZE_159(_) MSGPACK_PP_SEQ_SIZE_160 +# define MSGPACK_PP_SEQ_SIZE_160(_) MSGPACK_PP_SEQ_SIZE_161 +# define MSGPACK_PP_SEQ_SIZE_161(_) MSGPACK_PP_SEQ_SIZE_162 +# define MSGPACK_PP_SEQ_SIZE_162(_) MSGPACK_PP_SEQ_SIZE_163 +# define MSGPACK_PP_SEQ_SIZE_163(_) MSGPACK_PP_SEQ_SIZE_164 +# define MSGPACK_PP_SEQ_SIZE_164(_) MSGPACK_PP_SEQ_SIZE_165 +# define MSGPACK_PP_SEQ_SIZE_165(_) MSGPACK_PP_SEQ_SIZE_166 +# define MSGPACK_PP_SEQ_SIZE_166(_) MSGPACK_PP_SEQ_SIZE_167 +# define MSGPACK_PP_SEQ_SIZE_167(_) MSGPACK_PP_SEQ_SIZE_168 +# define MSGPACK_PP_SEQ_SIZE_168(_) MSGPACK_PP_SEQ_SIZE_169 +# define MSGPACK_PP_SEQ_SIZE_169(_) MSGPACK_PP_SEQ_SIZE_170 +# define MSGPACK_PP_SEQ_SIZE_170(_) MSGPACK_PP_SEQ_SIZE_171 +# define MSGPACK_PP_SEQ_SIZE_171(_) MSGPACK_PP_SEQ_SIZE_172 +# define MSGPACK_PP_SEQ_SIZE_172(_) MSGPACK_PP_SEQ_SIZE_173 +# define MSGPACK_PP_SEQ_SIZE_173(_) MSGPACK_PP_SEQ_SIZE_174 +# define MSGPACK_PP_SEQ_SIZE_174(_) MSGPACK_PP_SEQ_SIZE_175 +# define MSGPACK_PP_SEQ_SIZE_175(_) MSGPACK_PP_SEQ_SIZE_176 +# define MSGPACK_PP_SEQ_SIZE_176(_) MSGPACK_PP_SEQ_SIZE_177 +# define MSGPACK_PP_SEQ_SIZE_177(_) MSGPACK_PP_SEQ_SIZE_178 +# define MSGPACK_PP_SEQ_SIZE_178(_) MSGPACK_PP_SEQ_SIZE_179 +# define MSGPACK_PP_SEQ_SIZE_179(_) MSGPACK_PP_SEQ_SIZE_180 +# define MSGPACK_PP_SEQ_SIZE_180(_) MSGPACK_PP_SEQ_SIZE_181 +# define MSGPACK_PP_SEQ_SIZE_181(_) MSGPACK_PP_SEQ_SIZE_182 +# define MSGPACK_PP_SEQ_SIZE_182(_) MSGPACK_PP_SEQ_SIZE_183 +# define MSGPACK_PP_SEQ_SIZE_183(_) MSGPACK_PP_SEQ_SIZE_184 +# define MSGPACK_PP_SEQ_SIZE_184(_) MSGPACK_PP_SEQ_SIZE_185 +# define MSGPACK_PP_SEQ_SIZE_185(_) MSGPACK_PP_SEQ_SIZE_186 +# define MSGPACK_PP_SEQ_SIZE_186(_) MSGPACK_PP_SEQ_SIZE_187 +# define MSGPACK_PP_SEQ_SIZE_187(_) MSGPACK_PP_SEQ_SIZE_188 +# define MSGPACK_PP_SEQ_SIZE_188(_) MSGPACK_PP_SEQ_SIZE_189 +# define MSGPACK_PP_SEQ_SIZE_189(_) MSGPACK_PP_SEQ_SIZE_190 +# define MSGPACK_PP_SEQ_SIZE_190(_) MSGPACK_PP_SEQ_SIZE_191 +# define MSGPACK_PP_SEQ_SIZE_191(_) MSGPACK_PP_SEQ_SIZE_192 +# define MSGPACK_PP_SEQ_SIZE_192(_) MSGPACK_PP_SEQ_SIZE_193 +# define MSGPACK_PP_SEQ_SIZE_193(_) MSGPACK_PP_SEQ_SIZE_194 +# define MSGPACK_PP_SEQ_SIZE_194(_) MSGPACK_PP_SEQ_SIZE_195 +# define MSGPACK_PP_SEQ_SIZE_195(_) MSGPACK_PP_SEQ_SIZE_196 +# define MSGPACK_PP_SEQ_SIZE_196(_) MSGPACK_PP_SEQ_SIZE_197 +# define MSGPACK_PP_SEQ_SIZE_197(_) MSGPACK_PP_SEQ_SIZE_198 +# define MSGPACK_PP_SEQ_SIZE_198(_) MSGPACK_PP_SEQ_SIZE_199 +# define MSGPACK_PP_SEQ_SIZE_199(_) MSGPACK_PP_SEQ_SIZE_200 +# define MSGPACK_PP_SEQ_SIZE_200(_) MSGPACK_PP_SEQ_SIZE_201 +# define MSGPACK_PP_SEQ_SIZE_201(_) MSGPACK_PP_SEQ_SIZE_202 +# define MSGPACK_PP_SEQ_SIZE_202(_) MSGPACK_PP_SEQ_SIZE_203 +# define MSGPACK_PP_SEQ_SIZE_203(_) MSGPACK_PP_SEQ_SIZE_204 +# define MSGPACK_PP_SEQ_SIZE_204(_) MSGPACK_PP_SEQ_SIZE_205 +# define MSGPACK_PP_SEQ_SIZE_205(_) MSGPACK_PP_SEQ_SIZE_206 +# define MSGPACK_PP_SEQ_SIZE_206(_) MSGPACK_PP_SEQ_SIZE_207 +# define MSGPACK_PP_SEQ_SIZE_207(_) MSGPACK_PP_SEQ_SIZE_208 +# define MSGPACK_PP_SEQ_SIZE_208(_) MSGPACK_PP_SEQ_SIZE_209 +# define MSGPACK_PP_SEQ_SIZE_209(_) MSGPACK_PP_SEQ_SIZE_210 +# define MSGPACK_PP_SEQ_SIZE_210(_) MSGPACK_PP_SEQ_SIZE_211 +# define MSGPACK_PP_SEQ_SIZE_211(_) MSGPACK_PP_SEQ_SIZE_212 +# define MSGPACK_PP_SEQ_SIZE_212(_) MSGPACK_PP_SEQ_SIZE_213 +# define MSGPACK_PP_SEQ_SIZE_213(_) MSGPACK_PP_SEQ_SIZE_214 +# define MSGPACK_PP_SEQ_SIZE_214(_) MSGPACK_PP_SEQ_SIZE_215 +# define MSGPACK_PP_SEQ_SIZE_215(_) MSGPACK_PP_SEQ_SIZE_216 +# define MSGPACK_PP_SEQ_SIZE_216(_) MSGPACK_PP_SEQ_SIZE_217 +# define MSGPACK_PP_SEQ_SIZE_217(_) MSGPACK_PP_SEQ_SIZE_218 +# define MSGPACK_PP_SEQ_SIZE_218(_) MSGPACK_PP_SEQ_SIZE_219 +# define MSGPACK_PP_SEQ_SIZE_219(_) MSGPACK_PP_SEQ_SIZE_220 +# define MSGPACK_PP_SEQ_SIZE_220(_) MSGPACK_PP_SEQ_SIZE_221 +# define MSGPACK_PP_SEQ_SIZE_221(_) MSGPACK_PP_SEQ_SIZE_222 +# define MSGPACK_PP_SEQ_SIZE_222(_) MSGPACK_PP_SEQ_SIZE_223 +# define MSGPACK_PP_SEQ_SIZE_223(_) MSGPACK_PP_SEQ_SIZE_224 +# define MSGPACK_PP_SEQ_SIZE_224(_) MSGPACK_PP_SEQ_SIZE_225 +# define MSGPACK_PP_SEQ_SIZE_225(_) MSGPACK_PP_SEQ_SIZE_226 +# define MSGPACK_PP_SEQ_SIZE_226(_) MSGPACK_PP_SEQ_SIZE_227 +# define MSGPACK_PP_SEQ_SIZE_227(_) MSGPACK_PP_SEQ_SIZE_228 +# define MSGPACK_PP_SEQ_SIZE_228(_) MSGPACK_PP_SEQ_SIZE_229 +# define MSGPACK_PP_SEQ_SIZE_229(_) MSGPACK_PP_SEQ_SIZE_230 +# define MSGPACK_PP_SEQ_SIZE_230(_) MSGPACK_PP_SEQ_SIZE_231 +# define MSGPACK_PP_SEQ_SIZE_231(_) MSGPACK_PP_SEQ_SIZE_232 +# define MSGPACK_PP_SEQ_SIZE_232(_) MSGPACK_PP_SEQ_SIZE_233 +# define MSGPACK_PP_SEQ_SIZE_233(_) MSGPACK_PP_SEQ_SIZE_234 +# define MSGPACK_PP_SEQ_SIZE_234(_) MSGPACK_PP_SEQ_SIZE_235 +# define MSGPACK_PP_SEQ_SIZE_235(_) MSGPACK_PP_SEQ_SIZE_236 +# define MSGPACK_PP_SEQ_SIZE_236(_) MSGPACK_PP_SEQ_SIZE_237 +# define MSGPACK_PP_SEQ_SIZE_237(_) MSGPACK_PP_SEQ_SIZE_238 +# define MSGPACK_PP_SEQ_SIZE_238(_) MSGPACK_PP_SEQ_SIZE_239 +# define MSGPACK_PP_SEQ_SIZE_239(_) MSGPACK_PP_SEQ_SIZE_240 +# define MSGPACK_PP_SEQ_SIZE_240(_) MSGPACK_PP_SEQ_SIZE_241 +# define MSGPACK_PP_SEQ_SIZE_241(_) MSGPACK_PP_SEQ_SIZE_242 +# define MSGPACK_PP_SEQ_SIZE_242(_) MSGPACK_PP_SEQ_SIZE_243 +# define MSGPACK_PP_SEQ_SIZE_243(_) MSGPACK_PP_SEQ_SIZE_244 +# define MSGPACK_PP_SEQ_SIZE_244(_) MSGPACK_PP_SEQ_SIZE_245 +# define MSGPACK_PP_SEQ_SIZE_245(_) MSGPACK_PP_SEQ_SIZE_246 +# define MSGPACK_PP_SEQ_SIZE_246(_) MSGPACK_PP_SEQ_SIZE_247 +# define MSGPACK_PP_SEQ_SIZE_247(_) MSGPACK_PP_SEQ_SIZE_248 +# define MSGPACK_PP_SEQ_SIZE_248(_) MSGPACK_PP_SEQ_SIZE_249 +# define MSGPACK_PP_SEQ_SIZE_249(_) MSGPACK_PP_SEQ_SIZE_250 +# define MSGPACK_PP_SEQ_SIZE_250(_) MSGPACK_PP_SEQ_SIZE_251 +# define MSGPACK_PP_SEQ_SIZE_251(_) MSGPACK_PP_SEQ_SIZE_252 +# define MSGPACK_PP_SEQ_SIZE_252(_) MSGPACK_PP_SEQ_SIZE_253 +# define MSGPACK_PP_SEQ_SIZE_253(_) MSGPACK_PP_SEQ_SIZE_254 +# define MSGPACK_PP_SEQ_SIZE_254(_) MSGPACK_PP_SEQ_SIZE_255 +# define MSGPACK_PP_SEQ_SIZE_255(_) MSGPACK_PP_SEQ_SIZE_256 +# define MSGPACK_PP_SEQ_SIZE_256(_) MSGPACK_PP_SEQ_SIZE_257 +# +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_0 0 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_1 1 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_2 2 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_3 3 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_4 4 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_5 5 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_6 6 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_7 7 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_8 8 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_9 9 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_10 10 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_11 11 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_12 12 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_13 13 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_14 14 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_15 15 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_16 16 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_17 17 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_18 18 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_19 19 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_20 20 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_21 21 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_22 22 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_23 23 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_24 24 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_25 25 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_26 26 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_27 27 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_28 28 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_29 29 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_30 30 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_31 31 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_32 32 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_33 33 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_34 34 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_35 35 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_36 36 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_37 37 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_38 38 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_39 39 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_40 40 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_41 41 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_42 42 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_43 43 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_44 44 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_45 45 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_46 46 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_47 47 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_48 48 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_49 49 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_50 50 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_51 51 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_52 52 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_53 53 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_54 54 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_55 55 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_56 56 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_57 57 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_58 58 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_59 59 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_60 60 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_61 61 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_62 62 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_63 63 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_64 64 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_65 65 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_66 66 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_67 67 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_68 68 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_69 69 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_70 70 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_71 71 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_72 72 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_73 73 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_74 74 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_75 75 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_76 76 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_77 77 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_78 78 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_79 79 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_80 80 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_81 81 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_82 82 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_83 83 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_84 84 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_85 85 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_86 86 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_87 87 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_88 88 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_89 89 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_90 90 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_91 91 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_92 92 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_93 93 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_94 94 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_95 95 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_96 96 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_97 97 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_98 98 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_99 99 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_100 100 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_101 101 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_102 102 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_103 103 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_104 104 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_105 105 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_106 106 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_107 107 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_108 108 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_109 109 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_110 110 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_111 111 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_112 112 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_113 113 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_114 114 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_115 115 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_116 116 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_117 117 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_118 118 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_119 119 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_120 120 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_121 121 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_122 122 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_123 123 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_124 124 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_125 125 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_126 126 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_127 127 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_128 128 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_129 129 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_130 130 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_131 131 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_132 132 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_133 133 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_134 134 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_135 135 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_136 136 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_137 137 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_138 138 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_139 139 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_140 140 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_141 141 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_142 142 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_143 143 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_144 144 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_145 145 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_146 146 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_147 147 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_148 148 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_149 149 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_150 150 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_151 151 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_152 152 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_153 153 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_154 154 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_155 155 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_156 156 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_157 157 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_158 158 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_159 159 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_160 160 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_161 161 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_162 162 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_163 163 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_164 164 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_165 165 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_166 166 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_167 167 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_168 168 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_169 169 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_170 170 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_171 171 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_172 172 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_173 173 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_174 174 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_175 175 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_176 176 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_177 177 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_178 178 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_179 179 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_180 180 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_181 181 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_182 182 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_183 183 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_184 184 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_185 185 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_186 186 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_187 187 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_188 188 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_189 189 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_190 190 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_191 191 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_192 192 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_193 193 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_194 194 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_195 195 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_196 196 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_197 197 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_198 198 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_199 199 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_200 200 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_201 201 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_202 202 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_203 203 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_204 204 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_205 205 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_206 206 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_207 207 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_208 208 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_209 209 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_210 210 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_211 211 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_212 212 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_213 213 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_214 214 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_215 215 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_216 216 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_217 217 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_218 218 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_219 219 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_220 220 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_221 221 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_222 222 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_223 223 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_224 224 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_225 225 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_226 226 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_227 227 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_228 228 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_229 229 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_230 230 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_231 231 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_232 232 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_233 233 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_234 234 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_235 235 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_236 236 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_237 237 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_238 238 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_239 239 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_240 240 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_241 241 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_242 242 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_243 243 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_244 244 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_245 245 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_246 246 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_247 247 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_248 248 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_249 249 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_250 250 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_251 251 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_252 252 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_253 253 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_254 254 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_255 255 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_256 256 +# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_257 257 +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/subseq.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/subseq.hpp new file mode 100644 index 000000000000..594147848113 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/subseq.hpp @@ -0,0 +1,28 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_SUBSEQ_HPP +# define MSGPACK_PREPROCESSOR_SEQ_SUBSEQ_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_SUBSEQ */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_SUBSEQ(seq, i, len) MSGPACK_PP_SEQ_FIRST_N(len, MSGPACK_PP_SEQ_REST_N(i, seq)) +# else +# define MSGPACK_PP_SEQ_SUBSEQ(seq, i, len) MSGPACK_PP_SEQ_SUBSEQ_I(seq, i, len) +# define MSGPACK_PP_SEQ_SUBSEQ_I(seq, i, len) MSGPACK_PP_SEQ_FIRST_N(len, MSGPACK_PP_SEQ_REST_N(i, seq)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/to_array.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/to_array.hpp new file mode 100644 index 000000000000..c63cd86aa41b --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/to_array.hpp @@ -0,0 +1,28 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_TO_ARRAY_HPP +# define MSGPACK_PREPROCESSOR_SEQ_TO_ARRAY_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_TO_ARRAY */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_TO_ARRAY(seq) (MSGPACK_PP_SEQ_SIZE(seq), (MSGPACK_PP_SEQ_ENUM(seq))) +# else +# define MSGPACK_PP_SEQ_TO_ARRAY(seq) MSGPACK_PP_SEQ_TO_ARRAY_I(seq) +# define MSGPACK_PP_SEQ_TO_ARRAY_I(seq) (MSGPACK_PP_SEQ_SIZE(seq), (MSGPACK_PP_SEQ_ENUM(seq))) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/to_list.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/to_list.hpp new file mode 100644 index 000000000000..e40866be2bd1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/to_list.hpp @@ -0,0 +1,29 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2011. * +# * (C) Copyright Edward Diener 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_TO_LIST_HPP +# define MSGPACK_PREPROCESSOR_SEQ_TO_LIST_HPP +# +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_TO_LIST */ +# +# define MSGPACK_PP_SEQ_TO_LIST(seq) MSGPACK_PP_SEQ_TO_LIST_I(MSGPACK_PP_SEQ_BINARY_TRANSFORM(seq)) +# define MSGPACK_PP_SEQ_TO_LIST_I(bseq) MSGPACK_PP_SEQ_TO_LIST_A bseq MSGPACK_PP_NIL MSGPACK_PP_SEQ_TO_LIST_B bseq +# define MSGPACK_PP_SEQ_TO_LIST_A(m, e) m(MSGPACK_PP_LPAREN() e MSGPACK_PP_COMMA() MSGPACK_PP_SEQ_TO_LIST_A_ID) +# define MSGPACK_PP_SEQ_TO_LIST_A_ID() MSGPACK_PP_SEQ_TO_LIST_A +# define MSGPACK_PP_SEQ_TO_LIST_B(m, e) m(MSGPACK_PP_RPAREN() MSGPACK_PP_SEQ_TO_LIST_B_ID) +# define MSGPACK_PP_SEQ_TO_LIST_B_ID() MSGPACK_PP_SEQ_TO_LIST_B +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/to_tuple.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/to_tuple.hpp new file mode 100644 index 000000000000..b15a00cc5350 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/to_tuple.hpp @@ -0,0 +1,27 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_TO_TUPLE_HPP +# define MSGPACK_PREPROCESSOR_SEQ_TO_TUPLE_HPP +# +# include +# include +# +# /* MSGPACK_PP_SEQ_TO_TUPLE */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_TO_TUPLE(seq) (MSGPACK_PP_SEQ_ENUM(seq)) +# else +# define MSGPACK_PP_SEQ_TO_TUPLE(seq) MSGPACK_PP_SEQ_TO_TUPLE_I(seq) +# define MSGPACK_PP_SEQ_TO_TUPLE_I(seq) (MSGPACK_PP_SEQ_ENUM(seq)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/transform.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/transform.hpp new file mode 100644 index 000000000000..e589938d793e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/transform.hpp @@ -0,0 +1,48 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_TRANSFORM_HPP +# define MSGPACK_PREPROCESSOR_SEQ_TRANSFORM_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_SEQ_TRANSFORM */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_TRANSFORM(op, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT(MSGPACK_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq))) +# else +# define MSGPACK_PP_SEQ_TRANSFORM(op, data, seq) MSGPACK_PP_SEQ_TRANSFORM_I(op, data, seq) +# define MSGPACK_PP_SEQ_TRANSFORM_I(op, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT(MSGPACK_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq))) +# endif +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT() +# define MSGPACK_PP_SEQ_TRANSFORM_O(s, state, elem) MSGPACK_PP_SEQ_TRANSFORM_O_IM(s, MSGPACK_PP_TUPLE_REM_3 state, elem) +# define MSGPACK_PP_SEQ_TRANSFORM_O_IM(s, im, elem) MSGPACK_PP_SEQ_TRANSFORM_O_I(s, im, elem) +# else +# define MSGPACK_PP_SEQ_TRANSFORM_O(s, state, elem) MSGPACK_PP_SEQ_TRANSFORM_O_I(s, MSGPACK_PP_TUPLE_ELEM(3, 0, state), MSGPACK_PP_TUPLE_ELEM(3, 1, state), MSGPACK_PP_TUPLE_ELEM(3, 2, state), elem) +# endif +# +# define MSGPACK_PP_SEQ_TRANSFORM_O_I(s, op, data, res, elem) (op, data, res (op(s, data, elem))) +# +# /* MSGPACK_PP_SEQ_TRANSFORM_S */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_SEQ_TRANSFORM_S(s, op, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT_ ## s(MSGPACK_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq))) +# else +# define MSGPACK_PP_SEQ_TRANSFORM_S(s, op, data, seq) MSGPACK_PP_SEQ_TRANSFORM_S_I(s, op, data, seq) +# define MSGPACK_PP_SEQ_TRANSFORM_S_I(s, op, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT_ ## s(MSGPACK_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq))) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/seq/variadic_seq_to_seq.hpp b/third_party/msgpack/include/msgpack/preprocessor/seq/variadic_seq_to_seq.hpp new file mode 100644 index 000000000000..55f8f81d1517 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/seq/variadic_seq_to_seq.hpp @@ -0,0 +1,28 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2012. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SEQ_VARIADIC_SEQ_TO_SEQ_HPP +# define MSGPACK_PREPROCESSOR_SEQ_VARIADIC_SEQ_TO_SEQ_HPP +# +# include +# include +# +# /* MSGPACK_PP_VARIADIC_SEQ_TO_SEQ */ +# +# if MSGPACK_PP_VARIADICS +# define MSGPACK_PP_VARIADIC_SEQ_TO_SEQ(vseq) MSGPACK_PP_CAT(MSGPACK_PP_VARIADIC_SEQ_TO_SEQ_A vseq, 0) +# define MSGPACK_PP_VARIADIC_SEQ_TO_SEQ_A(...) ((__VA_ARGS__)) MSGPACK_PP_VARIADIC_SEQ_TO_SEQ_B +# define MSGPACK_PP_VARIADIC_SEQ_TO_SEQ_B(...) ((__VA_ARGS__)) MSGPACK_PP_VARIADIC_SEQ_TO_SEQ_A +# define MSGPACK_PP_VARIADIC_SEQ_TO_SEQ_A0 +# define MSGPACK_PP_VARIADIC_SEQ_TO_SEQ_B0 +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/slot.hpp b/third_party/msgpack/include/msgpack/preprocessor/slot.hpp new file mode 100644 index 000000000000..10ac97ffeec0 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/slot.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SLOT_HPP +# define MSGPACK_PREPROCESSOR_SLOT_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/slot/counter.hpp b/third_party/msgpack/include/msgpack/preprocessor/slot/counter.hpp new file mode 100644 index 000000000000..e1fbd8ba870b --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/slot/counter.hpp @@ -0,0 +1,25 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2005. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SLOT_COUNTER_HPP +# define MSGPACK_PREPROCESSOR_SLOT_COUNTER_HPP +# +# include +# +# /* MSGPACK_PP_COUNTER */ +# +# define MSGPACK_PP_COUNTER 0 +# +# /* MSGPACK_PP_UPDATE_COUNTER */ +# +# define MSGPACK_PP_UPDATE_COUNTER() +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/slot/detail/counter.hpp b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/counter.hpp new file mode 100644 index 000000000000..d62f778def74 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/counter.hpp @@ -0,0 +1,269 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2005. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# define MSGPACK_PP_VALUE MSGPACK_PP_COUNTER + 1 +# +# include +# +# undef MSGPACK_PP_COUNTER +# +# undef MSGPACK_PP_COUNTER_DIGIT_1 +# undef MSGPACK_PP_COUNTER_DIGIT_2 +# undef MSGPACK_PP_COUNTER_DIGIT_3 +# undef MSGPACK_PP_COUNTER_DIGIT_4 +# undef MSGPACK_PP_COUNTER_DIGIT_5 +# undef MSGPACK_PP_COUNTER_DIGIT_6 +# undef MSGPACK_PP_COUNTER_DIGIT_7 +# undef MSGPACK_PP_COUNTER_DIGIT_8 +# undef MSGPACK_PP_COUNTER_DIGIT_9 +# undef MSGPACK_PP_COUNTER_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_10 == 0 +# define MSGPACK_PP_COUNTER_DIGIT_10 0 +# elif MSGPACK_PP_SLOT_TEMP_10 == 1 +# define MSGPACK_PP_COUNTER_DIGIT_10 1 +# elif MSGPACK_PP_SLOT_TEMP_10 == 2 +# define MSGPACK_PP_COUNTER_DIGIT_10 2 +# elif MSGPACK_PP_SLOT_TEMP_10 == 3 +# define MSGPACK_PP_COUNTER_DIGIT_10 3 +# elif MSGPACK_PP_SLOT_TEMP_10 == 4 +# define MSGPACK_PP_COUNTER_DIGIT_10 4 +# elif MSGPACK_PP_SLOT_TEMP_10 == 5 +# define MSGPACK_PP_COUNTER_DIGIT_10 5 +# elif MSGPACK_PP_SLOT_TEMP_10 == 6 +# define MSGPACK_PP_COUNTER_DIGIT_10 6 +# elif MSGPACK_PP_SLOT_TEMP_10 == 7 +# define MSGPACK_PP_COUNTER_DIGIT_10 7 +# elif MSGPACK_PP_SLOT_TEMP_10 == 8 +# define MSGPACK_PP_COUNTER_DIGIT_10 8 +# elif MSGPACK_PP_SLOT_TEMP_10 == 9 +# define MSGPACK_PP_COUNTER_DIGIT_10 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_9 == 0 +# define MSGPACK_PP_COUNTER_DIGIT_9 0 +# elif MSGPACK_PP_SLOT_TEMP_9 == 1 +# define MSGPACK_PP_COUNTER_DIGIT_9 1 +# elif MSGPACK_PP_SLOT_TEMP_9 == 2 +# define MSGPACK_PP_COUNTER_DIGIT_9 2 +# elif MSGPACK_PP_SLOT_TEMP_9 == 3 +# define MSGPACK_PP_COUNTER_DIGIT_9 3 +# elif MSGPACK_PP_SLOT_TEMP_9 == 4 +# define MSGPACK_PP_COUNTER_DIGIT_9 4 +# elif MSGPACK_PP_SLOT_TEMP_9 == 5 +# define MSGPACK_PP_COUNTER_DIGIT_9 5 +# elif MSGPACK_PP_SLOT_TEMP_9 == 6 +# define MSGPACK_PP_COUNTER_DIGIT_9 6 +# elif MSGPACK_PP_SLOT_TEMP_9 == 7 +# define MSGPACK_PP_COUNTER_DIGIT_9 7 +# elif MSGPACK_PP_SLOT_TEMP_9 == 8 +# define MSGPACK_PP_COUNTER_DIGIT_9 8 +# elif MSGPACK_PP_SLOT_TEMP_9 == 9 +# define MSGPACK_PP_COUNTER_DIGIT_9 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_8 == 0 +# define MSGPACK_PP_COUNTER_DIGIT_8 0 +# elif MSGPACK_PP_SLOT_TEMP_8 == 1 +# define MSGPACK_PP_COUNTER_DIGIT_8 1 +# elif MSGPACK_PP_SLOT_TEMP_8 == 2 +# define MSGPACK_PP_COUNTER_DIGIT_8 2 +# elif MSGPACK_PP_SLOT_TEMP_8 == 3 +# define MSGPACK_PP_COUNTER_DIGIT_8 3 +# elif MSGPACK_PP_SLOT_TEMP_8 == 4 +# define MSGPACK_PP_COUNTER_DIGIT_8 4 +# elif MSGPACK_PP_SLOT_TEMP_8 == 5 +# define MSGPACK_PP_COUNTER_DIGIT_8 5 +# elif MSGPACK_PP_SLOT_TEMP_8 == 6 +# define MSGPACK_PP_COUNTER_DIGIT_8 6 +# elif MSGPACK_PP_SLOT_TEMP_8 == 7 +# define MSGPACK_PP_COUNTER_DIGIT_8 7 +# elif MSGPACK_PP_SLOT_TEMP_8 == 8 +# define MSGPACK_PP_COUNTER_DIGIT_8 8 +# elif MSGPACK_PP_SLOT_TEMP_8 == 9 +# define MSGPACK_PP_COUNTER_DIGIT_8 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_7 == 0 +# define MSGPACK_PP_COUNTER_DIGIT_7 0 +# elif MSGPACK_PP_SLOT_TEMP_7 == 1 +# define MSGPACK_PP_COUNTER_DIGIT_7 1 +# elif MSGPACK_PP_SLOT_TEMP_7 == 2 +# define MSGPACK_PP_COUNTER_DIGIT_7 2 +# elif MSGPACK_PP_SLOT_TEMP_7 == 3 +# define MSGPACK_PP_COUNTER_DIGIT_7 3 +# elif MSGPACK_PP_SLOT_TEMP_7 == 4 +# define MSGPACK_PP_COUNTER_DIGIT_7 4 +# elif MSGPACK_PP_SLOT_TEMP_7 == 5 +# define MSGPACK_PP_COUNTER_DIGIT_7 5 +# elif MSGPACK_PP_SLOT_TEMP_7 == 6 +# define MSGPACK_PP_COUNTER_DIGIT_7 6 +# elif MSGPACK_PP_SLOT_TEMP_7 == 7 +# define MSGPACK_PP_COUNTER_DIGIT_7 7 +# elif MSGPACK_PP_SLOT_TEMP_7 == 8 +# define MSGPACK_PP_COUNTER_DIGIT_7 8 +# elif MSGPACK_PP_SLOT_TEMP_7 == 9 +# define MSGPACK_PP_COUNTER_DIGIT_7 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_6 == 0 +# define MSGPACK_PP_COUNTER_DIGIT_6 0 +# elif MSGPACK_PP_SLOT_TEMP_6 == 1 +# define MSGPACK_PP_COUNTER_DIGIT_6 1 +# elif MSGPACK_PP_SLOT_TEMP_6 == 2 +# define MSGPACK_PP_COUNTER_DIGIT_6 2 +# elif MSGPACK_PP_SLOT_TEMP_6 == 3 +# define MSGPACK_PP_COUNTER_DIGIT_6 3 +# elif MSGPACK_PP_SLOT_TEMP_6 == 4 +# define MSGPACK_PP_COUNTER_DIGIT_6 4 +# elif MSGPACK_PP_SLOT_TEMP_6 == 5 +# define MSGPACK_PP_COUNTER_DIGIT_6 5 +# elif MSGPACK_PP_SLOT_TEMP_6 == 6 +# define MSGPACK_PP_COUNTER_DIGIT_6 6 +# elif MSGPACK_PP_SLOT_TEMP_6 == 7 +# define MSGPACK_PP_COUNTER_DIGIT_6 7 +# elif MSGPACK_PP_SLOT_TEMP_6 == 8 +# define MSGPACK_PP_COUNTER_DIGIT_6 8 +# elif MSGPACK_PP_SLOT_TEMP_6 == 9 +# define MSGPACK_PP_COUNTER_DIGIT_6 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_5 == 0 +# define MSGPACK_PP_COUNTER_DIGIT_5 0 +# elif MSGPACK_PP_SLOT_TEMP_5 == 1 +# define MSGPACK_PP_COUNTER_DIGIT_5 1 +# elif MSGPACK_PP_SLOT_TEMP_5 == 2 +# define MSGPACK_PP_COUNTER_DIGIT_5 2 +# elif MSGPACK_PP_SLOT_TEMP_5 == 3 +# define MSGPACK_PP_COUNTER_DIGIT_5 3 +# elif MSGPACK_PP_SLOT_TEMP_5 == 4 +# define MSGPACK_PP_COUNTER_DIGIT_5 4 +# elif MSGPACK_PP_SLOT_TEMP_5 == 5 +# define MSGPACK_PP_COUNTER_DIGIT_5 5 +# elif MSGPACK_PP_SLOT_TEMP_5 == 6 +# define MSGPACK_PP_COUNTER_DIGIT_5 6 +# elif MSGPACK_PP_SLOT_TEMP_5 == 7 +# define MSGPACK_PP_COUNTER_DIGIT_5 7 +# elif MSGPACK_PP_SLOT_TEMP_5 == 8 +# define MSGPACK_PP_COUNTER_DIGIT_5 8 +# elif MSGPACK_PP_SLOT_TEMP_5 == 9 +# define MSGPACK_PP_COUNTER_DIGIT_5 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_4 == 0 +# define MSGPACK_PP_COUNTER_DIGIT_4 0 +# elif MSGPACK_PP_SLOT_TEMP_4 == 1 +# define MSGPACK_PP_COUNTER_DIGIT_4 1 +# elif MSGPACK_PP_SLOT_TEMP_4 == 2 +# define MSGPACK_PP_COUNTER_DIGIT_4 2 +# elif MSGPACK_PP_SLOT_TEMP_4 == 3 +# define MSGPACK_PP_COUNTER_DIGIT_4 3 +# elif MSGPACK_PP_SLOT_TEMP_4 == 4 +# define MSGPACK_PP_COUNTER_DIGIT_4 4 +# elif MSGPACK_PP_SLOT_TEMP_4 == 5 +# define MSGPACK_PP_COUNTER_DIGIT_4 5 +# elif MSGPACK_PP_SLOT_TEMP_4 == 6 +# define MSGPACK_PP_COUNTER_DIGIT_4 6 +# elif MSGPACK_PP_SLOT_TEMP_4 == 7 +# define MSGPACK_PP_COUNTER_DIGIT_4 7 +# elif MSGPACK_PP_SLOT_TEMP_4 == 8 +# define MSGPACK_PP_COUNTER_DIGIT_4 8 +# elif MSGPACK_PP_SLOT_TEMP_4 == 9 +# define MSGPACK_PP_COUNTER_DIGIT_4 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_COUNTER_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_COUNTER_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_COUNTER_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_COUNTER_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_COUNTER_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_COUNTER_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_COUNTER_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_COUNTER_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_COUNTER_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_COUNTER_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_COUNTER_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_COUNTER_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_COUNTER_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_COUNTER_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_COUNTER_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_COUNTER_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_COUNTER_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_COUNTER_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_COUNTER_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_COUNTER_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_COUNTER_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_COUNTER_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_COUNTER_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_COUNTER_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_COUNTER_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_COUNTER_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_COUNTER_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_COUNTER_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_COUNTER_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_COUNTER_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_COUNTER_DIGIT_10 +# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_10(MSGPACK_PP_COUNTER_DIGIT_10, MSGPACK_PP_COUNTER_DIGIT_9, MSGPACK_PP_COUNTER_DIGIT_8, MSGPACK_PP_COUNTER_DIGIT_7, MSGPACK_PP_COUNTER_DIGIT_6, MSGPACK_PP_COUNTER_DIGIT_5, MSGPACK_PP_COUNTER_DIGIT_4, MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1) +# elif MSGPACK_PP_COUNTER_DIGIT_9 +# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_9(MSGPACK_PP_COUNTER_DIGIT_9, MSGPACK_PP_COUNTER_DIGIT_8, MSGPACK_PP_COUNTER_DIGIT_7, MSGPACK_PP_COUNTER_DIGIT_6, MSGPACK_PP_COUNTER_DIGIT_5, MSGPACK_PP_COUNTER_DIGIT_4, MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1) +# elif MSGPACK_PP_COUNTER_DIGIT_8 +# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_8(MSGPACK_PP_COUNTER_DIGIT_8, MSGPACK_PP_COUNTER_DIGIT_7, MSGPACK_PP_COUNTER_DIGIT_6, MSGPACK_PP_COUNTER_DIGIT_5, MSGPACK_PP_COUNTER_DIGIT_4, MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1) +# elif MSGPACK_PP_COUNTER_DIGIT_7 +# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_7(MSGPACK_PP_COUNTER_DIGIT_7, MSGPACK_PP_COUNTER_DIGIT_6, MSGPACK_PP_COUNTER_DIGIT_5, MSGPACK_PP_COUNTER_DIGIT_4, MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1) +# elif MSGPACK_PP_COUNTER_DIGIT_6 +# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_6(MSGPACK_PP_COUNTER_DIGIT_6, MSGPACK_PP_COUNTER_DIGIT_5, MSGPACK_PP_COUNTER_DIGIT_4, MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1) +# elif MSGPACK_PP_COUNTER_DIGIT_5 +# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_5(MSGPACK_PP_COUNTER_DIGIT_5, MSGPACK_PP_COUNTER_DIGIT_4, MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1) +# elif MSGPACK_PP_COUNTER_DIGIT_4 +# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_4(MSGPACK_PP_COUNTER_DIGIT_4, MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1) +# elif MSGPACK_PP_COUNTER_DIGIT_3 +# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1) +# elif MSGPACK_PP_COUNTER_DIGIT_2 +# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1) +# else +# define MSGPACK_PP_COUNTER MSGPACK_PP_COUNTER_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/slot/detail/def.hpp b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/def.hpp new file mode 100644 index 000000000000..e9053f4550b7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/def.hpp @@ -0,0 +1,49 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SLOT_DETAIL_DEF_HPP +# define MSGPACK_PREPROCESSOR_SLOT_DETAIL_DEF_HPP +# +# /* MSGPACK_PP_SLOT_OFFSET_x */ +# +# define MSGPACK_PP_SLOT_OFFSET_10(x) (x) % 1000000000UL +# define MSGPACK_PP_SLOT_OFFSET_9(x) MSGPACK_PP_SLOT_OFFSET_10(x) % 100000000UL +# define MSGPACK_PP_SLOT_OFFSET_8(x) MSGPACK_PP_SLOT_OFFSET_9(x) % 10000000UL +# define MSGPACK_PP_SLOT_OFFSET_7(x) MSGPACK_PP_SLOT_OFFSET_8(x) % 1000000UL +# define MSGPACK_PP_SLOT_OFFSET_6(x) MSGPACK_PP_SLOT_OFFSET_7(x) % 100000UL +# define MSGPACK_PP_SLOT_OFFSET_5(x) MSGPACK_PP_SLOT_OFFSET_6(x) % 10000UL +# define MSGPACK_PP_SLOT_OFFSET_4(x) MSGPACK_PP_SLOT_OFFSET_5(x) % 1000UL +# define MSGPACK_PP_SLOT_OFFSET_3(x) MSGPACK_PP_SLOT_OFFSET_4(x) % 100UL +# define MSGPACK_PP_SLOT_OFFSET_2(x) MSGPACK_PP_SLOT_OFFSET_3(x) % 10UL +# +# /* MSGPACK_PP_SLOT_CC_x */ +# +# define MSGPACK_PP_SLOT_CC_2(a, b) MSGPACK_PP_SLOT_CC_2_D(a, b) +# define MSGPACK_PP_SLOT_CC_3(a, b, c) MSGPACK_PP_SLOT_CC_3_D(a, b, c) +# define MSGPACK_PP_SLOT_CC_4(a, b, c, d) MSGPACK_PP_SLOT_CC_4_D(a, b, c, d) +# define MSGPACK_PP_SLOT_CC_5(a, b, c, d, e) MSGPACK_PP_SLOT_CC_5_D(a, b, c, d, e) +# define MSGPACK_PP_SLOT_CC_6(a, b, c, d, e, f) MSGPACK_PP_SLOT_CC_6_D(a, b, c, d, e, f) +# define MSGPACK_PP_SLOT_CC_7(a, b, c, d, e, f, g) MSGPACK_PP_SLOT_CC_7_D(a, b, c, d, e, f, g) +# define MSGPACK_PP_SLOT_CC_8(a, b, c, d, e, f, g, h) MSGPACK_PP_SLOT_CC_8_D(a, b, c, d, e, f, g, h) +# define MSGPACK_PP_SLOT_CC_9(a, b, c, d, e, f, g, h, i) MSGPACK_PP_SLOT_CC_9_D(a, b, c, d, e, f, g, h, i) +# define MSGPACK_PP_SLOT_CC_10(a, b, c, d, e, f, g, h, i, j) MSGPACK_PP_SLOT_CC_10_D(a, b, c, d, e, f, g, h, i, j) +# +# define MSGPACK_PP_SLOT_CC_2_D(a, b) a ## b +# define MSGPACK_PP_SLOT_CC_3_D(a, b, c) a ## b ## c +# define MSGPACK_PP_SLOT_CC_4_D(a, b, c, d) a ## b ## c ## d +# define MSGPACK_PP_SLOT_CC_5_D(a, b, c, d, e) a ## b ## c ## d ## e +# define MSGPACK_PP_SLOT_CC_6_D(a, b, c, d, e, f) a ## b ## c ## d ## e ## f +# define MSGPACK_PP_SLOT_CC_7_D(a, b, c, d, e, f, g) a ## b ## c ## d ## e ## f ## g +# define MSGPACK_PP_SLOT_CC_8_D(a, b, c, d, e, f, g, h) a ## b ## c ## d ## e ## f ## g ## h +# define MSGPACK_PP_SLOT_CC_9_D(a, b, c, d, e, f, g, h, i) a ## b ## c ## d ## e ## f ## g ## h ## i +# define MSGPACK_PP_SLOT_CC_10_D(a, b, c, d, e, f, g, h, i, j) a ## b ## c ## d ## e ## f ## g ## h ## i ## j +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/slot/detail/shared.hpp b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/shared.hpp new file mode 100644 index 000000000000..b635c9160edb --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/shared.hpp @@ -0,0 +1,247 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PP_VALUE +# error MSGPACK_PP_ERROR: MSGPACK_PP_VALUE is not defined +# endif +# +# undef MSGPACK_PP_SLOT_TEMP_1 +# undef MSGPACK_PP_SLOT_TEMP_2 +# undef MSGPACK_PP_SLOT_TEMP_3 +# undef MSGPACK_PP_SLOT_TEMP_4 +# undef MSGPACK_PP_SLOT_TEMP_5 +# undef MSGPACK_PP_SLOT_TEMP_6 +# undef MSGPACK_PP_SLOT_TEMP_7 +# undef MSGPACK_PP_SLOT_TEMP_8 +# undef MSGPACK_PP_SLOT_TEMP_9 +# undef MSGPACK_PP_SLOT_TEMP_10 +# +# if (MSGPACK_PP_VALUE) / 1000000000UL == 0 +# define MSGPACK_PP_SLOT_TEMP_10 0 +# elif (MSGPACK_PP_VALUE) / 1000000000UL == 1 +# define MSGPACK_PP_SLOT_TEMP_10 1 +# elif (MSGPACK_PP_VALUE) / 1000000000UL == 2 +# define MSGPACK_PP_SLOT_TEMP_10 2 +# elif (MSGPACK_PP_VALUE) / 1000000000UL == 3 +# define MSGPACK_PP_SLOT_TEMP_10 3 +# elif (MSGPACK_PP_VALUE) / 1000000000UL == 4 +# define MSGPACK_PP_SLOT_TEMP_10 4 +# elif (MSGPACK_PP_VALUE) / 1000000000UL == 5 +# define MSGPACK_PP_SLOT_TEMP_10 5 +# elif (MSGPACK_PP_VALUE) / 1000000000UL == 6 +# define MSGPACK_PP_SLOT_TEMP_10 6 +# elif (MSGPACK_PP_VALUE) / 1000000000UL == 7 +# define MSGPACK_PP_SLOT_TEMP_10 7 +# elif (MSGPACK_PP_VALUE) / 1000000000UL == 8 +# define MSGPACK_PP_SLOT_TEMP_10 8 +# elif (MSGPACK_PP_VALUE) / 1000000000UL == 9 +# define MSGPACK_PP_SLOT_TEMP_10 9 +# endif +# +# if MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 0 +# define MSGPACK_PP_SLOT_TEMP_9 0 +# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 1 +# define MSGPACK_PP_SLOT_TEMP_9 1 +# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 2 +# define MSGPACK_PP_SLOT_TEMP_9 2 +# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 3 +# define MSGPACK_PP_SLOT_TEMP_9 3 +# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 4 +# define MSGPACK_PP_SLOT_TEMP_9 4 +# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 5 +# define MSGPACK_PP_SLOT_TEMP_9 5 +# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 6 +# define MSGPACK_PP_SLOT_TEMP_9 6 +# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 7 +# define MSGPACK_PP_SLOT_TEMP_9 7 +# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 8 +# define MSGPACK_PP_SLOT_TEMP_9 8 +# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 9 +# define MSGPACK_PP_SLOT_TEMP_9 9 +# endif +# +# if MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 0 +# define MSGPACK_PP_SLOT_TEMP_8 0 +# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 1 +# define MSGPACK_PP_SLOT_TEMP_8 1 +# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 2 +# define MSGPACK_PP_SLOT_TEMP_8 2 +# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 3 +# define MSGPACK_PP_SLOT_TEMP_8 3 +# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 4 +# define MSGPACK_PP_SLOT_TEMP_8 4 +# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 5 +# define MSGPACK_PP_SLOT_TEMP_8 5 +# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 6 +# define MSGPACK_PP_SLOT_TEMP_8 6 +# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 7 +# define MSGPACK_PP_SLOT_TEMP_8 7 +# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 8 +# define MSGPACK_PP_SLOT_TEMP_8 8 +# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 9 +# define MSGPACK_PP_SLOT_TEMP_8 9 +# endif +# +# if MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 0 +# define MSGPACK_PP_SLOT_TEMP_7 0 +# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 1 +# define MSGPACK_PP_SLOT_TEMP_7 1 +# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 2 +# define MSGPACK_PP_SLOT_TEMP_7 2 +# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 3 +# define MSGPACK_PP_SLOT_TEMP_7 3 +# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 4 +# define MSGPACK_PP_SLOT_TEMP_7 4 +# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 5 +# define MSGPACK_PP_SLOT_TEMP_7 5 +# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 6 +# define MSGPACK_PP_SLOT_TEMP_7 6 +# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 7 +# define MSGPACK_PP_SLOT_TEMP_7 7 +# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 8 +# define MSGPACK_PP_SLOT_TEMP_7 8 +# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 9 +# define MSGPACK_PP_SLOT_TEMP_7 9 +# endif +# +# if MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 0 +# define MSGPACK_PP_SLOT_TEMP_6 0 +# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 1 +# define MSGPACK_PP_SLOT_TEMP_6 1 +# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 2 +# define MSGPACK_PP_SLOT_TEMP_6 2 +# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 3 +# define MSGPACK_PP_SLOT_TEMP_6 3 +# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 4 +# define MSGPACK_PP_SLOT_TEMP_6 4 +# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 5 +# define MSGPACK_PP_SLOT_TEMP_6 5 +# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 6 +# define MSGPACK_PP_SLOT_TEMP_6 6 +# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 7 +# define MSGPACK_PP_SLOT_TEMP_6 7 +# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 8 +# define MSGPACK_PP_SLOT_TEMP_6 8 +# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 9 +# define MSGPACK_PP_SLOT_TEMP_6 9 +# endif +# +# if MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 0 +# define MSGPACK_PP_SLOT_TEMP_5 0 +# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 1 +# define MSGPACK_PP_SLOT_TEMP_5 1 +# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 2 +# define MSGPACK_PP_SLOT_TEMP_5 2 +# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 3 +# define MSGPACK_PP_SLOT_TEMP_5 3 +# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 4 +# define MSGPACK_PP_SLOT_TEMP_5 4 +# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 5 +# define MSGPACK_PP_SLOT_TEMP_5 5 +# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 6 +# define MSGPACK_PP_SLOT_TEMP_5 6 +# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 7 +# define MSGPACK_PP_SLOT_TEMP_5 7 +# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 8 +# define MSGPACK_PP_SLOT_TEMP_5 8 +# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 9 +# define MSGPACK_PP_SLOT_TEMP_5 9 +# endif +# +# if MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 0 +# define MSGPACK_PP_SLOT_TEMP_4 0 +# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 1 +# define MSGPACK_PP_SLOT_TEMP_4 1 +# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 2 +# define MSGPACK_PP_SLOT_TEMP_4 2 +# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 3 +# define MSGPACK_PP_SLOT_TEMP_4 3 +# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 4 +# define MSGPACK_PP_SLOT_TEMP_4 4 +# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 5 +# define MSGPACK_PP_SLOT_TEMP_4 5 +# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 6 +# define MSGPACK_PP_SLOT_TEMP_4 6 +# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 7 +# define MSGPACK_PP_SLOT_TEMP_4 7 +# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 8 +# define MSGPACK_PP_SLOT_TEMP_4 8 +# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 9 +# define MSGPACK_PP_SLOT_TEMP_4 9 +# endif +# +# if MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 0 +# define MSGPACK_PP_SLOT_TEMP_3 0 +# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 1 +# define MSGPACK_PP_SLOT_TEMP_3 1 +# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 2 +# define MSGPACK_PP_SLOT_TEMP_3 2 +# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 3 +# define MSGPACK_PP_SLOT_TEMP_3 3 +# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 4 +# define MSGPACK_PP_SLOT_TEMP_3 4 +# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 5 +# define MSGPACK_PP_SLOT_TEMP_3 5 +# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 6 +# define MSGPACK_PP_SLOT_TEMP_3 6 +# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 7 +# define MSGPACK_PP_SLOT_TEMP_3 7 +# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 8 +# define MSGPACK_PP_SLOT_TEMP_3 8 +# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 9 +# define MSGPACK_PP_SLOT_TEMP_3 9 +# endif +# +# if MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 0 +# define MSGPACK_PP_SLOT_TEMP_2 0 +# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 1 +# define MSGPACK_PP_SLOT_TEMP_2 1 +# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 2 +# define MSGPACK_PP_SLOT_TEMP_2 2 +# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 3 +# define MSGPACK_PP_SLOT_TEMP_2 3 +# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 4 +# define MSGPACK_PP_SLOT_TEMP_2 4 +# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 5 +# define MSGPACK_PP_SLOT_TEMP_2 5 +# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 6 +# define MSGPACK_PP_SLOT_TEMP_2 6 +# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 7 +# define MSGPACK_PP_SLOT_TEMP_2 7 +# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 8 +# define MSGPACK_PP_SLOT_TEMP_2 8 +# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 9 +# define MSGPACK_PP_SLOT_TEMP_2 9 +# endif +# +# if MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 0 +# define MSGPACK_PP_SLOT_TEMP_1 0 +# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 1 +# define MSGPACK_PP_SLOT_TEMP_1 1 +# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 2 +# define MSGPACK_PP_SLOT_TEMP_1 2 +# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 3 +# define MSGPACK_PP_SLOT_TEMP_1 3 +# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 4 +# define MSGPACK_PP_SLOT_TEMP_1 4 +# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 5 +# define MSGPACK_PP_SLOT_TEMP_1 5 +# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 6 +# define MSGPACK_PP_SLOT_TEMP_1 6 +# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 7 +# define MSGPACK_PP_SLOT_TEMP_1 7 +# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 8 +# define MSGPACK_PP_SLOT_TEMP_1 8 +# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 9 +# define MSGPACK_PP_SLOT_TEMP_1 9 +# endif +# +# undef MSGPACK_PP_VALUE diff --git a/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot1.hpp b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot1.hpp new file mode 100644 index 000000000000..02db4c8f848c --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot1.hpp @@ -0,0 +1,267 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_SLOT_1 +# +# undef MSGPACK_PP_SLOT_1_DIGIT_1 +# undef MSGPACK_PP_SLOT_1_DIGIT_2 +# undef MSGPACK_PP_SLOT_1_DIGIT_3 +# undef MSGPACK_PP_SLOT_1_DIGIT_4 +# undef MSGPACK_PP_SLOT_1_DIGIT_5 +# undef MSGPACK_PP_SLOT_1_DIGIT_6 +# undef MSGPACK_PP_SLOT_1_DIGIT_7 +# undef MSGPACK_PP_SLOT_1_DIGIT_8 +# undef MSGPACK_PP_SLOT_1_DIGIT_9 +# undef MSGPACK_PP_SLOT_1_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_10 == 0 +# define MSGPACK_PP_SLOT_1_DIGIT_10 0 +# elif MSGPACK_PP_SLOT_TEMP_10 == 1 +# define MSGPACK_PP_SLOT_1_DIGIT_10 1 +# elif MSGPACK_PP_SLOT_TEMP_10 == 2 +# define MSGPACK_PP_SLOT_1_DIGIT_10 2 +# elif MSGPACK_PP_SLOT_TEMP_10 == 3 +# define MSGPACK_PP_SLOT_1_DIGIT_10 3 +# elif MSGPACK_PP_SLOT_TEMP_10 == 4 +# define MSGPACK_PP_SLOT_1_DIGIT_10 4 +# elif MSGPACK_PP_SLOT_TEMP_10 == 5 +# define MSGPACK_PP_SLOT_1_DIGIT_10 5 +# elif MSGPACK_PP_SLOT_TEMP_10 == 6 +# define MSGPACK_PP_SLOT_1_DIGIT_10 6 +# elif MSGPACK_PP_SLOT_TEMP_10 == 7 +# define MSGPACK_PP_SLOT_1_DIGIT_10 7 +# elif MSGPACK_PP_SLOT_TEMP_10 == 8 +# define MSGPACK_PP_SLOT_1_DIGIT_10 8 +# elif MSGPACK_PP_SLOT_TEMP_10 == 9 +# define MSGPACK_PP_SLOT_1_DIGIT_10 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_9 == 0 +# define MSGPACK_PP_SLOT_1_DIGIT_9 0 +# elif MSGPACK_PP_SLOT_TEMP_9 == 1 +# define MSGPACK_PP_SLOT_1_DIGIT_9 1 +# elif MSGPACK_PP_SLOT_TEMP_9 == 2 +# define MSGPACK_PP_SLOT_1_DIGIT_9 2 +# elif MSGPACK_PP_SLOT_TEMP_9 == 3 +# define MSGPACK_PP_SLOT_1_DIGIT_9 3 +# elif MSGPACK_PP_SLOT_TEMP_9 == 4 +# define MSGPACK_PP_SLOT_1_DIGIT_9 4 +# elif MSGPACK_PP_SLOT_TEMP_9 == 5 +# define MSGPACK_PP_SLOT_1_DIGIT_9 5 +# elif MSGPACK_PP_SLOT_TEMP_9 == 6 +# define MSGPACK_PP_SLOT_1_DIGIT_9 6 +# elif MSGPACK_PP_SLOT_TEMP_9 == 7 +# define MSGPACK_PP_SLOT_1_DIGIT_9 7 +# elif MSGPACK_PP_SLOT_TEMP_9 == 8 +# define MSGPACK_PP_SLOT_1_DIGIT_9 8 +# elif MSGPACK_PP_SLOT_TEMP_9 == 9 +# define MSGPACK_PP_SLOT_1_DIGIT_9 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_8 == 0 +# define MSGPACK_PP_SLOT_1_DIGIT_8 0 +# elif MSGPACK_PP_SLOT_TEMP_8 == 1 +# define MSGPACK_PP_SLOT_1_DIGIT_8 1 +# elif MSGPACK_PP_SLOT_TEMP_8 == 2 +# define MSGPACK_PP_SLOT_1_DIGIT_8 2 +# elif MSGPACK_PP_SLOT_TEMP_8 == 3 +# define MSGPACK_PP_SLOT_1_DIGIT_8 3 +# elif MSGPACK_PP_SLOT_TEMP_8 == 4 +# define MSGPACK_PP_SLOT_1_DIGIT_8 4 +# elif MSGPACK_PP_SLOT_TEMP_8 == 5 +# define MSGPACK_PP_SLOT_1_DIGIT_8 5 +# elif MSGPACK_PP_SLOT_TEMP_8 == 6 +# define MSGPACK_PP_SLOT_1_DIGIT_8 6 +# elif MSGPACK_PP_SLOT_TEMP_8 == 7 +# define MSGPACK_PP_SLOT_1_DIGIT_8 7 +# elif MSGPACK_PP_SLOT_TEMP_8 == 8 +# define MSGPACK_PP_SLOT_1_DIGIT_8 8 +# elif MSGPACK_PP_SLOT_TEMP_8 == 9 +# define MSGPACK_PP_SLOT_1_DIGIT_8 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_7 == 0 +# define MSGPACK_PP_SLOT_1_DIGIT_7 0 +# elif MSGPACK_PP_SLOT_TEMP_7 == 1 +# define MSGPACK_PP_SLOT_1_DIGIT_7 1 +# elif MSGPACK_PP_SLOT_TEMP_7 == 2 +# define MSGPACK_PP_SLOT_1_DIGIT_7 2 +# elif MSGPACK_PP_SLOT_TEMP_7 == 3 +# define MSGPACK_PP_SLOT_1_DIGIT_7 3 +# elif MSGPACK_PP_SLOT_TEMP_7 == 4 +# define MSGPACK_PP_SLOT_1_DIGIT_7 4 +# elif MSGPACK_PP_SLOT_TEMP_7 == 5 +# define MSGPACK_PP_SLOT_1_DIGIT_7 5 +# elif MSGPACK_PP_SLOT_TEMP_7 == 6 +# define MSGPACK_PP_SLOT_1_DIGIT_7 6 +# elif MSGPACK_PP_SLOT_TEMP_7 == 7 +# define MSGPACK_PP_SLOT_1_DIGIT_7 7 +# elif MSGPACK_PP_SLOT_TEMP_7 == 8 +# define MSGPACK_PP_SLOT_1_DIGIT_7 8 +# elif MSGPACK_PP_SLOT_TEMP_7 == 9 +# define MSGPACK_PP_SLOT_1_DIGIT_7 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_6 == 0 +# define MSGPACK_PP_SLOT_1_DIGIT_6 0 +# elif MSGPACK_PP_SLOT_TEMP_6 == 1 +# define MSGPACK_PP_SLOT_1_DIGIT_6 1 +# elif MSGPACK_PP_SLOT_TEMP_6 == 2 +# define MSGPACK_PP_SLOT_1_DIGIT_6 2 +# elif MSGPACK_PP_SLOT_TEMP_6 == 3 +# define MSGPACK_PP_SLOT_1_DIGIT_6 3 +# elif MSGPACK_PP_SLOT_TEMP_6 == 4 +# define MSGPACK_PP_SLOT_1_DIGIT_6 4 +# elif MSGPACK_PP_SLOT_TEMP_6 == 5 +# define MSGPACK_PP_SLOT_1_DIGIT_6 5 +# elif MSGPACK_PP_SLOT_TEMP_6 == 6 +# define MSGPACK_PP_SLOT_1_DIGIT_6 6 +# elif MSGPACK_PP_SLOT_TEMP_6 == 7 +# define MSGPACK_PP_SLOT_1_DIGIT_6 7 +# elif MSGPACK_PP_SLOT_TEMP_6 == 8 +# define MSGPACK_PP_SLOT_1_DIGIT_6 8 +# elif MSGPACK_PP_SLOT_TEMP_6 == 9 +# define MSGPACK_PP_SLOT_1_DIGIT_6 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_5 == 0 +# define MSGPACK_PP_SLOT_1_DIGIT_5 0 +# elif MSGPACK_PP_SLOT_TEMP_5 == 1 +# define MSGPACK_PP_SLOT_1_DIGIT_5 1 +# elif MSGPACK_PP_SLOT_TEMP_5 == 2 +# define MSGPACK_PP_SLOT_1_DIGIT_5 2 +# elif MSGPACK_PP_SLOT_TEMP_5 == 3 +# define MSGPACK_PP_SLOT_1_DIGIT_5 3 +# elif MSGPACK_PP_SLOT_TEMP_5 == 4 +# define MSGPACK_PP_SLOT_1_DIGIT_5 4 +# elif MSGPACK_PP_SLOT_TEMP_5 == 5 +# define MSGPACK_PP_SLOT_1_DIGIT_5 5 +# elif MSGPACK_PP_SLOT_TEMP_5 == 6 +# define MSGPACK_PP_SLOT_1_DIGIT_5 6 +# elif MSGPACK_PP_SLOT_TEMP_5 == 7 +# define MSGPACK_PP_SLOT_1_DIGIT_5 7 +# elif MSGPACK_PP_SLOT_TEMP_5 == 8 +# define MSGPACK_PP_SLOT_1_DIGIT_5 8 +# elif MSGPACK_PP_SLOT_TEMP_5 == 9 +# define MSGPACK_PP_SLOT_1_DIGIT_5 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_4 == 0 +# define MSGPACK_PP_SLOT_1_DIGIT_4 0 +# elif MSGPACK_PP_SLOT_TEMP_4 == 1 +# define MSGPACK_PP_SLOT_1_DIGIT_4 1 +# elif MSGPACK_PP_SLOT_TEMP_4 == 2 +# define MSGPACK_PP_SLOT_1_DIGIT_4 2 +# elif MSGPACK_PP_SLOT_TEMP_4 == 3 +# define MSGPACK_PP_SLOT_1_DIGIT_4 3 +# elif MSGPACK_PP_SLOT_TEMP_4 == 4 +# define MSGPACK_PP_SLOT_1_DIGIT_4 4 +# elif MSGPACK_PP_SLOT_TEMP_4 == 5 +# define MSGPACK_PP_SLOT_1_DIGIT_4 5 +# elif MSGPACK_PP_SLOT_TEMP_4 == 6 +# define MSGPACK_PP_SLOT_1_DIGIT_4 6 +# elif MSGPACK_PP_SLOT_TEMP_4 == 7 +# define MSGPACK_PP_SLOT_1_DIGIT_4 7 +# elif MSGPACK_PP_SLOT_TEMP_4 == 8 +# define MSGPACK_PP_SLOT_1_DIGIT_4 8 +# elif MSGPACK_PP_SLOT_TEMP_4 == 9 +# define MSGPACK_PP_SLOT_1_DIGIT_4 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_SLOT_1_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_SLOT_1_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_SLOT_1_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_SLOT_1_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_SLOT_1_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_SLOT_1_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_SLOT_1_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_SLOT_1_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_SLOT_1_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_SLOT_1_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_SLOT_1_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_SLOT_1_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_SLOT_1_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_SLOT_1_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_SLOT_1_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_SLOT_1_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_SLOT_1_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_SLOT_1_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_SLOT_1_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_SLOT_1_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_SLOT_1_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_SLOT_1_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_SLOT_1_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_SLOT_1_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_SLOT_1_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_SLOT_1_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_SLOT_1_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_SLOT_1_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_SLOT_1_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_SLOT_1_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_SLOT_1_DIGIT_10 +# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_10(MSGPACK_PP_SLOT_1_DIGIT_10, MSGPACK_PP_SLOT_1_DIGIT_9, MSGPACK_PP_SLOT_1_DIGIT_8, MSGPACK_PP_SLOT_1_DIGIT_7, MSGPACK_PP_SLOT_1_DIGIT_6, MSGPACK_PP_SLOT_1_DIGIT_5, MSGPACK_PP_SLOT_1_DIGIT_4, MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1) +# elif MSGPACK_PP_SLOT_1_DIGIT_9 +# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_9(MSGPACK_PP_SLOT_1_DIGIT_9, MSGPACK_PP_SLOT_1_DIGIT_8, MSGPACK_PP_SLOT_1_DIGIT_7, MSGPACK_PP_SLOT_1_DIGIT_6, MSGPACK_PP_SLOT_1_DIGIT_5, MSGPACK_PP_SLOT_1_DIGIT_4, MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1) +# elif MSGPACK_PP_SLOT_1_DIGIT_8 +# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_8(MSGPACK_PP_SLOT_1_DIGIT_8, MSGPACK_PP_SLOT_1_DIGIT_7, MSGPACK_PP_SLOT_1_DIGIT_6, MSGPACK_PP_SLOT_1_DIGIT_5, MSGPACK_PP_SLOT_1_DIGIT_4, MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1) +# elif MSGPACK_PP_SLOT_1_DIGIT_7 +# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_7(MSGPACK_PP_SLOT_1_DIGIT_7, MSGPACK_PP_SLOT_1_DIGIT_6, MSGPACK_PP_SLOT_1_DIGIT_5, MSGPACK_PP_SLOT_1_DIGIT_4, MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1) +# elif MSGPACK_PP_SLOT_1_DIGIT_6 +# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_6(MSGPACK_PP_SLOT_1_DIGIT_6, MSGPACK_PP_SLOT_1_DIGIT_5, MSGPACK_PP_SLOT_1_DIGIT_4, MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1) +# elif MSGPACK_PP_SLOT_1_DIGIT_5 +# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_5(MSGPACK_PP_SLOT_1_DIGIT_5, MSGPACK_PP_SLOT_1_DIGIT_4, MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1) +# elif MSGPACK_PP_SLOT_1_DIGIT_4 +# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_4(MSGPACK_PP_SLOT_1_DIGIT_4, MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1) +# elif MSGPACK_PP_SLOT_1_DIGIT_3 +# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1) +# elif MSGPACK_PP_SLOT_1_DIGIT_2 +# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1) +# else +# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_1_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot2.hpp b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot2.hpp new file mode 100644 index 000000000000..3e1868b4267d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot2.hpp @@ -0,0 +1,267 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_SLOT_2 +# +# undef MSGPACK_PP_SLOT_2_DIGIT_1 +# undef MSGPACK_PP_SLOT_2_DIGIT_2 +# undef MSGPACK_PP_SLOT_2_DIGIT_3 +# undef MSGPACK_PP_SLOT_2_DIGIT_4 +# undef MSGPACK_PP_SLOT_2_DIGIT_5 +# undef MSGPACK_PP_SLOT_2_DIGIT_6 +# undef MSGPACK_PP_SLOT_2_DIGIT_7 +# undef MSGPACK_PP_SLOT_2_DIGIT_8 +# undef MSGPACK_PP_SLOT_2_DIGIT_9 +# undef MSGPACK_PP_SLOT_2_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_10 == 0 +# define MSGPACK_PP_SLOT_2_DIGIT_10 0 +# elif MSGPACK_PP_SLOT_TEMP_10 == 1 +# define MSGPACK_PP_SLOT_2_DIGIT_10 1 +# elif MSGPACK_PP_SLOT_TEMP_10 == 2 +# define MSGPACK_PP_SLOT_2_DIGIT_10 2 +# elif MSGPACK_PP_SLOT_TEMP_10 == 3 +# define MSGPACK_PP_SLOT_2_DIGIT_10 3 +# elif MSGPACK_PP_SLOT_TEMP_10 == 4 +# define MSGPACK_PP_SLOT_2_DIGIT_10 4 +# elif MSGPACK_PP_SLOT_TEMP_10 == 5 +# define MSGPACK_PP_SLOT_2_DIGIT_10 5 +# elif MSGPACK_PP_SLOT_TEMP_10 == 6 +# define MSGPACK_PP_SLOT_2_DIGIT_10 6 +# elif MSGPACK_PP_SLOT_TEMP_10 == 7 +# define MSGPACK_PP_SLOT_2_DIGIT_10 7 +# elif MSGPACK_PP_SLOT_TEMP_10 == 8 +# define MSGPACK_PP_SLOT_2_DIGIT_10 8 +# elif MSGPACK_PP_SLOT_TEMP_10 == 9 +# define MSGPACK_PP_SLOT_2_DIGIT_10 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_9 == 0 +# define MSGPACK_PP_SLOT_2_DIGIT_9 0 +# elif MSGPACK_PP_SLOT_TEMP_9 == 1 +# define MSGPACK_PP_SLOT_2_DIGIT_9 1 +# elif MSGPACK_PP_SLOT_TEMP_9 == 2 +# define MSGPACK_PP_SLOT_2_DIGIT_9 2 +# elif MSGPACK_PP_SLOT_TEMP_9 == 3 +# define MSGPACK_PP_SLOT_2_DIGIT_9 3 +# elif MSGPACK_PP_SLOT_TEMP_9 == 4 +# define MSGPACK_PP_SLOT_2_DIGIT_9 4 +# elif MSGPACK_PP_SLOT_TEMP_9 == 5 +# define MSGPACK_PP_SLOT_2_DIGIT_9 5 +# elif MSGPACK_PP_SLOT_TEMP_9 == 6 +# define MSGPACK_PP_SLOT_2_DIGIT_9 6 +# elif MSGPACK_PP_SLOT_TEMP_9 == 7 +# define MSGPACK_PP_SLOT_2_DIGIT_9 7 +# elif MSGPACK_PP_SLOT_TEMP_9 == 8 +# define MSGPACK_PP_SLOT_2_DIGIT_9 8 +# elif MSGPACK_PP_SLOT_TEMP_9 == 9 +# define MSGPACK_PP_SLOT_2_DIGIT_9 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_8 == 0 +# define MSGPACK_PP_SLOT_2_DIGIT_8 0 +# elif MSGPACK_PP_SLOT_TEMP_8 == 1 +# define MSGPACK_PP_SLOT_2_DIGIT_8 1 +# elif MSGPACK_PP_SLOT_TEMP_8 == 2 +# define MSGPACK_PP_SLOT_2_DIGIT_8 2 +# elif MSGPACK_PP_SLOT_TEMP_8 == 3 +# define MSGPACK_PP_SLOT_2_DIGIT_8 3 +# elif MSGPACK_PP_SLOT_TEMP_8 == 4 +# define MSGPACK_PP_SLOT_2_DIGIT_8 4 +# elif MSGPACK_PP_SLOT_TEMP_8 == 5 +# define MSGPACK_PP_SLOT_2_DIGIT_8 5 +# elif MSGPACK_PP_SLOT_TEMP_8 == 6 +# define MSGPACK_PP_SLOT_2_DIGIT_8 6 +# elif MSGPACK_PP_SLOT_TEMP_8 == 7 +# define MSGPACK_PP_SLOT_2_DIGIT_8 7 +# elif MSGPACK_PP_SLOT_TEMP_8 == 8 +# define MSGPACK_PP_SLOT_2_DIGIT_8 8 +# elif MSGPACK_PP_SLOT_TEMP_8 == 9 +# define MSGPACK_PP_SLOT_2_DIGIT_8 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_7 == 0 +# define MSGPACK_PP_SLOT_2_DIGIT_7 0 +# elif MSGPACK_PP_SLOT_TEMP_7 == 1 +# define MSGPACK_PP_SLOT_2_DIGIT_7 1 +# elif MSGPACK_PP_SLOT_TEMP_7 == 2 +# define MSGPACK_PP_SLOT_2_DIGIT_7 2 +# elif MSGPACK_PP_SLOT_TEMP_7 == 3 +# define MSGPACK_PP_SLOT_2_DIGIT_7 3 +# elif MSGPACK_PP_SLOT_TEMP_7 == 4 +# define MSGPACK_PP_SLOT_2_DIGIT_7 4 +# elif MSGPACK_PP_SLOT_TEMP_7 == 5 +# define MSGPACK_PP_SLOT_2_DIGIT_7 5 +# elif MSGPACK_PP_SLOT_TEMP_7 == 6 +# define MSGPACK_PP_SLOT_2_DIGIT_7 6 +# elif MSGPACK_PP_SLOT_TEMP_7 == 7 +# define MSGPACK_PP_SLOT_2_DIGIT_7 7 +# elif MSGPACK_PP_SLOT_TEMP_7 == 8 +# define MSGPACK_PP_SLOT_2_DIGIT_7 8 +# elif MSGPACK_PP_SLOT_TEMP_7 == 9 +# define MSGPACK_PP_SLOT_2_DIGIT_7 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_6 == 0 +# define MSGPACK_PP_SLOT_2_DIGIT_6 0 +# elif MSGPACK_PP_SLOT_TEMP_6 == 1 +# define MSGPACK_PP_SLOT_2_DIGIT_6 1 +# elif MSGPACK_PP_SLOT_TEMP_6 == 2 +# define MSGPACK_PP_SLOT_2_DIGIT_6 2 +# elif MSGPACK_PP_SLOT_TEMP_6 == 3 +# define MSGPACK_PP_SLOT_2_DIGIT_6 3 +# elif MSGPACK_PP_SLOT_TEMP_6 == 4 +# define MSGPACK_PP_SLOT_2_DIGIT_6 4 +# elif MSGPACK_PP_SLOT_TEMP_6 == 5 +# define MSGPACK_PP_SLOT_2_DIGIT_6 5 +# elif MSGPACK_PP_SLOT_TEMP_6 == 6 +# define MSGPACK_PP_SLOT_2_DIGIT_6 6 +# elif MSGPACK_PP_SLOT_TEMP_6 == 7 +# define MSGPACK_PP_SLOT_2_DIGIT_6 7 +# elif MSGPACK_PP_SLOT_TEMP_6 == 8 +# define MSGPACK_PP_SLOT_2_DIGIT_6 8 +# elif MSGPACK_PP_SLOT_TEMP_6 == 9 +# define MSGPACK_PP_SLOT_2_DIGIT_6 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_5 == 0 +# define MSGPACK_PP_SLOT_2_DIGIT_5 0 +# elif MSGPACK_PP_SLOT_TEMP_5 == 1 +# define MSGPACK_PP_SLOT_2_DIGIT_5 1 +# elif MSGPACK_PP_SLOT_TEMP_5 == 2 +# define MSGPACK_PP_SLOT_2_DIGIT_5 2 +# elif MSGPACK_PP_SLOT_TEMP_5 == 3 +# define MSGPACK_PP_SLOT_2_DIGIT_5 3 +# elif MSGPACK_PP_SLOT_TEMP_5 == 4 +# define MSGPACK_PP_SLOT_2_DIGIT_5 4 +# elif MSGPACK_PP_SLOT_TEMP_5 == 5 +# define MSGPACK_PP_SLOT_2_DIGIT_5 5 +# elif MSGPACK_PP_SLOT_TEMP_5 == 6 +# define MSGPACK_PP_SLOT_2_DIGIT_5 6 +# elif MSGPACK_PP_SLOT_TEMP_5 == 7 +# define MSGPACK_PP_SLOT_2_DIGIT_5 7 +# elif MSGPACK_PP_SLOT_TEMP_5 == 8 +# define MSGPACK_PP_SLOT_2_DIGIT_5 8 +# elif MSGPACK_PP_SLOT_TEMP_5 == 9 +# define MSGPACK_PP_SLOT_2_DIGIT_5 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_4 == 0 +# define MSGPACK_PP_SLOT_2_DIGIT_4 0 +# elif MSGPACK_PP_SLOT_TEMP_4 == 1 +# define MSGPACK_PP_SLOT_2_DIGIT_4 1 +# elif MSGPACK_PP_SLOT_TEMP_4 == 2 +# define MSGPACK_PP_SLOT_2_DIGIT_4 2 +# elif MSGPACK_PP_SLOT_TEMP_4 == 3 +# define MSGPACK_PP_SLOT_2_DIGIT_4 3 +# elif MSGPACK_PP_SLOT_TEMP_4 == 4 +# define MSGPACK_PP_SLOT_2_DIGIT_4 4 +# elif MSGPACK_PP_SLOT_TEMP_4 == 5 +# define MSGPACK_PP_SLOT_2_DIGIT_4 5 +# elif MSGPACK_PP_SLOT_TEMP_4 == 6 +# define MSGPACK_PP_SLOT_2_DIGIT_4 6 +# elif MSGPACK_PP_SLOT_TEMP_4 == 7 +# define MSGPACK_PP_SLOT_2_DIGIT_4 7 +# elif MSGPACK_PP_SLOT_TEMP_4 == 8 +# define MSGPACK_PP_SLOT_2_DIGIT_4 8 +# elif MSGPACK_PP_SLOT_TEMP_4 == 9 +# define MSGPACK_PP_SLOT_2_DIGIT_4 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_SLOT_2_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_SLOT_2_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_SLOT_2_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_SLOT_2_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_SLOT_2_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_SLOT_2_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_SLOT_2_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_SLOT_2_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_SLOT_2_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_SLOT_2_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_SLOT_2_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_SLOT_2_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_SLOT_2_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_SLOT_2_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_SLOT_2_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_SLOT_2_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_SLOT_2_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_SLOT_2_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_SLOT_2_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_SLOT_2_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_SLOT_2_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_SLOT_2_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_SLOT_2_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_SLOT_2_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_SLOT_2_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_SLOT_2_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_SLOT_2_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_SLOT_2_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_SLOT_2_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_SLOT_2_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_SLOT_2_DIGIT_10 +# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_10(MSGPACK_PP_SLOT_2_DIGIT_10, MSGPACK_PP_SLOT_2_DIGIT_9, MSGPACK_PP_SLOT_2_DIGIT_8, MSGPACK_PP_SLOT_2_DIGIT_7, MSGPACK_PP_SLOT_2_DIGIT_6, MSGPACK_PP_SLOT_2_DIGIT_5, MSGPACK_PP_SLOT_2_DIGIT_4, MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1) +# elif MSGPACK_PP_SLOT_2_DIGIT_9 +# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_9(MSGPACK_PP_SLOT_2_DIGIT_9, MSGPACK_PP_SLOT_2_DIGIT_8, MSGPACK_PP_SLOT_2_DIGIT_7, MSGPACK_PP_SLOT_2_DIGIT_6, MSGPACK_PP_SLOT_2_DIGIT_5, MSGPACK_PP_SLOT_2_DIGIT_4, MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1) +# elif MSGPACK_PP_SLOT_2_DIGIT_8 +# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_8(MSGPACK_PP_SLOT_2_DIGIT_8, MSGPACK_PP_SLOT_2_DIGIT_7, MSGPACK_PP_SLOT_2_DIGIT_6, MSGPACK_PP_SLOT_2_DIGIT_5, MSGPACK_PP_SLOT_2_DIGIT_4, MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1) +# elif MSGPACK_PP_SLOT_2_DIGIT_7 +# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_7(MSGPACK_PP_SLOT_2_DIGIT_7, MSGPACK_PP_SLOT_2_DIGIT_6, MSGPACK_PP_SLOT_2_DIGIT_5, MSGPACK_PP_SLOT_2_DIGIT_4, MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1) +# elif MSGPACK_PP_SLOT_2_DIGIT_6 +# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_6(MSGPACK_PP_SLOT_2_DIGIT_6, MSGPACK_PP_SLOT_2_DIGIT_5, MSGPACK_PP_SLOT_2_DIGIT_4, MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1) +# elif MSGPACK_PP_SLOT_2_DIGIT_5 +# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_5(MSGPACK_PP_SLOT_2_DIGIT_5, MSGPACK_PP_SLOT_2_DIGIT_4, MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1) +# elif MSGPACK_PP_SLOT_2_DIGIT_4 +# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_4(MSGPACK_PP_SLOT_2_DIGIT_4, MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1) +# elif MSGPACK_PP_SLOT_2_DIGIT_3 +# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1) +# elif MSGPACK_PP_SLOT_2_DIGIT_2 +# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1) +# else +# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_2_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot3.hpp b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot3.hpp new file mode 100644 index 000000000000..083bc8ab1eee --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot3.hpp @@ -0,0 +1,267 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_SLOT_3 +# +# undef MSGPACK_PP_SLOT_3_DIGIT_1 +# undef MSGPACK_PP_SLOT_3_DIGIT_2 +# undef MSGPACK_PP_SLOT_3_DIGIT_3 +# undef MSGPACK_PP_SLOT_3_DIGIT_4 +# undef MSGPACK_PP_SLOT_3_DIGIT_5 +# undef MSGPACK_PP_SLOT_3_DIGIT_6 +# undef MSGPACK_PP_SLOT_3_DIGIT_7 +# undef MSGPACK_PP_SLOT_3_DIGIT_8 +# undef MSGPACK_PP_SLOT_3_DIGIT_9 +# undef MSGPACK_PP_SLOT_3_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_10 == 0 +# define MSGPACK_PP_SLOT_3_DIGIT_10 0 +# elif MSGPACK_PP_SLOT_TEMP_10 == 1 +# define MSGPACK_PP_SLOT_3_DIGIT_10 1 +# elif MSGPACK_PP_SLOT_TEMP_10 == 2 +# define MSGPACK_PP_SLOT_3_DIGIT_10 2 +# elif MSGPACK_PP_SLOT_TEMP_10 == 3 +# define MSGPACK_PP_SLOT_3_DIGIT_10 3 +# elif MSGPACK_PP_SLOT_TEMP_10 == 4 +# define MSGPACK_PP_SLOT_3_DIGIT_10 4 +# elif MSGPACK_PP_SLOT_TEMP_10 == 5 +# define MSGPACK_PP_SLOT_3_DIGIT_10 5 +# elif MSGPACK_PP_SLOT_TEMP_10 == 6 +# define MSGPACK_PP_SLOT_3_DIGIT_10 6 +# elif MSGPACK_PP_SLOT_TEMP_10 == 7 +# define MSGPACK_PP_SLOT_3_DIGIT_10 7 +# elif MSGPACK_PP_SLOT_TEMP_10 == 8 +# define MSGPACK_PP_SLOT_3_DIGIT_10 8 +# elif MSGPACK_PP_SLOT_TEMP_10 == 9 +# define MSGPACK_PP_SLOT_3_DIGIT_10 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_9 == 0 +# define MSGPACK_PP_SLOT_3_DIGIT_9 0 +# elif MSGPACK_PP_SLOT_TEMP_9 == 1 +# define MSGPACK_PP_SLOT_3_DIGIT_9 1 +# elif MSGPACK_PP_SLOT_TEMP_9 == 2 +# define MSGPACK_PP_SLOT_3_DIGIT_9 2 +# elif MSGPACK_PP_SLOT_TEMP_9 == 3 +# define MSGPACK_PP_SLOT_3_DIGIT_9 3 +# elif MSGPACK_PP_SLOT_TEMP_9 == 4 +# define MSGPACK_PP_SLOT_3_DIGIT_9 4 +# elif MSGPACK_PP_SLOT_TEMP_9 == 5 +# define MSGPACK_PP_SLOT_3_DIGIT_9 5 +# elif MSGPACK_PP_SLOT_TEMP_9 == 6 +# define MSGPACK_PP_SLOT_3_DIGIT_9 6 +# elif MSGPACK_PP_SLOT_TEMP_9 == 7 +# define MSGPACK_PP_SLOT_3_DIGIT_9 7 +# elif MSGPACK_PP_SLOT_TEMP_9 == 8 +# define MSGPACK_PP_SLOT_3_DIGIT_9 8 +# elif MSGPACK_PP_SLOT_TEMP_9 == 9 +# define MSGPACK_PP_SLOT_3_DIGIT_9 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_8 == 0 +# define MSGPACK_PP_SLOT_3_DIGIT_8 0 +# elif MSGPACK_PP_SLOT_TEMP_8 == 1 +# define MSGPACK_PP_SLOT_3_DIGIT_8 1 +# elif MSGPACK_PP_SLOT_TEMP_8 == 2 +# define MSGPACK_PP_SLOT_3_DIGIT_8 2 +# elif MSGPACK_PP_SLOT_TEMP_8 == 3 +# define MSGPACK_PP_SLOT_3_DIGIT_8 3 +# elif MSGPACK_PP_SLOT_TEMP_8 == 4 +# define MSGPACK_PP_SLOT_3_DIGIT_8 4 +# elif MSGPACK_PP_SLOT_TEMP_8 == 5 +# define MSGPACK_PP_SLOT_3_DIGIT_8 5 +# elif MSGPACK_PP_SLOT_TEMP_8 == 6 +# define MSGPACK_PP_SLOT_3_DIGIT_8 6 +# elif MSGPACK_PP_SLOT_TEMP_8 == 7 +# define MSGPACK_PP_SLOT_3_DIGIT_8 7 +# elif MSGPACK_PP_SLOT_TEMP_8 == 8 +# define MSGPACK_PP_SLOT_3_DIGIT_8 8 +# elif MSGPACK_PP_SLOT_TEMP_8 == 9 +# define MSGPACK_PP_SLOT_3_DIGIT_8 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_7 == 0 +# define MSGPACK_PP_SLOT_3_DIGIT_7 0 +# elif MSGPACK_PP_SLOT_TEMP_7 == 1 +# define MSGPACK_PP_SLOT_3_DIGIT_7 1 +# elif MSGPACK_PP_SLOT_TEMP_7 == 2 +# define MSGPACK_PP_SLOT_3_DIGIT_7 2 +# elif MSGPACK_PP_SLOT_TEMP_7 == 3 +# define MSGPACK_PP_SLOT_3_DIGIT_7 3 +# elif MSGPACK_PP_SLOT_TEMP_7 == 4 +# define MSGPACK_PP_SLOT_3_DIGIT_7 4 +# elif MSGPACK_PP_SLOT_TEMP_7 == 5 +# define MSGPACK_PP_SLOT_3_DIGIT_7 5 +# elif MSGPACK_PP_SLOT_TEMP_7 == 6 +# define MSGPACK_PP_SLOT_3_DIGIT_7 6 +# elif MSGPACK_PP_SLOT_TEMP_7 == 7 +# define MSGPACK_PP_SLOT_3_DIGIT_7 7 +# elif MSGPACK_PP_SLOT_TEMP_7 == 8 +# define MSGPACK_PP_SLOT_3_DIGIT_7 8 +# elif MSGPACK_PP_SLOT_TEMP_7 == 9 +# define MSGPACK_PP_SLOT_3_DIGIT_7 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_6 == 0 +# define MSGPACK_PP_SLOT_3_DIGIT_6 0 +# elif MSGPACK_PP_SLOT_TEMP_6 == 1 +# define MSGPACK_PP_SLOT_3_DIGIT_6 1 +# elif MSGPACK_PP_SLOT_TEMP_6 == 2 +# define MSGPACK_PP_SLOT_3_DIGIT_6 2 +# elif MSGPACK_PP_SLOT_TEMP_6 == 3 +# define MSGPACK_PP_SLOT_3_DIGIT_6 3 +# elif MSGPACK_PP_SLOT_TEMP_6 == 4 +# define MSGPACK_PP_SLOT_3_DIGIT_6 4 +# elif MSGPACK_PP_SLOT_TEMP_6 == 5 +# define MSGPACK_PP_SLOT_3_DIGIT_6 5 +# elif MSGPACK_PP_SLOT_TEMP_6 == 6 +# define MSGPACK_PP_SLOT_3_DIGIT_6 6 +# elif MSGPACK_PP_SLOT_TEMP_6 == 7 +# define MSGPACK_PP_SLOT_3_DIGIT_6 7 +# elif MSGPACK_PP_SLOT_TEMP_6 == 8 +# define MSGPACK_PP_SLOT_3_DIGIT_6 8 +# elif MSGPACK_PP_SLOT_TEMP_6 == 9 +# define MSGPACK_PP_SLOT_3_DIGIT_6 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_5 == 0 +# define MSGPACK_PP_SLOT_3_DIGIT_5 0 +# elif MSGPACK_PP_SLOT_TEMP_5 == 1 +# define MSGPACK_PP_SLOT_3_DIGIT_5 1 +# elif MSGPACK_PP_SLOT_TEMP_5 == 2 +# define MSGPACK_PP_SLOT_3_DIGIT_5 2 +# elif MSGPACK_PP_SLOT_TEMP_5 == 3 +# define MSGPACK_PP_SLOT_3_DIGIT_5 3 +# elif MSGPACK_PP_SLOT_TEMP_5 == 4 +# define MSGPACK_PP_SLOT_3_DIGIT_5 4 +# elif MSGPACK_PP_SLOT_TEMP_5 == 5 +# define MSGPACK_PP_SLOT_3_DIGIT_5 5 +# elif MSGPACK_PP_SLOT_TEMP_5 == 6 +# define MSGPACK_PP_SLOT_3_DIGIT_5 6 +# elif MSGPACK_PP_SLOT_TEMP_5 == 7 +# define MSGPACK_PP_SLOT_3_DIGIT_5 7 +# elif MSGPACK_PP_SLOT_TEMP_5 == 8 +# define MSGPACK_PP_SLOT_3_DIGIT_5 8 +# elif MSGPACK_PP_SLOT_TEMP_5 == 9 +# define MSGPACK_PP_SLOT_3_DIGIT_5 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_4 == 0 +# define MSGPACK_PP_SLOT_3_DIGIT_4 0 +# elif MSGPACK_PP_SLOT_TEMP_4 == 1 +# define MSGPACK_PP_SLOT_3_DIGIT_4 1 +# elif MSGPACK_PP_SLOT_TEMP_4 == 2 +# define MSGPACK_PP_SLOT_3_DIGIT_4 2 +# elif MSGPACK_PP_SLOT_TEMP_4 == 3 +# define MSGPACK_PP_SLOT_3_DIGIT_4 3 +# elif MSGPACK_PP_SLOT_TEMP_4 == 4 +# define MSGPACK_PP_SLOT_3_DIGIT_4 4 +# elif MSGPACK_PP_SLOT_TEMP_4 == 5 +# define MSGPACK_PP_SLOT_3_DIGIT_4 5 +# elif MSGPACK_PP_SLOT_TEMP_4 == 6 +# define MSGPACK_PP_SLOT_3_DIGIT_4 6 +# elif MSGPACK_PP_SLOT_TEMP_4 == 7 +# define MSGPACK_PP_SLOT_3_DIGIT_4 7 +# elif MSGPACK_PP_SLOT_TEMP_4 == 8 +# define MSGPACK_PP_SLOT_3_DIGIT_4 8 +# elif MSGPACK_PP_SLOT_TEMP_4 == 9 +# define MSGPACK_PP_SLOT_3_DIGIT_4 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_SLOT_3_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_SLOT_3_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_SLOT_3_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_SLOT_3_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_SLOT_3_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_SLOT_3_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_SLOT_3_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_SLOT_3_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_SLOT_3_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_SLOT_3_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_SLOT_3_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_SLOT_3_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_SLOT_3_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_SLOT_3_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_SLOT_3_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_SLOT_3_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_SLOT_3_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_SLOT_3_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_SLOT_3_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_SLOT_3_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_SLOT_3_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_SLOT_3_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_SLOT_3_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_SLOT_3_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_SLOT_3_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_SLOT_3_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_SLOT_3_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_SLOT_3_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_SLOT_3_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_SLOT_3_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_SLOT_3_DIGIT_10 +# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_10(MSGPACK_PP_SLOT_3_DIGIT_10, MSGPACK_PP_SLOT_3_DIGIT_9, MSGPACK_PP_SLOT_3_DIGIT_8, MSGPACK_PP_SLOT_3_DIGIT_7, MSGPACK_PP_SLOT_3_DIGIT_6, MSGPACK_PP_SLOT_3_DIGIT_5, MSGPACK_PP_SLOT_3_DIGIT_4, MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1) +# elif MSGPACK_PP_SLOT_3_DIGIT_9 +# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_9(MSGPACK_PP_SLOT_3_DIGIT_9, MSGPACK_PP_SLOT_3_DIGIT_8, MSGPACK_PP_SLOT_3_DIGIT_7, MSGPACK_PP_SLOT_3_DIGIT_6, MSGPACK_PP_SLOT_3_DIGIT_5, MSGPACK_PP_SLOT_3_DIGIT_4, MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1) +# elif MSGPACK_PP_SLOT_3_DIGIT_8 +# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_8(MSGPACK_PP_SLOT_3_DIGIT_8, MSGPACK_PP_SLOT_3_DIGIT_7, MSGPACK_PP_SLOT_3_DIGIT_6, MSGPACK_PP_SLOT_3_DIGIT_5, MSGPACK_PP_SLOT_3_DIGIT_4, MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1) +# elif MSGPACK_PP_SLOT_3_DIGIT_7 +# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_7(MSGPACK_PP_SLOT_3_DIGIT_7, MSGPACK_PP_SLOT_3_DIGIT_6, MSGPACK_PP_SLOT_3_DIGIT_5, MSGPACK_PP_SLOT_3_DIGIT_4, MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1) +# elif MSGPACK_PP_SLOT_3_DIGIT_6 +# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_6(MSGPACK_PP_SLOT_3_DIGIT_6, MSGPACK_PP_SLOT_3_DIGIT_5, MSGPACK_PP_SLOT_3_DIGIT_4, MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1) +# elif MSGPACK_PP_SLOT_3_DIGIT_5 +# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_5(MSGPACK_PP_SLOT_3_DIGIT_5, MSGPACK_PP_SLOT_3_DIGIT_4, MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1) +# elif MSGPACK_PP_SLOT_3_DIGIT_4 +# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_4(MSGPACK_PP_SLOT_3_DIGIT_4, MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1) +# elif MSGPACK_PP_SLOT_3_DIGIT_3 +# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1) +# elif MSGPACK_PP_SLOT_3_DIGIT_2 +# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1) +# else +# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_3_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot4.hpp b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot4.hpp new file mode 100644 index 000000000000..f903b5d087d7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot4.hpp @@ -0,0 +1,267 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_SLOT_4 +# +# undef MSGPACK_PP_SLOT_4_DIGIT_1 +# undef MSGPACK_PP_SLOT_4_DIGIT_2 +# undef MSGPACK_PP_SLOT_4_DIGIT_3 +# undef MSGPACK_PP_SLOT_4_DIGIT_4 +# undef MSGPACK_PP_SLOT_4_DIGIT_5 +# undef MSGPACK_PP_SLOT_4_DIGIT_6 +# undef MSGPACK_PP_SLOT_4_DIGIT_7 +# undef MSGPACK_PP_SLOT_4_DIGIT_8 +# undef MSGPACK_PP_SLOT_4_DIGIT_9 +# undef MSGPACK_PP_SLOT_4_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_10 == 0 +# define MSGPACK_PP_SLOT_4_DIGIT_10 0 +# elif MSGPACK_PP_SLOT_TEMP_10 == 1 +# define MSGPACK_PP_SLOT_4_DIGIT_10 1 +# elif MSGPACK_PP_SLOT_TEMP_10 == 2 +# define MSGPACK_PP_SLOT_4_DIGIT_10 2 +# elif MSGPACK_PP_SLOT_TEMP_10 == 3 +# define MSGPACK_PP_SLOT_4_DIGIT_10 3 +# elif MSGPACK_PP_SLOT_TEMP_10 == 4 +# define MSGPACK_PP_SLOT_4_DIGIT_10 4 +# elif MSGPACK_PP_SLOT_TEMP_10 == 5 +# define MSGPACK_PP_SLOT_4_DIGIT_10 5 +# elif MSGPACK_PP_SLOT_TEMP_10 == 6 +# define MSGPACK_PP_SLOT_4_DIGIT_10 6 +# elif MSGPACK_PP_SLOT_TEMP_10 == 7 +# define MSGPACK_PP_SLOT_4_DIGIT_10 7 +# elif MSGPACK_PP_SLOT_TEMP_10 == 8 +# define MSGPACK_PP_SLOT_4_DIGIT_10 8 +# elif MSGPACK_PP_SLOT_TEMP_10 == 9 +# define MSGPACK_PP_SLOT_4_DIGIT_10 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_9 == 0 +# define MSGPACK_PP_SLOT_4_DIGIT_9 0 +# elif MSGPACK_PP_SLOT_TEMP_9 == 1 +# define MSGPACK_PP_SLOT_4_DIGIT_9 1 +# elif MSGPACK_PP_SLOT_TEMP_9 == 2 +# define MSGPACK_PP_SLOT_4_DIGIT_9 2 +# elif MSGPACK_PP_SLOT_TEMP_9 == 3 +# define MSGPACK_PP_SLOT_4_DIGIT_9 3 +# elif MSGPACK_PP_SLOT_TEMP_9 == 4 +# define MSGPACK_PP_SLOT_4_DIGIT_9 4 +# elif MSGPACK_PP_SLOT_TEMP_9 == 5 +# define MSGPACK_PP_SLOT_4_DIGIT_9 5 +# elif MSGPACK_PP_SLOT_TEMP_9 == 6 +# define MSGPACK_PP_SLOT_4_DIGIT_9 6 +# elif MSGPACK_PP_SLOT_TEMP_9 == 7 +# define MSGPACK_PP_SLOT_4_DIGIT_9 7 +# elif MSGPACK_PP_SLOT_TEMP_9 == 8 +# define MSGPACK_PP_SLOT_4_DIGIT_9 8 +# elif MSGPACK_PP_SLOT_TEMP_9 == 9 +# define MSGPACK_PP_SLOT_4_DIGIT_9 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_8 == 0 +# define MSGPACK_PP_SLOT_4_DIGIT_8 0 +# elif MSGPACK_PP_SLOT_TEMP_8 == 1 +# define MSGPACK_PP_SLOT_4_DIGIT_8 1 +# elif MSGPACK_PP_SLOT_TEMP_8 == 2 +# define MSGPACK_PP_SLOT_4_DIGIT_8 2 +# elif MSGPACK_PP_SLOT_TEMP_8 == 3 +# define MSGPACK_PP_SLOT_4_DIGIT_8 3 +# elif MSGPACK_PP_SLOT_TEMP_8 == 4 +# define MSGPACK_PP_SLOT_4_DIGIT_8 4 +# elif MSGPACK_PP_SLOT_TEMP_8 == 5 +# define MSGPACK_PP_SLOT_4_DIGIT_8 5 +# elif MSGPACK_PP_SLOT_TEMP_8 == 6 +# define MSGPACK_PP_SLOT_4_DIGIT_8 6 +# elif MSGPACK_PP_SLOT_TEMP_8 == 7 +# define MSGPACK_PP_SLOT_4_DIGIT_8 7 +# elif MSGPACK_PP_SLOT_TEMP_8 == 8 +# define MSGPACK_PP_SLOT_4_DIGIT_8 8 +# elif MSGPACK_PP_SLOT_TEMP_8 == 9 +# define MSGPACK_PP_SLOT_4_DIGIT_8 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_7 == 0 +# define MSGPACK_PP_SLOT_4_DIGIT_7 0 +# elif MSGPACK_PP_SLOT_TEMP_7 == 1 +# define MSGPACK_PP_SLOT_4_DIGIT_7 1 +# elif MSGPACK_PP_SLOT_TEMP_7 == 2 +# define MSGPACK_PP_SLOT_4_DIGIT_7 2 +# elif MSGPACK_PP_SLOT_TEMP_7 == 3 +# define MSGPACK_PP_SLOT_4_DIGIT_7 3 +# elif MSGPACK_PP_SLOT_TEMP_7 == 4 +# define MSGPACK_PP_SLOT_4_DIGIT_7 4 +# elif MSGPACK_PP_SLOT_TEMP_7 == 5 +# define MSGPACK_PP_SLOT_4_DIGIT_7 5 +# elif MSGPACK_PP_SLOT_TEMP_7 == 6 +# define MSGPACK_PP_SLOT_4_DIGIT_7 6 +# elif MSGPACK_PP_SLOT_TEMP_7 == 7 +# define MSGPACK_PP_SLOT_4_DIGIT_7 7 +# elif MSGPACK_PP_SLOT_TEMP_7 == 8 +# define MSGPACK_PP_SLOT_4_DIGIT_7 8 +# elif MSGPACK_PP_SLOT_TEMP_7 == 9 +# define MSGPACK_PP_SLOT_4_DIGIT_7 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_6 == 0 +# define MSGPACK_PP_SLOT_4_DIGIT_6 0 +# elif MSGPACK_PP_SLOT_TEMP_6 == 1 +# define MSGPACK_PP_SLOT_4_DIGIT_6 1 +# elif MSGPACK_PP_SLOT_TEMP_6 == 2 +# define MSGPACK_PP_SLOT_4_DIGIT_6 2 +# elif MSGPACK_PP_SLOT_TEMP_6 == 3 +# define MSGPACK_PP_SLOT_4_DIGIT_6 3 +# elif MSGPACK_PP_SLOT_TEMP_6 == 4 +# define MSGPACK_PP_SLOT_4_DIGIT_6 4 +# elif MSGPACK_PP_SLOT_TEMP_6 == 5 +# define MSGPACK_PP_SLOT_4_DIGIT_6 5 +# elif MSGPACK_PP_SLOT_TEMP_6 == 6 +# define MSGPACK_PP_SLOT_4_DIGIT_6 6 +# elif MSGPACK_PP_SLOT_TEMP_6 == 7 +# define MSGPACK_PP_SLOT_4_DIGIT_6 7 +# elif MSGPACK_PP_SLOT_TEMP_6 == 8 +# define MSGPACK_PP_SLOT_4_DIGIT_6 8 +# elif MSGPACK_PP_SLOT_TEMP_6 == 9 +# define MSGPACK_PP_SLOT_4_DIGIT_6 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_5 == 0 +# define MSGPACK_PP_SLOT_4_DIGIT_5 0 +# elif MSGPACK_PP_SLOT_TEMP_5 == 1 +# define MSGPACK_PP_SLOT_4_DIGIT_5 1 +# elif MSGPACK_PP_SLOT_TEMP_5 == 2 +# define MSGPACK_PP_SLOT_4_DIGIT_5 2 +# elif MSGPACK_PP_SLOT_TEMP_5 == 3 +# define MSGPACK_PP_SLOT_4_DIGIT_5 3 +# elif MSGPACK_PP_SLOT_TEMP_5 == 4 +# define MSGPACK_PP_SLOT_4_DIGIT_5 4 +# elif MSGPACK_PP_SLOT_TEMP_5 == 5 +# define MSGPACK_PP_SLOT_4_DIGIT_5 5 +# elif MSGPACK_PP_SLOT_TEMP_5 == 6 +# define MSGPACK_PP_SLOT_4_DIGIT_5 6 +# elif MSGPACK_PP_SLOT_TEMP_5 == 7 +# define MSGPACK_PP_SLOT_4_DIGIT_5 7 +# elif MSGPACK_PP_SLOT_TEMP_5 == 8 +# define MSGPACK_PP_SLOT_4_DIGIT_5 8 +# elif MSGPACK_PP_SLOT_TEMP_5 == 9 +# define MSGPACK_PP_SLOT_4_DIGIT_5 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_4 == 0 +# define MSGPACK_PP_SLOT_4_DIGIT_4 0 +# elif MSGPACK_PP_SLOT_TEMP_4 == 1 +# define MSGPACK_PP_SLOT_4_DIGIT_4 1 +# elif MSGPACK_PP_SLOT_TEMP_4 == 2 +# define MSGPACK_PP_SLOT_4_DIGIT_4 2 +# elif MSGPACK_PP_SLOT_TEMP_4 == 3 +# define MSGPACK_PP_SLOT_4_DIGIT_4 3 +# elif MSGPACK_PP_SLOT_TEMP_4 == 4 +# define MSGPACK_PP_SLOT_4_DIGIT_4 4 +# elif MSGPACK_PP_SLOT_TEMP_4 == 5 +# define MSGPACK_PP_SLOT_4_DIGIT_4 5 +# elif MSGPACK_PP_SLOT_TEMP_4 == 6 +# define MSGPACK_PP_SLOT_4_DIGIT_4 6 +# elif MSGPACK_PP_SLOT_TEMP_4 == 7 +# define MSGPACK_PP_SLOT_4_DIGIT_4 7 +# elif MSGPACK_PP_SLOT_TEMP_4 == 8 +# define MSGPACK_PP_SLOT_4_DIGIT_4 8 +# elif MSGPACK_PP_SLOT_TEMP_4 == 9 +# define MSGPACK_PP_SLOT_4_DIGIT_4 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_SLOT_4_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_SLOT_4_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_SLOT_4_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_SLOT_4_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_SLOT_4_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_SLOT_4_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_SLOT_4_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_SLOT_4_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_SLOT_4_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_SLOT_4_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_SLOT_4_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_SLOT_4_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_SLOT_4_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_SLOT_4_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_SLOT_4_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_SLOT_4_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_SLOT_4_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_SLOT_4_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_SLOT_4_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_SLOT_4_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_SLOT_4_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_SLOT_4_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_SLOT_4_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_SLOT_4_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_SLOT_4_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_SLOT_4_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_SLOT_4_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_SLOT_4_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_SLOT_4_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_SLOT_4_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_SLOT_4_DIGIT_10 +# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_10(MSGPACK_PP_SLOT_4_DIGIT_10, MSGPACK_PP_SLOT_4_DIGIT_9, MSGPACK_PP_SLOT_4_DIGIT_8, MSGPACK_PP_SLOT_4_DIGIT_7, MSGPACK_PP_SLOT_4_DIGIT_6, MSGPACK_PP_SLOT_4_DIGIT_5, MSGPACK_PP_SLOT_4_DIGIT_4, MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1) +# elif MSGPACK_PP_SLOT_4_DIGIT_9 +# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_9(MSGPACK_PP_SLOT_4_DIGIT_9, MSGPACK_PP_SLOT_4_DIGIT_8, MSGPACK_PP_SLOT_4_DIGIT_7, MSGPACK_PP_SLOT_4_DIGIT_6, MSGPACK_PP_SLOT_4_DIGIT_5, MSGPACK_PP_SLOT_4_DIGIT_4, MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1) +# elif MSGPACK_PP_SLOT_4_DIGIT_8 +# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_8(MSGPACK_PP_SLOT_4_DIGIT_8, MSGPACK_PP_SLOT_4_DIGIT_7, MSGPACK_PP_SLOT_4_DIGIT_6, MSGPACK_PP_SLOT_4_DIGIT_5, MSGPACK_PP_SLOT_4_DIGIT_4, MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1) +# elif MSGPACK_PP_SLOT_4_DIGIT_7 +# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_7(MSGPACK_PP_SLOT_4_DIGIT_7, MSGPACK_PP_SLOT_4_DIGIT_6, MSGPACK_PP_SLOT_4_DIGIT_5, MSGPACK_PP_SLOT_4_DIGIT_4, MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1) +# elif MSGPACK_PP_SLOT_4_DIGIT_6 +# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_6(MSGPACK_PP_SLOT_4_DIGIT_6, MSGPACK_PP_SLOT_4_DIGIT_5, MSGPACK_PP_SLOT_4_DIGIT_4, MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1) +# elif MSGPACK_PP_SLOT_4_DIGIT_5 +# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_5(MSGPACK_PP_SLOT_4_DIGIT_5, MSGPACK_PP_SLOT_4_DIGIT_4, MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1) +# elif MSGPACK_PP_SLOT_4_DIGIT_4 +# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_4(MSGPACK_PP_SLOT_4_DIGIT_4, MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1) +# elif MSGPACK_PP_SLOT_4_DIGIT_3 +# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1) +# elif MSGPACK_PP_SLOT_4_DIGIT_2 +# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1) +# else +# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_4_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot5.hpp b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot5.hpp new file mode 100644 index 000000000000..dac2cee450b7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/slot/detail/slot5.hpp @@ -0,0 +1,267 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# undef MSGPACK_PP_SLOT_5 +# +# undef MSGPACK_PP_SLOT_5_DIGIT_1 +# undef MSGPACK_PP_SLOT_5_DIGIT_2 +# undef MSGPACK_PP_SLOT_5_DIGIT_3 +# undef MSGPACK_PP_SLOT_5_DIGIT_4 +# undef MSGPACK_PP_SLOT_5_DIGIT_5 +# undef MSGPACK_PP_SLOT_5_DIGIT_6 +# undef MSGPACK_PP_SLOT_5_DIGIT_7 +# undef MSGPACK_PP_SLOT_5_DIGIT_8 +# undef MSGPACK_PP_SLOT_5_DIGIT_9 +# undef MSGPACK_PP_SLOT_5_DIGIT_10 +# +# if MSGPACK_PP_SLOT_TEMP_10 == 0 +# define MSGPACK_PP_SLOT_5_DIGIT_10 0 +# elif MSGPACK_PP_SLOT_TEMP_10 == 1 +# define MSGPACK_PP_SLOT_5_DIGIT_10 1 +# elif MSGPACK_PP_SLOT_TEMP_10 == 2 +# define MSGPACK_PP_SLOT_5_DIGIT_10 2 +# elif MSGPACK_PP_SLOT_TEMP_10 == 3 +# define MSGPACK_PP_SLOT_5_DIGIT_10 3 +# elif MSGPACK_PP_SLOT_TEMP_10 == 4 +# define MSGPACK_PP_SLOT_5_DIGIT_10 4 +# elif MSGPACK_PP_SLOT_TEMP_10 == 5 +# define MSGPACK_PP_SLOT_5_DIGIT_10 5 +# elif MSGPACK_PP_SLOT_TEMP_10 == 6 +# define MSGPACK_PP_SLOT_5_DIGIT_10 6 +# elif MSGPACK_PP_SLOT_TEMP_10 == 7 +# define MSGPACK_PP_SLOT_5_DIGIT_10 7 +# elif MSGPACK_PP_SLOT_TEMP_10 == 8 +# define MSGPACK_PP_SLOT_5_DIGIT_10 8 +# elif MSGPACK_PP_SLOT_TEMP_10 == 9 +# define MSGPACK_PP_SLOT_5_DIGIT_10 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_9 == 0 +# define MSGPACK_PP_SLOT_5_DIGIT_9 0 +# elif MSGPACK_PP_SLOT_TEMP_9 == 1 +# define MSGPACK_PP_SLOT_5_DIGIT_9 1 +# elif MSGPACK_PP_SLOT_TEMP_9 == 2 +# define MSGPACK_PP_SLOT_5_DIGIT_9 2 +# elif MSGPACK_PP_SLOT_TEMP_9 == 3 +# define MSGPACK_PP_SLOT_5_DIGIT_9 3 +# elif MSGPACK_PP_SLOT_TEMP_9 == 4 +# define MSGPACK_PP_SLOT_5_DIGIT_9 4 +# elif MSGPACK_PP_SLOT_TEMP_9 == 5 +# define MSGPACK_PP_SLOT_5_DIGIT_9 5 +# elif MSGPACK_PP_SLOT_TEMP_9 == 6 +# define MSGPACK_PP_SLOT_5_DIGIT_9 6 +# elif MSGPACK_PP_SLOT_TEMP_9 == 7 +# define MSGPACK_PP_SLOT_5_DIGIT_9 7 +# elif MSGPACK_PP_SLOT_TEMP_9 == 8 +# define MSGPACK_PP_SLOT_5_DIGIT_9 8 +# elif MSGPACK_PP_SLOT_TEMP_9 == 9 +# define MSGPACK_PP_SLOT_5_DIGIT_9 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_8 == 0 +# define MSGPACK_PP_SLOT_5_DIGIT_8 0 +# elif MSGPACK_PP_SLOT_TEMP_8 == 1 +# define MSGPACK_PP_SLOT_5_DIGIT_8 1 +# elif MSGPACK_PP_SLOT_TEMP_8 == 2 +# define MSGPACK_PP_SLOT_5_DIGIT_8 2 +# elif MSGPACK_PP_SLOT_TEMP_8 == 3 +# define MSGPACK_PP_SLOT_5_DIGIT_8 3 +# elif MSGPACK_PP_SLOT_TEMP_8 == 4 +# define MSGPACK_PP_SLOT_5_DIGIT_8 4 +# elif MSGPACK_PP_SLOT_TEMP_8 == 5 +# define MSGPACK_PP_SLOT_5_DIGIT_8 5 +# elif MSGPACK_PP_SLOT_TEMP_8 == 6 +# define MSGPACK_PP_SLOT_5_DIGIT_8 6 +# elif MSGPACK_PP_SLOT_TEMP_8 == 7 +# define MSGPACK_PP_SLOT_5_DIGIT_8 7 +# elif MSGPACK_PP_SLOT_TEMP_8 == 8 +# define MSGPACK_PP_SLOT_5_DIGIT_8 8 +# elif MSGPACK_PP_SLOT_TEMP_8 == 9 +# define MSGPACK_PP_SLOT_5_DIGIT_8 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_7 == 0 +# define MSGPACK_PP_SLOT_5_DIGIT_7 0 +# elif MSGPACK_PP_SLOT_TEMP_7 == 1 +# define MSGPACK_PP_SLOT_5_DIGIT_7 1 +# elif MSGPACK_PP_SLOT_TEMP_7 == 2 +# define MSGPACK_PP_SLOT_5_DIGIT_7 2 +# elif MSGPACK_PP_SLOT_TEMP_7 == 3 +# define MSGPACK_PP_SLOT_5_DIGIT_7 3 +# elif MSGPACK_PP_SLOT_TEMP_7 == 4 +# define MSGPACK_PP_SLOT_5_DIGIT_7 4 +# elif MSGPACK_PP_SLOT_TEMP_7 == 5 +# define MSGPACK_PP_SLOT_5_DIGIT_7 5 +# elif MSGPACK_PP_SLOT_TEMP_7 == 6 +# define MSGPACK_PP_SLOT_5_DIGIT_7 6 +# elif MSGPACK_PP_SLOT_TEMP_7 == 7 +# define MSGPACK_PP_SLOT_5_DIGIT_7 7 +# elif MSGPACK_PP_SLOT_TEMP_7 == 8 +# define MSGPACK_PP_SLOT_5_DIGIT_7 8 +# elif MSGPACK_PP_SLOT_TEMP_7 == 9 +# define MSGPACK_PP_SLOT_5_DIGIT_7 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_6 == 0 +# define MSGPACK_PP_SLOT_5_DIGIT_6 0 +# elif MSGPACK_PP_SLOT_TEMP_6 == 1 +# define MSGPACK_PP_SLOT_5_DIGIT_6 1 +# elif MSGPACK_PP_SLOT_TEMP_6 == 2 +# define MSGPACK_PP_SLOT_5_DIGIT_6 2 +# elif MSGPACK_PP_SLOT_TEMP_6 == 3 +# define MSGPACK_PP_SLOT_5_DIGIT_6 3 +# elif MSGPACK_PP_SLOT_TEMP_6 == 4 +# define MSGPACK_PP_SLOT_5_DIGIT_6 4 +# elif MSGPACK_PP_SLOT_TEMP_6 == 5 +# define MSGPACK_PP_SLOT_5_DIGIT_6 5 +# elif MSGPACK_PP_SLOT_TEMP_6 == 6 +# define MSGPACK_PP_SLOT_5_DIGIT_6 6 +# elif MSGPACK_PP_SLOT_TEMP_6 == 7 +# define MSGPACK_PP_SLOT_5_DIGIT_6 7 +# elif MSGPACK_PP_SLOT_TEMP_6 == 8 +# define MSGPACK_PP_SLOT_5_DIGIT_6 8 +# elif MSGPACK_PP_SLOT_TEMP_6 == 9 +# define MSGPACK_PP_SLOT_5_DIGIT_6 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_5 == 0 +# define MSGPACK_PP_SLOT_5_DIGIT_5 0 +# elif MSGPACK_PP_SLOT_TEMP_5 == 1 +# define MSGPACK_PP_SLOT_5_DIGIT_5 1 +# elif MSGPACK_PP_SLOT_TEMP_5 == 2 +# define MSGPACK_PP_SLOT_5_DIGIT_5 2 +# elif MSGPACK_PP_SLOT_TEMP_5 == 3 +# define MSGPACK_PP_SLOT_5_DIGIT_5 3 +# elif MSGPACK_PP_SLOT_TEMP_5 == 4 +# define MSGPACK_PP_SLOT_5_DIGIT_5 4 +# elif MSGPACK_PP_SLOT_TEMP_5 == 5 +# define MSGPACK_PP_SLOT_5_DIGIT_5 5 +# elif MSGPACK_PP_SLOT_TEMP_5 == 6 +# define MSGPACK_PP_SLOT_5_DIGIT_5 6 +# elif MSGPACK_PP_SLOT_TEMP_5 == 7 +# define MSGPACK_PP_SLOT_5_DIGIT_5 7 +# elif MSGPACK_PP_SLOT_TEMP_5 == 8 +# define MSGPACK_PP_SLOT_5_DIGIT_5 8 +# elif MSGPACK_PP_SLOT_TEMP_5 == 9 +# define MSGPACK_PP_SLOT_5_DIGIT_5 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_4 == 0 +# define MSGPACK_PP_SLOT_5_DIGIT_4 0 +# elif MSGPACK_PP_SLOT_TEMP_4 == 1 +# define MSGPACK_PP_SLOT_5_DIGIT_4 1 +# elif MSGPACK_PP_SLOT_TEMP_4 == 2 +# define MSGPACK_PP_SLOT_5_DIGIT_4 2 +# elif MSGPACK_PP_SLOT_TEMP_4 == 3 +# define MSGPACK_PP_SLOT_5_DIGIT_4 3 +# elif MSGPACK_PP_SLOT_TEMP_4 == 4 +# define MSGPACK_PP_SLOT_5_DIGIT_4 4 +# elif MSGPACK_PP_SLOT_TEMP_4 == 5 +# define MSGPACK_PP_SLOT_5_DIGIT_4 5 +# elif MSGPACK_PP_SLOT_TEMP_4 == 6 +# define MSGPACK_PP_SLOT_5_DIGIT_4 6 +# elif MSGPACK_PP_SLOT_TEMP_4 == 7 +# define MSGPACK_PP_SLOT_5_DIGIT_4 7 +# elif MSGPACK_PP_SLOT_TEMP_4 == 8 +# define MSGPACK_PP_SLOT_5_DIGIT_4 8 +# elif MSGPACK_PP_SLOT_TEMP_4 == 9 +# define MSGPACK_PP_SLOT_5_DIGIT_4 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_3 == 0 +# define MSGPACK_PP_SLOT_5_DIGIT_3 0 +# elif MSGPACK_PP_SLOT_TEMP_3 == 1 +# define MSGPACK_PP_SLOT_5_DIGIT_3 1 +# elif MSGPACK_PP_SLOT_TEMP_3 == 2 +# define MSGPACK_PP_SLOT_5_DIGIT_3 2 +# elif MSGPACK_PP_SLOT_TEMP_3 == 3 +# define MSGPACK_PP_SLOT_5_DIGIT_3 3 +# elif MSGPACK_PP_SLOT_TEMP_3 == 4 +# define MSGPACK_PP_SLOT_5_DIGIT_3 4 +# elif MSGPACK_PP_SLOT_TEMP_3 == 5 +# define MSGPACK_PP_SLOT_5_DIGIT_3 5 +# elif MSGPACK_PP_SLOT_TEMP_3 == 6 +# define MSGPACK_PP_SLOT_5_DIGIT_3 6 +# elif MSGPACK_PP_SLOT_TEMP_3 == 7 +# define MSGPACK_PP_SLOT_5_DIGIT_3 7 +# elif MSGPACK_PP_SLOT_TEMP_3 == 8 +# define MSGPACK_PP_SLOT_5_DIGIT_3 8 +# elif MSGPACK_PP_SLOT_TEMP_3 == 9 +# define MSGPACK_PP_SLOT_5_DIGIT_3 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_2 == 0 +# define MSGPACK_PP_SLOT_5_DIGIT_2 0 +# elif MSGPACK_PP_SLOT_TEMP_2 == 1 +# define MSGPACK_PP_SLOT_5_DIGIT_2 1 +# elif MSGPACK_PP_SLOT_TEMP_2 == 2 +# define MSGPACK_PP_SLOT_5_DIGIT_2 2 +# elif MSGPACK_PP_SLOT_TEMP_2 == 3 +# define MSGPACK_PP_SLOT_5_DIGIT_2 3 +# elif MSGPACK_PP_SLOT_TEMP_2 == 4 +# define MSGPACK_PP_SLOT_5_DIGIT_2 4 +# elif MSGPACK_PP_SLOT_TEMP_2 == 5 +# define MSGPACK_PP_SLOT_5_DIGIT_2 5 +# elif MSGPACK_PP_SLOT_TEMP_2 == 6 +# define MSGPACK_PP_SLOT_5_DIGIT_2 6 +# elif MSGPACK_PP_SLOT_TEMP_2 == 7 +# define MSGPACK_PP_SLOT_5_DIGIT_2 7 +# elif MSGPACK_PP_SLOT_TEMP_2 == 8 +# define MSGPACK_PP_SLOT_5_DIGIT_2 8 +# elif MSGPACK_PP_SLOT_TEMP_2 == 9 +# define MSGPACK_PP_SLOT_5_DIGIT_2 9 +# endif +# +# if MSGPACK_PP_SLOT_TEMP_1 == 0 +# define MSGPACK_PP_SLOT_5_DIGIT_1 0 +# elif MSGPACK_PP_SLOT_TEMP_1 == 1 +# define MSGPACK_PP_SLOT_5_DIGIT_1 1 +# elif MSGPACK_PP_SLOT_TEMP_1 == 2 +# define MSGPACK_PP_SLOT_5_DIGIT_1 2 +# elif MSGPACK_PP_SLOT_TEMP_1 == 3 +# define MSGPACK_PP_SLOT_5_DIGIT_1 3 +# elif MSGPACK_PP_SLOT_TEMP_1 == 4 +# define MSGPACK_PP_SLOT_5_DIGIT_1 4 +# elif MSGPACK_PP_SLOT_TEMP_1 == 5 +# define MSGPACK_PP_SLOT_5_DIGIT_1 5 +# elif MSGPACK_PP_SLOT_TEMP_1 == 6 +# define MSGPACK_PP_SLOT_5_DIGIT_1 6 +# elif MSGPACK_PP_SLOT_TEMP_1 == 7 +# define MSGPACK_PP_SLOT_5_DIGIT_1 7 +# elif MSGPACK_PP_SLOT_TEMP_1 == 8 +# define MSGPACK_PP_SLOT_5_DIGIT_1 8 +# elif MSGPACK_PP_SLOT_TEMP_1 == 9 +# define MSGPACK_PP_SLOT_5_DIGIT_1 9 +# endif +# +# if MSGPACK_PP_SLOT_5_DIGIT_10 +# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_10(MSGPACK_PP_SLOT_5_DIGIT_10, MSGPACK_PP_SLOT_5_DIGIT_9, MSGPACK_PP_SLOT_5_DIGIT_8, MSGPACK_PP_SLOT_5_DIGIT_7, MSGPACK_PP_SLOT_5_DIGIT_6, MSGPACK_PP_SLOT_5_DIGIT_5, MSGPACK_PP_SLOT_5_DIGIT_4, MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1) +# elif MSGPACK_PP_SLOT_5_DIGIT_9 +# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_9(MSGPACK_PP_SLOT_5_DIGIT_9, MSGPACK_PP_SLOT_5_DIGIT_8, MSGPACK_PP_SLOT_5_DIGIT_7, MSGPACK_PP_SLOT_5_DIGIT_6, MSGPACK_PP_SLOT_5_DIGIT_5, MSGPACK_PP_SLOT_5_DIGIT_4, MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1) +# elif MSGPACK_PP_SLOT_5_DIGIT_8 +# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_8(MSGPACK_PP_SLOT_5_DIGIT_8, MSGPACK_PP_SLOT_5_DIGIT_7, MSGPACK_PP_SLOT_5_DIGIT_6, MSGPACK_PP_SLOT_5_DIGIT_5, MSGPACK_PP_SLOT_5_DIGIT_4, MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1) +# elif MSGPACK_PP_SLOT_5_DIGIT_7 +# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_7(MSGPACK_PP_SLOT_5_DIGIT_7, MSGPACK_PP_SLOT_5_DIGIT_6, MSGPACK_PP_SLOT_5_DIGIT_5, MSGPACK_PP_SLOT_5_DIGIT_4, MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1) +# elif MSGPACK_PP_SLOT_5_DIGIT_6 +# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_6(MSGPACK_PP_SLOT_5_DIGIT_6, MSGPACK_PP_SLOT_5_DIGIT_5, MSGPACK_PP_SLOT_5_DIGIT_4, MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1) +# elif MSGPACK_PP_SLOT_5_DIGIT_5 +# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_5(MSGPACK_PP_SLOT_5_DIGIT_5, MSGPACK_PP_SLOT_5_DIGIT_4, MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1) +# elif MSGPACK_PP_SLOT_5_DIGIT_4 +# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_4(MSGPACK_PP_SLOT_5_DIGIT_4, MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1) +# elif MSGPACK_PP_SLOT_5_DIGIT_3 +# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1) +# elif MSGPACK_PP_SLOT_5_DIGIT_2 +# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1) +# else +# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_5_DIGIT_1 +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/slot/slot.hpp b/third_party/msgpack/include/msgpack/preprocessor/slot/slot.hpp new file mode 100644 index 000000000000..8732fc8c9803 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/slot/slot.hpp @@ -0,0 +1,32 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_SLOT_SLOT_HPP +# define MSGPACK_PREPROCESSOR_SLOT_SLOT_HPP +# +# include +# include +# +# /* MSGPACK_PP_ASSIGN_SLOT */ +# +# define MSGPACK_PP_ASSIGN_SLOT(i) MSGPACK_PP_CAT(MSGPACK_PP_ASSIGN_SLOT_, i) +# +# define MSGPACK_PP_ASSIGN_SLOT_1 +# define MSGPACK_PP_ASSIGN_SLOT_2 +# define MSGPACK_PP_ASSIGN_SLOT_3 +# define MSGPACK_PP_ASSIGN_SLOT_4 +# define MSGPACK_PP_ASSIGN_SLOT_5 +# +# /* MSGPACK_PP_SLOT */ +# +# define MSGPACK_PP_SLOT(i) MSGPACK_PP_CAT(MSGPACK_PP_SLOT_, i)() +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/stringize.hpp b/third_party/msgpack/include/msgpack/preprocessor/stringize.hpp new file mode 100644 index 000000000000..34657a82a709 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/stringize.hpp @@ -0,0 +1,33 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_STRINGIZE_HPP +# define MSGPACK_PREPROCESSOR_STRINGIZE_HPP +# +# include +# +# /* MSGPACK_PP_STRINGIZE */ +# +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_STRINGIZE(text) MSGPACK_PP_STRINGIZE_A((text)) +# define MSGPACK_PP_STRINGIZE_A(arg) MSGPACK_PP_STRINGIZE_I arg +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_STRINGIZE(text) MSGPACK_PP_STRINGIZE_OO((text)) +# define MSGPACK_PP_STRINGIZE_OO(par) MSGPACK_PP_STRINGIZE_I ## par +# else +# define MSGPACK_PP_STRINGIZE(text) MSGPACK_PP_STRINGIZE_I(text) +# endif +# +# define MSGPACK_PP_STRINGIZE_I(text) #text +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple.hpp new file mode 100644 index 000000000000..d9bf9f7411d8 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple.hpp @@ -0,0 +1,35 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# /* Revised by Edward Diener (2011,2013) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_HPP +# +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/detail/is_single_return.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/detail/is_single_return.hpp new file mode 100644 index 000000000000..1d7e2697dc16 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/detail/is_single_return.hpp @@ -0,0 +1,28 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2014. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_DETAIL_IS_SINGLE_RETURN_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_DETAIL_IS_SINGLE_RETURN_HPP +# +# include +# +# /* MSGPACK_PP_TUPLE_IS_SINGLE_RETURN */ +# +# if MSGPACK_PP_VARIADICS && MSGPACK_PP_VARIADICS_MSVC +# include +# include +# include +# define MSGPACK_PP_TUPLE_IS_SINGLE_RETURN(sr,nsr,tuple) \ + MSGPACK_PP_IIF(MSGPACK_PP_IS_1(MSGPACK_PP_TUPLE_SIZE(tuple)),sr,nsr) \ + /**/ +# endif /* MSGPACK_PP_VARIADICS && MSGPACK_PP_VARIADICS_MSVC */ +# +# endif /* MSGPACK_PREPROCESSOR_TUPLE_DETAIL_IS_SINGLE_RETURN_HPP */ diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/eat.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/eat.hpp new file mode 100644 index 000000000000..877dd3c08609 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/eat.hpp @@ -0,0 +1,115 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002-2011) */ +# /* Revised by Edward Diener (2011,2015) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_EAT_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_EAT_HPP +# +# include +# +# /* MSGPACK_PP_EAT */ +# +# if MSGPACK_PP_VARIADICS +# define MSGPACK_PP_EAT(...) +# else +# define MSGPACK_PP_EAT(x) +# endif +# +# /* MSGPACK_PP_TUPLE_EAT */ +# +# if MSGPACK_PP_VARIADICS +# define MSGPACK_PP_TUPLE_EAT(size) MSGPACK_PP_EAT +# else +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_TUPLE_EAT(size) MSGPACK_PP_TUPLE_EAT_I(size) +# else +# define MSGPACK_PP_TUPLE_EAT(size) MSGPACK_PP_TUPLE_EAT_OO((size)) +# define MSGPACK_PP_TUPLE_EAT_OO(par) MSGPACK_PP_TUPLE_EAT_I ## par +# endif +# define MSGPACK_PP_TUPLE_EAT_I(size) MSGPACK_PP_TUPLE_EAT_ ## size +# endif +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_TUPLE_EAT_N(size) MSGPACK_PP_TUPLE_EAT_N_I(size) +# else +# define MSGPACK_PP_TUPLE_EAT_N(size) MSGPACK_PP_TUPLE_EAT_N_OO((size)) +# define MSGPACK_PP_TUPLE_EAT_N_OO(par) MSGPACK_PP_TUPLE_EAT_N_I ## par +# endif +# define MSGPACK_PP_TUPLE_EAT_N_I(size) MSGPACK_PP_TUPLE_EAT_ ## size +# +# define MSGPACK_PP_TUPLE_EAT_1(e0) +# define MSGPACK_PP_TUPLE_EAT_2(e0, e1) +# define MSGPACK_PP_TUPLE_EAT_3(e0, e1, e2) +# define MSGPACK_PP_TUPLE_EAT_4(e0, e1, e2, e3) +# define MSGPACK_PP_TUPLE_EAT_5(e0, e1, e2, e3, e4) +# define MSGPACK_PP_TUPLE_EAT_6(e0, e1, e2, e3, e4, e5) +# define MSGPACK_PP_TUPLE_EAT_7(e0, e1, e2, e3, e4, e5, e6) +# define MSGPACK_PP_TUPLE_EAT_8(e0, e1, e2, e3, e4, e5, e6, e7) +# define MSGPACK_PP_TUPLE_EAT_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) +# define MSGPACK_PP_TUPLE_EAT_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) +# define MSGPACK_PP_TUPLE_EAT_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) +# define MSGPACK_PP_TUPLE_EAT_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) +# define MSGPACK_PP_TUPLE_EAT_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) +# define MSGPACK_PP_TUPLE_EAT_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) +# define MSGPACK_PP_TUPLE_EAT_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) +# define MSGPACK_PP_TUPLE_EAT_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) +# define MSGPACK_PP_TUPLE_EAT_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) +# define MSGPACK_PP_TUPLE_EAT_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) +# define MSGPACK_PP_TUPLE_EAT_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) +# define MSGPACK_PP_TUPLE_EAT_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) +# define MSGPACK_PP_TUPLE_EAT_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) +# define MSGPACK_PP_TUPLE_EAT_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) +# define MSGPACK_PP_TUPLE_EAT_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) +# define MSGPACK_PP_TUPLE_EAT_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) +# define MSGPACK_PP_TUPLE_EAT_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) +# define MSGPACK_PP_TUPLE_EAT_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) +# define MSGPACK_PP_TUPLE_EAT_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) +# define MSGPACK_PP_TUPLE_EAT_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) +# define MSGPACK_PP_TUPLE_EAT_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) +# define MSGPACK_PP_TUPLE_EAT_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) +# define MSGPACK_PP_TUPLE_EAT_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) +# define MSGPACK_PP_TUPLE_EAT_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) +# define MSGPACK_PP_TUPLE_EAT_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) +# define MSGPACK_PP_TUPLE_EAT_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) +# define MSGPACK_PP_TUPLE_EAT_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) +# define MSGPACK_PP_TUPLE_EAT_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) +# define MSGPACK_PP_TUPLE_EAT_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) +# define MSGPACK_PP_TUPLE_EAT_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) +# define MSGPACK_PP_TUPLE_EAT_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) +# define MSGPACK_PP_TUPLE_EAT_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) +# define MSGPACK_PP_TUPLE_EAT_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) +# define MSGPACK_PP_TUPLE_EAT_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) +# define MSGPACK_PP_TUPLE_EAT_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) +# define MSGPACK_PP_TUPLE_EAT_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) +# define MSGPACK_PP_TUPLE_EAT_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) +# define MSGPACK_PP_TUPLE_EAT_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) +# define MSGPACK_PP_TUPLE_EAT_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) +# define MSGPACK_PP_TUPLE_EAT_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) +# define MSGPACK_PP_TUPLE_EAT_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) +# define MSGPACK_PP_TUPLE_EAT_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) +# define MSGPACK_PP_TUPLE_EAT_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) +# define MSGPACK_PP_TUPLE_EAT_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) +# define MSGPACK_PP_TUPLE_EAT_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) +# define MSGPACK_PP_TUPLE_EAT_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) +# define MSGPACK_PP_TUPLE_EAT_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) +# define MSGPACK_PP_TUPLE_EAT_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) +# define MSGPACK_PP_TUPLE_EAT_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) +# define MSGPACK_PP_TUPLE_EAT_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) +# define MSGPACK_PP_TUPLE_EAT_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) +# define MSGPACK_PP_TUPLE_EAT_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) +# define MSGPACK_PP_TUPLE_EAT_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) +# define MSGPACK_PP_TUPLE_EAT_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) +# define MSGPACK_PP_TUPLE_EAT_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) +# define MSGPACK_PP_TUPLE_EAT_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/elem.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/elem.hpp new file mode 100644 index 000000000000..965cea4ea0a4 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/elem.hpp @@ -0,0 +1,201 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002-2011) */ +# /* Revised by Edward Diener (2011,2014) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_ELEM_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_ELEM_HPP +# +# include +# include +# include +# include +# include +# include +# include +# +# if MSGPACK_PP_VARIADICS +# if MSGPACK_PP_VARIADICS_MSVC +# define MSGPACK_PP_TUPLE_ELEM(...) MSGPACK_PP_TUPLE_ELEM_I(MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_ELEM_O_, __VA_ARGS__), (__VA_ARGS__)) +# define MSGPACK_PP_TUPLE_ELEM_I(m, args) MSGPACK_PP_TUPLE_ELEM_II(m, args) +# define MSGPACK_PP_TUPLE_ELEM_II(m, args) MSGPACK_PP_CAT(m ## args,) +/* + Use MSGPACK_PP_REM_CAT if it is a single element tuple ( which might be empty ) + else use MSGPACK_PP_REM. This fixes a VC++ problem with an empty tuple and MSGPACK_PP_TUPLE_ELEM + functionality. See tuple_elem_bug_test.cxx. +*/ +# define MSGPACK_PP_TUPLE_ELEM_O_2(n, tuple) \ + MSGPACK_PP_VARIADIC_ELEM(n, MSGPACK_PP_EXPAND(MSGPACK_PP_TUPLE_IS_SINGLE_RETURN(MSGPACK_PP_REM_CAT,MSGPACK_PP_REM,tuple) tuple)) \ + /**/ +# else +# define MSGPACK_PP_TUPLE_ELEM(...) MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_ELEM_O_, __VA_ARGS__)(__VA_ARGS__) +# define MSGPACK_PP_TUPLE_ELEM_O_2(n, tuple) MSGPACK_PP_VARIADIC_ELEM(n, MSGPACK_PP_REM tuple) +# endif +# define MSGPACK_PP_TUPLE_ELEM_O_3(size, n, tuple) MSGPACK_PP_TUPLE_ELEM_O_2(n, tuple) +# else +# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_TUPLE_ELEM(size, n, tuple) MSGPACK_PP_TUPLE_ELEM_I(MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_ELEM_, n), MSGPACK_PP_CAT(MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_ELEM_E_, size), tuple)) +# define MSGPACK_PP_TUPLE_ELEM_I(m, args) MSGPACK_PP_TUPLE_ELEM_II(m, args) +# define MSGPACK_PP_TUPLE_ELEM_II(m, args) MSGPACK_PP_CAT(m ## args,) +# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_TUPLE_ELEM(size, n, tuple) MSGPACK_PP_TUPLE_ELEM_I_OO((size, n, tuple)) +# define MSGPACK_PP_TUPLE_ELEM_I_OO(par) MSGPACK_PP_TUPLE_ELEM_I ## par +# define MSGPACK_PP_TUPLE_ELEM_I(size, n, tuple) MSGPACK_PP_TUPLE_ELEM_II((n, MSGPACK_PP_TUPLE_ELEM_E_ ## size ## tuple)) +# define MSGPACK_PP_TUPLE_ELEM_II(par) MSGPACK_PP_TUPLE_ELEM_III_OO(par) +# define MSGPACK_PP_TUPLE_ELEM_III_OO(par) MSGPACK_PP_TUPLE_ELEM_III ## par +# define MSGPACK_PP_TUPLE_ELEM_III(n, etuple) MSGPACK_PP_TUPLE_ELEM_ ## n ## etuple +# else +# define MSGPACK_PP_TUPLE_ELEM(size, n, tuple) MSGPACK_PP_TUPLE_ELEM_I(MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_ELEM_, n) MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_ELEM_E_, size) tuple) +# define MSGPACK_PP_TUPLE_ELEM_I(x) x +# endif +# define MSGPACK_PP_TUPLE_ELEM_E_1(e0) (e0, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_2(e0, e1) (e0, e1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_3(e0, e1, e2) (e0, e1, e2, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_4(e0, e1, e2, e3) (e0, e1, e2, e3, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_5(e0, e1, e2, e3, e4) (e0, e1, e2, e3, e4, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_6(e0, e1, e2, e3, e4, e5) (e0, e1, e2, e3, e4, e5, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_7(e0, e1, e2, e3, e4, e5, e6) (e0, e1, e2, e3, e4, e5, e6, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0, e1, e2, e3, e4, e5, e6, e7, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, e1, e2, e3, e4, e5, e6, e7, e8, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, ?, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, ?, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, ?, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, ?, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, ?, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, ?, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, ?, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, ?, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, ?) +# define MSGPACK_PP_TUPLE_ELEM_E_64 +# define MSGPACK_PP_TUPLE_ELEM_0(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e0 +# define MSGPACK_PP_TUPLE_ELEM_1(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e1 +# define MSGPACK_PP_TUPLE_ELEM_2(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e2 +# define MSGPACK_PP_TUPLE_ELEM_3(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e3 +# define MSGPACK_PP_TUPLE_ELEM_4(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e4 +# define MSGPACK_PP_TUPLE_ELEM_5(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e5 +# define MSGPACK_PP_TUPLE_ELEM_6(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e6 +# define MSGPACK_PP_TUPLE_ELEM_7(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e7 +# define MSGPACK_PP_TUPLE_ELEM_8(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e8 +# define MSGPACK_PP_TUPLE_ELEM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e9 +# define MSGPACK_PP_TUPLE_ELEM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e10 +# define MSGPACK_PP_TUPLE_ELEM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e11 +# define MSGPACK_PP_TUPLE_ELEM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e12 +# define MSGPACK_PP_TUPLE_ELEM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e13 +# define MSGPACK_PP_TUPLE_ELEM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e14 +# define MSGPACK_PP_TUPLE_ELEM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e15 +# define MSGPACK_PP_TUPLE_ELEM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e16 +# define MSGPACK_PP_TUPLE_ELEM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e17 +# define MSGPACK_PP_TUPLE_ELEM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e18 +# define MSGPACK_PP_TUPLE_ELEM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e19 +# define MSGPACK_PP_TUPLE_ELEM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e20 +# define MSGPACK_PP_TUPLE_ELEM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e21 +# define MSGPACK_PP_TUPLE_ELEM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e22 +# define MSGPACK_PP_TUPLE_ELEM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e23 +# define MSGPACK_PP_TUPLE_ELEM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e24 +# define MSGPACK_PP_TUPLE_ELEM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e25 +# define MSGPACK_PP_TUPLE_ELEM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e26 +# define MSGPACK_PP_TUPLE_ELEM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e27 +# define MSGPACK_PP_TUPLE_ELEM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e28 +# define MSGPACK_PP_TUPLE_ELEM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e29 +# define MSGPACK_PP_TUPLE_ELEM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e30 +# define MSGPACK_PP_TUPLE_ELEM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e31 +# define MSGPACK_PP_TUPLE_ELEM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e32 +# define MSGPACK_PP_TUPLE_ELEM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e33 +# define MSGPACK_PP_TUPLE_ELEM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e34 +# define MSGPACK_PP_TUPLE_ELEM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e35 +# define MSGPACK_PP_TUPLE_ELEM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e36 +# define MSGPACK_PP_TUPLE_ELEM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e37 +# define MSGPACK_PP_TUPLE_ELEM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e38 +# define MSGPACK_PP_TUPLE_ELEM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e39 +# define MSGPACK_PP_TUPLE_ELEM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e40 +# define MSGPACK_PP_TUPLE_ELEM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e41 +# define MSGPACK_PP_TUPLE_ELEM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e42 +# define MSGPACK_PP_TUPLE_ELEM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e43 +# define MSGPACK_PP_TUPLE_ELEM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e44 +# define MSGPACK_PP_TUPLE_ELEM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e45 +# define MSGPACK_PP_TUPLE_ELEM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e46 +# define MSGPACK_PP_TUPLE_ELEM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e47 +# define MSGPACK_PP_TUPLE_ELEM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e48 +# define MSGPACK_PP_TUPLE_ELEM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e49 +# define MSGPACK_PP_TUPLE_ELEM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e50 +# define MSGPACK_PP_TUPLE_ELEM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e51 +# define MSGPACK_PP_TUPLE_ELEM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e52 +# define MSGPACK_PP_TUPLE_ELEM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e53 +# define MSGPACK_PP_TUPLE_ELEM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e54 +# define MSGPACK_PP_TUPLE_ELEM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e55 +# define MSGPACK_PP_TUPLE_ELEM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e56 +# define MSGPACK_PP_TUPLE_ELEM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e57 +# define MSGPACK_PP_TUPLE_ELEM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e58 +# define MSGPACK_PP_TUPLE_ELEM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e59 +# define MSGPACK_PP_TUPLE_ELEM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e60 +# define MSGPACK_PP_TUPLE_ELEM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e61 +# define MSGPACK_PP_TUPLE_ELEM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e62 +# define MSGPACK_PP_TUPLE_ELEM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e63 +# endif +# +# /* directly used elsewhere in Boost... */ +# +# define MSGPACK_PP_TUPLE_ELEM_1_0(a) a +# +# define MSGPACK_PP_TUPLE_ELEM_2_0(a, b) a +# define MSGPACK_PP_TUPLE_ELEM_2_1(a, b) b +# +# define MSGPACK_PP_TUPLE_ELEM_3_0(a, b, c) a +# define MSGPACK_PP_TUPLE_ELEM_3_1(a, b, c) b +# define MSGPACK_PP_TUPLE_ELEM_3_2(a, b, c) c +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/enum.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/enum.hpp new file mode 100644 index 000000000000..212087267aac --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/enum.hpp @@ -0,0 +1,22 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_ENUM_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_ENUM_HPP +# +# include +# +# /* MSGPACK_PP_TUPLE_ENUM */ +# +# define MSGPACK_PP_TUPLE_ENUM MSGPACK_PP_TUPLE_REM_CTOR +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/insert.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/insert.hpp new file mode 100644 index 000000000000..538bfc795d64 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/insert.hpp @@ -0,0 +1,37 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2013. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_INSERT_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_INSERT_HPP +# +# include +# +# if MSGPACK_PP_VARIADICS +# +# include +# include +# include +# +# /* MSGPACK_PP_TUPLE_INSERT */ +# +# define MSGPACK_PP_TUPLE_INSERT(tuple, i, elem) \ + MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_INSERT(MSGPACK_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \ +/**/ +# +# /* MSGPACK_PP_TUPLE_INSERT_D */ +# +# define MSGPACK_PP_TUPLE_INSERT_D(d, tuple, i, elem) \ + MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_INSERT_D(d, MSGPACK_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \ +/**/ +# +# endif // MSGPACK_PP_VARIADICS +# +# endif // MSGPACK_PREPROCESSOR_TUPLE_INSERT_HPP diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/pop_back.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/pop_back.hpp new file mode 100644 index 000000000000..ed0d982899a5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/pop_back.hpp @@ -0,0 +1,64 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2013. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_POP_BACK_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_POP_BACK_HPP +# +# include +# +# if MSGPACK_PP_VARIADICS +# +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_TUPLE_POP_BACK */ +# +# define MSGPACK_PP_TUPLE_POP_BACK(tuple) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_GREATER(MSGPACK_PP_TUPLE_SIZE(tuple),1), \ + MSGPACK_PP_TUPLE_POP_BACK_EXEC, \ + MSGPACK_PP_TUPLE_POP_BACK_RETURN \ + ) \ + (tuple) \ +/**/ +# +# define MSGPACK_PP_TUPLE_POP_BACK_EXEC(tuple) \ + MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_POP_BACK(MSGPACK_PP_TUPLE_TO_ARRAY(tuple))) \ +/**/ +# +# define MSGPACK_PP_TUPLE_POP_BACK_RETURN(tuple) tuple +# +# /* MSGPACK_PP_TUPLE_POP_BACK_Z */ +# +# define MSGPACK_PP_TUPLE_POP_BACK_Z(z, tuple) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_GREATER(MSGPACK_PP_TUPLE_SIZE(tuple),1), \ + MSGPACK_PP_TUPLE_POP_BACK_Z_EXEC, \ + MSGPACK_PP_TUPLE_POP_BACK_Z_RETURN \ + ) \ + (z, tuple) \ +/**/ +# +# define MSGPACK_PP_TUPLE_POP_BACK_Z_EXEC(z, tuple) \ + MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_POP_BACK_Z(z, MSGPACK_PP_TUPLE_TO_ARRAY(tuple))) \ +/**/ +# +# define MSGPACK_PP_TUPLE_POP_BACK_Z_RETURN(z, tuple) tuple +# +# endif // MSGPACK_PP_VARIADICS +# +# endif // MSGPACK_PREPROCESSOR_TUPLE_POP_BACK_HPP diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/pop_front.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/pop_front.hpp new file mode 100644 index 000000000000..09ff9be5e49c --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/pop_front.hpp @@ -0,0 +1,65 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2013. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_POP_FRONT_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_POP_FRONT_HPP +# +# include +# +# if MSGPACK_PP_VARIADICS +# +# include +# include +# include +# include +# include +# include +# +# +# /* MSGPACK_PP_TUPLE_POP_FRONT */ +# +# define MSGPACK_PP_TUPLE_POP_FRONT(tuple) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_GREATER(MSGPACK_PP_TUPLE_SIZE(tuple),1), \ + MSGPACK_PP_TUPLE_POP_FRONT_EXEC, \ + MSGPACK_PP_TUPLE_POP_FRONT_RETURN \ + ) \ + (tuple) \ +/**/ +# +# define MSGPACK_PP_TUPLE_POP_FRONT_EXEC(tuple) \ + MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_POP_FRONT(MSGPACK_PP_TUPLE_TO_ARRAY(tuple))) \ +/**/ +# +# define MSGPACK_PP_TUPLE_POP_FRONT_RETURN(tuple) tuple +# +# /* MSGPACK_PP_TUPLE_POP_FRONT_Z */ +# +# define MSGPACK_PP_TUPLE_POP_FRONT_Z(z, tuple) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_GREATER(MSGPACK_PP_TUPLE_SIZE(tuple),1), \ + MSGPACK_PP_TUPLE_POP_FRONT_Z_EXEC, \ + MSGPACK_PP_TUPLE_POP_FRONT_Z_RETURN \ + ) \ + (z, tuple) \ +/**/ +# +# define MSGPACK_PP_TUPLE_POP_FRONT_Z_EXEC(z, tuple) \ + MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_POP_FRONT_Z(z, MSGPACK_PP_TUPLE_TO_ARRAY(tuple))) \ +/**/ +# +# define MSGPACK_PP_TUPLE_POP_FRONT_Z_RETURN(z, tuple) tuple +# +# endif // MSGPACK_PP_VARIADICS +# +# endif // MSGPACK_PREPROCESSOR_TUPLE_POP_FRONT_HPP diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/push_back.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/push_back.hpp new file mode 100644 index 000000000000..447e54016bf5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/push_back.hpp @@ -0,0 +1,31 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2013. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_PUSH_BACK_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_PUSH_BACK_HPP +# +# include +# +# if MSGPACK_PP_VARIADICS +# +# include +# include +# include +# +# /* MSGPACK_PP_TUPLE_PUSH_BACK */ +# +# define MSGPACK_PP_TUPLE_PUSH_BACK(tuple, elem) \ + MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_PUSH_BACK(MSGPACK_PP_TUPLE_TO_ARRAY(tuple), elem)) \ +/**/ +# +# endif // MSGPACK_PP_VARIADICS +# +# endif // MSGPACK_PREPROCESSOR_TUPLE_PUSH_BACK_HPP diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/push_front.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/push_front.hpp new file mode 100644 index 000000000000..f4579a3a9bf3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/push_front.hpp @@ -0,0 +1,32 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2013. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP +# +# include +# +# if MSGPACK_PP_VARIADICS +# +# include +# include +# include +# +# +# /* MSGPACK_PP_TUPLE_PUSH_FRONT */ +# +# define MSGPACK_PP_TUPLE_PUSH_FRONT(tuple, elem) \ + MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_PUSH_FRONT(MSGPACK_PP_TUPLE_TO_ARRAY(tuple), elem)) \ +/**/ +# +# endif // MSGPACK_PP_VARIADICS +# +# endif // MSGPACK_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/rem.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/rem.hpp new file mode 100644 index 000000000000..a8b9fe5f7349 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/rem.hpp @@ -0,0 +1,149 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002-2011. * +# * (C) Copyright Edward Diener 2011,2013. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_REM_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_REM_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_REM */ +# +# if MSGPACK_PP_VARIADICS +# if MSGPACK_PP_VARIADICS_MSVC + /* To be used internally when __VA_ARGS__ could be empty ( or is a single element ) */ +# define MSGPACK_PP_REM_CAT(...) MSGPACK_PP_CAT(__VA_ARGS__,) +# endif +# define MSGPACK_PP_REM(...) __VA_ARGS__ +# else +# define MSGPACK_PP_REM(x) x +# endif +# +# /* MSGPACK_PP_TUPLE_REM */ +# +/* + VC++8.0 cannot handle the variadic version of MSGPACK_PP_TUPLE_REM(size) +*/ +# if MSGPACK_PP_VARIADICS && !(MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400) +# if MSGPACK_PP_VARIADICS_MSVC + /* To be used internally when the size could be 0 ( or 1 ) */ +# define MSGPACK_PP_TUPLE_REM_CAT(size) MSGPACK_PP_REM_CAT +# endif +# define MSGPACK_PP_TUPLE_REM(size) MSGPACK_PP_REM +# else +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_TUPLE_REM(size) MSGPACK_PP_TUPLE_REM_I(size) +# else +# define MSGPACK_PP_TUPLE_REM(size) MSGPACK_PP_TUPLE_REM_OO((size)) +# define MSGPACK_PP_TUPLE_REM_OO(par) MSGPACK_PP_TUPLE_REM_I ## par +# endif +# define MSGPACK_PP_TUPLE_REM_I(size) MSGPACK_PP_TUPLE_REM_ ## size +# endif +# define MSGPACK_PP_TUPLE_REM_0() +# define MSGPACK_PP_TUPLE_REM_1(e0) e0 +# define MSGPACK_PP_TUPLE_REM_2(e0, e1) e0, e1 +# define MSGPACK_PP_TUPLE_REM_3(e0, e1, e2) e0, e1, e2 +# define MSGPACK_PP_TUPLE_REM_4(e0, e1, e2, e3) e0, e1, e2, e3 +# define MSGPACK_PP_TUPLE_REM_5(e0, e1, e2, e3, e4) e0, e1, e2, e3, e4 +# define MSGPACK_PP_TUPLE_REM_6(e0, e1, e2, e3, e4, e5) e0, e1, e2, e3, e4, e5 +# define MSGPACK_PP_TUPLE_REM_7(e0, e1, e2, e3, e4, e5, e6) e0, e1, e2, e3, e4, e5, e6 +# define MSGPACK_PP_TUPLE_REM_8(e0, e1, e2, e3, e4, e5, e6, e7) e0, e1, e2, e3, e4, e5, e6, e7 +# define MSGPACK_PP_TUPLE_REM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) e0, e1, e2, e3, e4, e5, e6, e7, e8 +# define MSGPACK_PP_TUPLE_REM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9 +# define MSGPACK_PP_TUPLE_REM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10 +# define MSGPACK_PP_TUPLE_REM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11 +# define MSGPACK_PP_TUPLE_REM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12 +# define MSGPACK_PP_TUPLE_REM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13 +# define MSGPACK_PP_TUPLE_REM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14 +# define MSGPACK_PP_TUPLE_REM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15 +# define MSGPACK_PP_TUPLE_REM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16 +# define MSGPACK_PP_TUPLE_REM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17 +# define MSGPACK_PP_TUPLE_REM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18 +# define MSGPACK_PP_TUPLE_REM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19 +# define MSGPACK_PP_TUPLE_REM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20 +# define MSGPACK_PP_TUPLE_REM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21 +# define MSGPACK_PP_TUPLE_REM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22 +# define MSGPACK_PP_TUPLE_REM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23 +# define MSGPACK_PP_TUPLE_REM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24 +# define MSGPACK_PP_TUPLE_REM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25 +# define MSGPACK_PP_TUPLE_REM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26 +# define MSGPACK_PP_TUPLE_REM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27 +# define MSGPACK_PP_TUPLE_REM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28 +# define MSGPACK_PP_TUPLE_REM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29 +# define MSGPACK_PP_TUPLE_REM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30 +# define MSGPACK_PP_TUPLE_REM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31 +# define MSGPACK_PP_TUPLE_REM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32 +# define MSGPACK_PP_TUPLE_REM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33 +# define MSGPACK_PP_TUPLE_REM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34 +# define MSGPACK_PP_TUPLE_REM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35 +# define MSGPACK_PP_TUPLE_REM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36 +# define MSGPACK_PP_TUPLE_REM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37 +# define MSGPACK_PP_TUPLE_REM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38 +# define MSGPACK_PP_TUPLE_REM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39 +# define MSGPACK_PP_TUPLE_REM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40 +# define MSGPACK_PP_TUPLE_REM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41 +# define MSGPACK_PP_TUPLE_REM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42 +# define MSGPACK_PP_TUPLE_REM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43 +# define MSGPACK_PP_TUPLE_REM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44 +# define MSGPACK_PP_TUPLE_REM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45 +# define MSGPACK_PP_TUPLE_REM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46 +# define MSGPACK_PP_TUPLE_REM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47 +# define MSGPACK_PP_TUPLE_REM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48 +# define MSGPACK_PP_TUPLE_REM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49 +# define MSGPACK_PP_TUPLE_REM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50 +# define MSGPACK_PP_TUPLE_REM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51 +# define MSGPACK_PP_TUPLE_REM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52 +# define MSGPACK_PP_TUPLE_REM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53 +# define MSGPACK_PP_TUPLE_REM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54 +# define MSGPACK_PP_TUPLE_REM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55 +# define MSGPACK_PP_TUPLE_REM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56 +# define MSGPACK_PP_TUPLE_REM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57 +# define MSGPACK_PP_TUPLE_REM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58 +# define MSGPACK_PP_TUPLE_REM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59 +# define MSGPACK_PP_TUPLE_REM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60 +# define MSGPACK_PP_TUPLE_REM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61 +# define MSGPACK_PP_TUPLE_REM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62 +# define MSGPACK_PP_TUPLE_REM_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63 +# +# /* MSGPACK_PP_TUPLE_REM_CTOR */ +# +# if MSGPACK_PP_VARIADICS +# if MSGPACK_PP_VARIADICS_MSVC +# define MSGPACK_PP_TUPLE_REM_CTOR(...) MSGPACK_PP_TUPLE_REM_CTOR_I(MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__), (__VA_ARGS__)) +# define MSGPACK_PP_TUPLE_REM_CTOR_I(m, args) MSGPACK_PP_TUPLE_REM_CTOR_II(m, args) +# define MSGPACK_PP_TUPLE_REM_CTOR_II(m, args) MSGPACK_PP_CAT(m ## args,) +# define MSGPACK_PP_TUPLE_REM_CTOR_O_1(tuple) MSGPACK_PP_EXPAND(MSGPACK_PP_TUPLE_IS_SINGLE_RETURN(MSGPACK_PP_REM_CAT,MSGPACK_PP_REM,tuple) tuple) +# else +# define MSGPACK_PP_TUPLE_REM_CTOR(...) MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__)(__VA_ARGS__) +# define MSGPACK_PP_TUPLE_REM_CTOR_O_1(tuple) MSGPACK_PP_REM tuple +# endif +# define MSGPACK_PP_TUPLE_REM_CTOR_O_2(size, tuple) MSGPACK_PP_TUPLE_REM_CTOR_O_1(tuple) +# else +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() +# define MSGPACK_PP_TUPLE_REM_CTOR(size, tuple) MSGPACK_PP_TUPLE_REM_CTOR_I(MSGPACK_PP_TUPLE_REM(size), tuple) +# else +# define MSGPACK_PP_TUPLE_REM_CTOR(size, tuple) MSGPACK_PP_TUPLE_REM_CTOR_D(size, tuple) +# define MSGPACK_PP_TUPLE_REM_CTOR_D(size, tuple) MSGPACK_PP_TUPLE_REM_CTOR_I(MSGPACK_PP_TUPLE_REM(size), tuple) +# endif +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_TUPLE_REM_CTOR_I(ext, tuple) ext tuple +# else +# define MSGPACK_PP_TUPLE_REM_CTOR_I(ext, tuple) MSGPACK_PP_TUPLE_REM_CTOR_OO((ext, tuple)) +# define MSGPACK_PP_TUPLE_REM_CTOR_OO(par) MSGPACK_PP_TUPLE_REM_CTOR_II ## par +# define MSGPACK_PP_TUPLE_REM_CTOR_II(ext, tuple) ext ## tuple +# endif +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/remove.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/remove.hpp new file mode 100644 index 000000000000..5c3839e22ac0 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/remove.hpp @@ -0,0 +1,64 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2013. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_REMOVE_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_REMOVE_HPP +# +# include +# +# if MSGPACK_PP_VARIADICS +# +# include +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_TUPLE_REMOVE */ +# +# define MSGPACK_PP_TUPLE_REMOVE(tuple, i) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_GREATER(MSGPACK_PP_TUPLE_SIZE(tuple),1), \ + MSGPACK_PP_TUPLE_REMOVE_EXEC, \ + MSGPACK_PP_TUPLE_REMOVE_RETURN \ + ) \ + (tuple, i) \ +/**/ +# +# define MSGPACK_PP_TUPLE_REMOVE_EXEC(tuple, i) \ + MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_REMOVE(MSGPACK_PP_TUPLE_TO_ARRAY(tuple), i)) \ +/**/ +# +# define MSGPACK_PP_TUPLE_REMOVE_RETURN(tuple, i) tuple +# +# /* MSGPACK_PP_TUPLE_REMOVE_D */ +# +# define MSGPACK_PP_TUPLE_REMOVE_D(d, tuple, i) \ + MSGPACK_PP_IIF \ + ( \ + MSGPACK_PP_GREATER_D(d, MSGPACK_PP_TUPLE_SIZE(tuple), 1), \ + MSGPACK_PP_TUPLE_REMOVE_D_EXEC, \ + MSGPACK_PP_TUPLE_REMOVE_D_RETURN \ + ) \ + (d, tuple, i) \ +/**/ +# +# define MSGPACK_PP_TUPLE_REMOVE_D_EXEC(d, tuple, i) \ + MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_REMOVE_D(d, MSGPACK_PP_TUPLE_TO_ARRAY(tuple), i)) \ +/**/ +# +# define MSGPACK_PP_TUPLE_REMOVE_D_RETURN(d, tuple, i) tuple +# +# endif // MSGPACK_PP_VARIADICS +# +# endif // MSGPACK_PREPROCESSOR_TUPLE_REMOVE_HPP diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/replace.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/replace.hpp new file mode 100644 index 000000000000..de36d94f5c3e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/replace.hpp @@ -0,0 +1,37 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2013. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_REPLACE_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_REPLACE_HPP +# +# include +# +# if MSGPACK_PP_VARIADICS +# +# include +# include +# include +# +# /* MSGPACK_PP_TUPLE_REPLACE */ +# +# define MSGPACK_PP_TUPLE_REPLACE(tuple, i, elem) \ + MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_REPLACE(MSGPACK_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \ +/**/ +# +# /* MSGPACK_PP_TUPLE_REPLACE_D */ +# +# define MSGPACK_PP_TUPLE_REPLACE_D(d, tuple, i, elem) \ + MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_REPLACE_D(d, MSGPACK_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \ +/**/ +# +# endif // MSGPACK_PP_VARIADICS +# +# endif // MSGPACK_PREPROCESSOR_TUPLE_REPLACE_HPP diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/reverse.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/reverse.hpp new file mode 100644 index 000000000000..85a74e72ab17 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/reverse.hpp @@ -0,0 +1,117 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002-2011) */ +# /* Revised by Edward Diener (2011) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_REVERSE_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_REVERSE_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_TUPLE_REVERSE */ +# +# if MSGPACK_PP_VARIADICS +# if MSGPACK_PP_VARIADICS_MSVC +# define MSGPACK_PP_TUPLE_REVERSE(...) MSGPACK_PP_TUPLE_REVERSE_I(MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_REVERSE_O_, __VA_ARGS__), (__VA_ARGS__)) +# define MSGPACK_PP_TUPLE_REVERSE_I(m, args) MSGPACK_PP_TUPLE_REVERSE_II(m, args) +# define MSGPACK_PP_TUPLE_REVERSE_II(m, args) MSGPACK_PP_CAT(m ## args,) +# define MSGPACK_PP_TUPLE_REVERSE_O_1(tuple) MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_REVERSE_, MSGPACK_PP_TUPLE_SIZE(tuple)) tuple +# else +# define MSGPACK_PP_TUPLE_REVERSE(...) MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_REVERSE_O_, __VA_ARGS__)(__VA_ARGS__) +# define MSGPACK_PP_TUPLE_REVERSE_O_1(tuple) MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_REVERSE_, MSGPACK_PP_VARIADIC_SIZE tuple) tuple +# endif +# define MSGPACK_PP_TUPLE_REVERSE_O_2(size, tuple) MSGPACK_PP_TUPLE_REVERSE_O_1(tuple) +# else +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_TUPLE_REVERSE(size, tuple) MSGPACK_PP_TUPLE_REVERSE_I(size, tuple) +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_TUPLE_REVERSE_I(s, t) MSGPACK_PP_TUPLE_REVERSE_ ## s t +# else +# define MSGPACK_PP_TUPLE_REVERSE_I(s, t) MSGPACK_PP_TUPLE_REVERSE_II(MSGPACK_PP_TUPLE_REVERSE_ ## s t) +# define MSGPACK_PP_TUPLE_REVERSE_II(res) res +# endif +# else +# define MSGPACK_PP_TUPLE_REVERSE(size, tuple) MSGPACK_PP_TUPLE_REVERSE_OO((size, tuple)) +# define MSGPACK_PP_TUPLE_REVERSE_OO(par) MSGPACK_PP_TUPLE_REVERSE_I ## par +# define MSGPACK_PP_TUPLE_REVERSE_I(s, t) MSGPACK_PP_TUPLE_REVERSE_ ## s ## t +# endif +# endif +# define MSGPACK_PP_TUPLE_REVERSE_1(e0) (e0) +# define MSGPACK_PP_TUPLE_REVERSE_2(e0, e1) (e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_3(e0, e1, e2) (e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_4(e0, e1, e2, e3) (e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_5(e0, e1, e2, e3, e4) (e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_6(e0, e1, e2, e3, e4, e5) (e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_7(e0, e1, e2, e3, e4, e5, e6) (e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_8(e0, e1, e2, e3, e4, e5, e6, e7) (e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e61, e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e62, e61, e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# define MSGPACK_PP_TUPLE_REVERSE_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e63, e62, e61, e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/size.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/size.hpp new file mode 100644 index 000000000000..cbc4b322075d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/size.hpp @@ -0,0 +1,28 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_SIZE_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_SIZE_HPP +# +# include +# include +# include +# +# if MSGPACK_PP_VARIADICS +# if MSGPACK_PP_VARIADICS_MSVC +# define MSGPACK_PP_TUPLE_SIZE(tuple) MSGPACK_PP_CAT(MSGPACK_PP_VARIADIC_SIZE tuple,) +# else +# define MSGPACK_PP_TUPLE_SIZE(tuple) MSGPACK_PP_VARIADIC_SIZE tuple +# endif +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/to_array.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/to_array.hpp new file mode 100644 index 000000000000..ff4a97a7d11d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/to_array.hpp @@ -0,0 +1,39 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_TO_ARRAY_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_TO_ARRAY_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_TUPLE_TO_ARRAY */ +# +# if MSGPACK_PP_VARIADICS +# if MSGPACK_PP_VARIADICS_MSVC +# define MSGPACK_PP_TUPLE_TO_ARRAY(...) MSGPACK_PP_TUPLE_TO_ARRAY_I(MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_TO_ARRAY_, __VA_ARGS__), (__VA_ARGS__)) +# define MSGPACK_PP_TUPLE_TO_ARRAY_I(m, args) MSGPACK_PP_TUPLE_TO_ARRAY_II(m, args) +# define MSGPACK_PP_TUPLE_TO_ARRAY_II(m, args) MSGPACK_PP_CAT(m ## args,) +# define MSGPACK_PP_TUPLE_TO_ARRAY_1(tuple) (MSGPACK_PP_TUPLE_SIZE(tuple), tuple) +# else +# define MSGPACK_PP_TUPLE_TO_ARRAY(...) MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_TO_ARRAY_, __VA_ARGS__)(__VA_ARGS__) +# define MSGPACK_PP_TUPLE_TO_ARRAY_1(tuple) (MSGPACK_PP_VARIADIC_SIZE tuple, tuple) +# endif +# define MSGPACK_PP_TUPLE_TO_ARRAY_2(size, tuple) (size, tuple) +# else +# define MSGPACK_PP_TUPLE_TO_ARRAY(size, tuple) (size, tuple) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/to_list.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/to_list.hpp new file mode 100644 index 000000000000..df60d4351bcb --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/to_list.hpp @@ -0,0 +1,118 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002-2011) */ +# /* Revised by Edward Diener (2011) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_TO_LIST_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_TO_LIST_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_TUPLE_TO_LIST */ +# +# if MSGPACK_PP_VARIADICS +# if MSGPACK_PP_VARIADICS_MSVC +# define MSGPACK_PP_TUPLE_TO_LIST(...) MSGPACK_PP_TUPLE_TO_LIST_I(MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_TO_LIST_O_, __VA_ARGS__), (__VA_ARGS__)) +# define MSGPACK_PP_TUPLE_TO_LIST_I(m, args) MSGPACK_PP_TUPLE_TO_LIST_II(m, args) +# define MSGPACK_PP_TUPLE_TO_LIST_II(m, args) MSGPACK_PP_CAT(m ## args,) +# define MSGPACK_PP_TUPLE_TO_LIST_O_1(tuple) MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_TO_LIST_, MSGPACK_PP_TUPLE_SIZE(tuple)) tuple +# else +# define MSGPACK_PP_TUPLE_TO_LIST(...) MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_TO_LIST_O_, __VA_ARGS__)(__VA_ARGS__) +# define MSGPACK_PP_TUPLE_TO_LIST_O_1(tuple) MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_TO_LIST_, MSGPACK_PP_VARIADIC_SIZE tuple) tuple +# endif +# define MSGPACK_PP_TUPLE_TO_LIST_O_2(size, tuple) MSGPACK_PP_TUPLE_TO_LIST_O_1(tuple) +# else +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_TUPLE_TO_LIST(size, tuple) MSGPACK_PP_TUPLE_TO_LIST_I(size, tuple) +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_TUPLE_TO_LIST_I(s, t) MSGPACK_PP_TUPLE_TO_LIST_ ## s t +# else +# define MSGPACK_PP_TUPLE_TO_LIST_I(s, t) MSGPACK_PP_TUPLE_TO_LIST_II(MSGPACK_PP_TUPLE_TO_LIST_ ## s t) +# define MSGPACK_PP_TUPLE_TO_LIST_II(res) res +# endif +# else +# define MSGPACK_PP_TUPLE_TO_LIST(size, tuple) MSGPACK_PP_TUPLE_TO_LIST_OO((size, tuple)) +# define MSGPACK_PP_TUPLE_TO_LIST_OO(par) MSGPACK_PP_TUPLE_TO_LIST_I ## par +# define MSGPACK_PP_TUPLE_TO_LIST_I(s, t) MSGPACK_PP_TUPLE_TO_LIST_ ## s ## t +# endif +# endif +# +# define MSGPACK_PP_TUPLE_TO_LIST_1(e0) (e0, MSGPACK_PP_NIL) +# define MSGPACK_PP_TUPLE_TO_LIST_2(e0, e1) (e0, (e1, MSGPACK_PP_NIL)) +# define MSGPACK_PP_TUPLE_TO_LIST_3(e0, e1, e2) (e0, (e1, (e2, MSGPACK_PP_NIL))) +# define MSGPACK_PP_TUPLE_TO_LIST_4(e0, e1, e2, e3) (e0, (e1, (e2, (e3, MSGPACK_PP_NIL)))) +# define MSGPACK_PP_TUPLE_TO_LIST_5(e0, e1, e2, e3, e4) (e0, (e1, (e2, (e3, (e4, MSGPACK_PP_NIL))))) +# define MSGPACK_PP_TUPLE_TO_LIST_6(e0, e1, e2, e3, e4, e5) (e0, (e1, (e2, (e3, (e4, (e5, MSGPACK_PP_NIL)))))) +# define MSGPACK_PP_TUPLE_TO_LIST_7(e0, e1, e2, e3, e4, e5, e6) (e0, (e1, (e2, (e3, (e4, (e5, (e6, MSGPACK_PP_NIL))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, MSGPACK_PP_NIL)))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, MSGPACK_PP_NIL))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, MSGPACK_PP_NIL)))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, MSGPACK_PP_NIL))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, MSGPACK_PP_NIL)))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, MSGPACK_PP_NIL))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, MSGPACK_PP_NIL)))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, MSGPACK_PP_NIL))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, MSGPACK_PP_NIL)))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, MSGPACK_PP_NIL))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, MSGPACK_PP_NIL)))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, MSGPACK_PP_NIL))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, MSGPACK_PP_NIL)))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, MSGPACK_PP_NIL))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, MSGPACK_PP_NIL)))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, MSGPACK_PP_NIL))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, MSGPACK_PP_NIL)))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, MSGPACK_PP_NIL))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, MSGPACK_PP_NIL)))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, MSGPACK_PP_NIL))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, MSGPACK_PP_NIL)))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, MSGPACK_PP_NIL))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, MSGPACK_PP_NIL)))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, MSGPACK_PP_NIL))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, (e62, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +# define MSGPACK_PP_TUPLE_TO_LIST_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, (e62, (e63, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/tuple/to_seq.hpp b/third_party/msgpack/include/msgpack/preprocessor/tuple/to_seq.hpp new file mode 100644 index 000000000000..a9be8b235263 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/tuple/to_seq.hpp @@ -0,0 +1,119 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002-2011. * +# * (C) Copyright Edward Diener 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_TUPLE_TO_SEQ_HPP +# define MSGPACK_PREPROCESSOR_TUPLE_TO_SEQ_HPP +# +# include +# include +# include +# include +# include +# +# /* MSGPACK_PP_TUPLE_TO_SEQ */ +# +# if MSGPACK_PP_VARIADICS +# if MSGPACK_PP_VARIADICS_MSVC +# define MSGPACK_PP_TUPLE_TO_SEQ(...) MSGPACK_PP_TUPLE_TO_SEQ_I(MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_TO_SEQ_O_, __VA_ARGS__), (__VA_ARGS__)) +# define MSGPACK_PP_TUPLE_TO_SEQ_I(m, args) MSGPACK_PP_TUPLE_TO_SEQ_II(m, args) +# define MSGPACK_PP_TUPLE_TO_SEQ_II(m, args) MSGPACK_PP_CAT(m ## args,) +# define MSGPACK_PP_TUPLE_TO_SEQ_O_1(tuple) MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_TO_SEQ_, MSGPACK_PP_TUPLE_SIZE(tuple)) tuple +# else +# define MSGPACK_PP_TUPLE_TO_SEQ(...) MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_TO_SEQ_O_, __VA_ARGS__)(__VA_ARGS__) +# define MSGPACK_PP_TUPLE_TO_SEQ_O_1(tuple) MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_TO_SEQ_, MSGPACK_PP_VARIADIC_SIZE tuple) tuple +# endif +# define MSGPACK_PP_TUPLE_TO_SEQ_O_2(size, tuple) MSGPACK_PP_TUPLE_TO_SEQ_O_1(tuple) +# else +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_TUPLE_TO_SEQ(size, tuple) MSGPACK_PP_TUPLE_TO_SEQ_I(size, tuple) +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() +# define MSGPACK_PP_TUPLE_TO_SEQ_I(s, t) MSGPACK_PP_TUPLE_TO_SEQ_ ## s t +# else +# define MSGPACK_PP_TUPLE_TO_SEQ_I(s, t) MSGPACK_PP_TUPLE_TO_SEQ_II(MSGPACK_PP_TUPLE_TO_SEQ_ ## s t) +# define MSGPACK_PP_TUPLE_TO_SEQ_II(res) res +# endif +# else +# define MSGPACK_PP_TUPLE_TO_SEQ(size, tuple) MSGPACK_PP_TUPLE_TO_SEQ_OO((size, tuple)) +# define MSGPACK_PP_TUPLE_TO_SEQ_OO(par) MSGPACK_PP_TUPLE_TO_SEQ_I ## par +# define MSGPACK_PP_TUPLE_TO_SEQ_I(s, t) MSGPACK_PP_TUPLE_TO_SEQ_ ## s ## t +# endif +# endif +# +/* An empty array can be passed */ +# define MSGPACK_PP_TUPLE_TO_SEQ_0() () +# +# define MSGPACK_PP_TUPLE_TO_SEQ_1(e0) (e0) +# define MSGPACK_PP_TUPLE_TO_SEQ_2(e0, e1) (e0)(e1) +# define MSGPACK_PP_TUPLE_TO_SEQ_3(e0, e1, e2) (e0)(e1)(e2) +# define MSGPACK_PP_TUPLE_TO_SEQ_4(e0, e1, e2, e3) (e0)(e1)(e2)(e3) +# define MSGPACK_PP_TUPLE_TO_SEQ_5(e0, e1, e2, e3, e4) (e0)(e1)(e2)(e3)(e4) +# define MSGPACK_PP_TUPLE_TO_SEQ_6(e0, e1, e2, e3, e4, e5) (e0)(e1)(e2)(e3)(e4)(e5) +# define MSGPACK_PP_TUPLE_TO_SEQ_7(e0, e1, e2, e3, e4, e5, e6) (e0)(e1)(e2)(e3)(e4)(e5)(e6) +# define MSGPACK_PP_TUPLE_TO_SEQ_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7) +# define MSGPACK_PP_TUPLE_TO_SEQ_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8) +# define MSGPACK_PP_TUPLE_TO_SEQ_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9) +# define MSGPACK_PP_TUPLE_TO_SEQ_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10) +# define MSGPACK_PP_TUPLE_TO_SEQ_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11) +# define MSGPACK_PP_TUPLE_TO_SEQ_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12) +# define MSGPACK_PP_TUPLE_TO_SEQ_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13) +# define MSGPACK_PP_TUPLE_TO_SEQ_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14) +# define MSGPACK_PP_TUPLE_TO_SEQ_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15) +# define MSGPACK_PP_TUPLE_TO_SEQ_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16) +# define MSGPACK_PP_TUPLE_TO_SEQ_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17) +# define MSGPACK_PP_TUPLE_TO_SEQ_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18) +# define MSGPACK_PP_TUPLE_TO_SEQ_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19) +# define MSGPACK_PP_TUPLE_TO_SEQ_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20) +# define MSGPACK_PP_TUPLE_TO_SEQ_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21) +# define MSGPACK_PP_TUPLE_TO_SEQ_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22) +# define MSGPACK_PP_TUPLE_TO_SEQ_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23) +# define MSGPACK_PP_TUPLE_TO_SEQ_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24) +# define MSGPACK_PP_TUPLE_TO_SEQ_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25) +# define MSGPACK_PP_TUPLE_TO_SEQ_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26) +# define MSGPACK_PP_TUPLE_TO_SEQ_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27) +# define MSGPACK_PP_TUPLE_TO_SEQ_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28) +# define MSGPACK_PP_TUPLE_TO_SEQ_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29) +# define MSGPACK_PP_TUPLE_TO_SEQ_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30) +# define MSGPACK_PP_TUPLE_TO_SEQ_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31) +# define MSGPACK_PP_TUPLE_TO_SEQ_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32) +# define MSGPACK_PP_TUPLE_TO_SEQ_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33) +# define MSGPACK_PP_TUPLE_TO_SEQ_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34) +# define MSGPACK_PP_TUPLE_TO_SEQ_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35) +# define MSGPACK_PP_TUPLE_TO_SEQ_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36) +# define MSGPACK_PP_TUPLE_TO_SEQ_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37) +# define MSGPACK_PP_TUPLE_TO_SEQ_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38) +# define MSGPACK_PP_TUPLE_TO_SEQ_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39) +# define MSGPACK_PP_TUPLE_TO_SEQ_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40) +# define MSGPACK_PP_TUPLE_TO_SEQ_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41) +# define MSGPACK_PP_TUPLE_TO_SEQ_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42) +# define MSGPACK_PP_TUPLE_TO_SEQ_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43) +# define MSGPACK_PP_TUPLE_TO_SEQ_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44) +# define MSGPACK_PP_TUPLE_TO_SEQ_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45) +# define MSGPACK_PP_TUPLE_TO_SEQ_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46) +# define MSGPACK_PP_TUPLE_TO_SEQ_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47) +# define MSGPACK_PP_TUPLE_TO_SEQ_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48) +# define MSGPACK_PP_TUPLE_TO_SEQ_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49) +# define MSGPACK_PP_TUPLE_TO_SEQ_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50) +# define MSGPACK_PP_TUPLE_TO_SEQ_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51) +# define MSGPACK_PP_TUPLE_TO_SEQ_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52) +# define MSGPACK_PP_TUPLE_TO_SEQ_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53) +# define MSGPACK_PP_TUPLE_TO_SEQ_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54) +# define MSGPACK_PP_TUPLE_TO_SEQ_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55) +# define MSGPACK_PP_TUPLE_TO_SEQ_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56) +# define MSGPACK_PP_TUPLE_TO_SEQ_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57) +# define MSGPACK_PP_TUPLE_TO_SEQ_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58) +# define MSGPACK_PP_TUPLE_TO_SEQ_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59) +# define MSGPACK_PP_TUPLE_TO_SEQ_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60) +# define MSGPACK_PP_TUPLE_TO_SEQ_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60)(e61) +# define MSGPACK_PP_TUPLE_TO_SEQ_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60)(e61)(e62) +# define MSGPACK_PP_TUPLE_TO_SEQ_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60)(e61)(e62)(e63) +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/variadic.hpp b/third_party/msgpack/include/msgpack/preprocessor/variadic.hpp new file mode 100644 index 000000000000..d6020c932c7d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/variadic.hpp @@ -0,0 +1,23 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_VARIADIC_HPP +# define MSGPACK_PREPROCESSOR_VARIADIC_HPP +# +# include +# include +# include +# include +# include +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/variadic/detail/is_single_return.hpp b/third_party/msgpack/include/msgpack/preprocessor/variadic/detail/is_single_return.hpp new file mode 100644 index 000000000000..dad00253d78d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/variadic/detail/is_single_return.hpp @@ -0,0 +1,28 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2014. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_VARIADIC_DETAIL_IS_SINGLE_RETURN_HPP +# define MSGPACK_PREPROCESSOR_VARIADIC_DETAIL_IS_SINGLE_RETURN_HPP +# +# include +# +# /* MSGPACK_PP_VARIADIC_IS_SINGLE_RETURN */ +# +# if MSGPACK_PP_VARIADICS && MSGPACK_PP_VARIADICS_MSVC +# include +# include +# include +# define MSGPACK_PP_VARIADIC_IS_SINGLE_RETURN(sr,nsr,...) \ + MSGPACK_PP_IIF(MSGPACK_PP_IS_1(MSGPACK_PP_VARIADIC_SIZE(__VA_ARGS__)),sr,nsr) \ + /**/ +# endif /* MSGPACK_PP_VARIADICS && MSGPACK_PP_VARIADICS_MSVC */ +# +# endif /* MSGPACK_PREPROCESSOR_VARIADIC_DETAIL_IS_SINGLE_RETURN_HPP */ diff --git a/third_party/msgpack/include/msgpack/preprocessor/variadic/elem.hpp b/third_party/msgpack/include/msgpack/preprocessor/variadic/elem.hpp new file mode 100644 index 000000000000..dca88e2c7867 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/variadic/elem.hpp @@ -0,0 +1,94 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_VARIADIC_ELEM_HPP +# define MSGPACK_PREPROCESSOR_VARIADIC_ELEM_HPP +# +# include +# include +# +# /* MSGPACK_PP_VARIADIC_ELEM */ +# +# if MSGPACK_PP_VARIADICS +# if MSGPACK_PP_VARIADICS_MSVC +# define MSGPACK_PP_VARIADIC_ELEM(n, ...) MSGPACK_PP_VARIADIC_ELEM_I(n,__VA_ARGS__) +# define MSGPACK_PP_VARIADIC_ELEM_I(n, ...) MSGPACK_PP_CAT(MSGPACK_PP_CAT(MSGPACK_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,),) +# else +# define MSGPACK_PP_VARIADIC_ELEM(n, ...) MSGPACK_PP_CAT(MSGPACK_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,) +# endif +# define MSGPACK_PP_VARIADIC_ELEM_0(e0, ...) e0 +# define MSGPACK_PP_VARIADIC_ELEM_1(e0, e1, ...) e1 +# define MSGPACK_PP_VARIADIC_ELEM_2(e0, e1, e2, ...) e2 +# define MSGPACK_PP_VARIADIC_ELEM_3(e0, e1, e2, e3, ...) e3 +# define MSGPACK_PP_VARIADIC_ELEM_4(e0, e1, e2, e3, e4, ...) e4 +# define MSGPACK_PP_VARIADIC_ELEM_5(e0, e1, e2, e3, e4, e5, ...) e5 +# define MSGPACK_PP_VARIADIC_ELEM_6(e0, e1, e2, e3, e4, e5, e6, ...) e6 +# define MSGPACK_PP_VARIADIC_ELEM_7(e0, e1, e2, e3, e4, e5, e6, e7, ...) e7 +# define MSGPACK_PP_VARIADIC_ELEM_8(e0, e1, e2, e3, e4, e5, e6, e7, e8, ...) e8 +# define MSGPACK_PP_VARIADIC_ELEM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ...) e9 +# define MSGPACK_PP_VARIADIC_ELEM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, ...) e10 +# define MSGPACK_PP_VARIADIC_ELEM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, ...) e11 +# define MSGPACK_PP_VARIADIC_ELEM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, ...) e12 +# define MSGPACK_PP_VARIADIC_ELEM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, ...) e13 +# define MSGPACK_PP_VARIADIC_ELEM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, ...) e14 +# define MSGPACK_PP_VARIADIC_ELEM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, ...) e15 +# define MSGPACK_PP_VARIADIC_ELEM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, ...) e16 +# define MSGPACK_PP_VARIADIC_ELEM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, ...) e17 +# define MSGPACK_PP_VARIADIC_ELEM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, ...) e18 +# define MSGPACK_PP_VARIADIC_ELEM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, ...) e19 +# define MSGPACK_PP_VARIADIC_ELEM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, ...) e20 +# define MSGPACK_PP_VARIADIC_ELEM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, ...) e21 +# define MSGPACK_PP_VARIADIC_ELEM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, ...) e22 +# define MSGPACK_PP_VARIADIC_ELEM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, ...) e23 +# define MSGPACK_PP_VARIADIC_ELEM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, ...) e24 +# define MSGPACK_PP_VARIADIC_ELEM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, ...) e25 +# define MSGPACK_PP_VARIADIC_ELEM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, ...) e26 +# define MSGPACK_PP_VARIADIC_ELEM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, ...) e27 +# define MSGPACK_PP_VARIADIC_ELEM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, ...) e28 +# define MSGPACK_PP_VARIADIC_ELEM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, ...) e29 +# define MSGPACK_PP_VARIADIC_ELEM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, ...) e30 +# define MSGPACK_PP_VARIADIC_ELEM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, ...) e31 +# define MSGPACK_PP_VARIADIC_ELEM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, ...) e32 +# define MSGPACK_PP_VARIADIC_ELEM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, ...) e33 +# define MSGPACK_PP_VARIADIC_ELEM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, ...) e34 +# define MSGPACK_PP_VARIADIC_ELEM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, ...) e35 +# define MSGPACK_PP_VARIADIC_ELEM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, ...) e36 +# define MSGPACK_PP_VARIADIC_ELEM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, ...) e37 +# define MSGPACK_PP_VARIADIC_ELEM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, ...) e38 +# define MSGPACK_PP_VARIADIC_ELEM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, ...) e39 +# define MSGPACK_PP_VARIADIC_ELEM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, ...) e40 +# define MSGPACK_PP_VARIADIC_ELEM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, ...) e41 +# define MSGPACK_PP_VARIADIC_ELEM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, ...) e42 +# define MSGPACK_PP_VARIADIC_ELEM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, ...) e43 +# define MSGPACK_PP_VARIADIC_ELEM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, ...) e44 +# define MSGPACK_PP_VARIADIC_ELEM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, ...) e45 +# define MSGPACK_PP_VARIADIC_ELEM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, ...) e46 +# define MSGPACK_PP_VARIADIC_ELEM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, ...) e47 +# define MSGPACK_PP_VARIADIC_ELEM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, ...) e48 +# define MSGPACK_PP_VARIADIC_ELEM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, ...) e49 +# define MSGPACK_PP_VARIADIC_ELEM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, ...) e50 +# define MSGPACK_PP_VARIADIC_ELEM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, ...) e51 +# define MSGPACK_PP_VARIADIC_ELEM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, ...) e52 +# define MSGPACK_PP_VARIADIC_ELEM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, ...) e53 +# define MSGPACK_PP_VARIADIC_ELEM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, ...) e54 +# define MSGPACK_PP_VARIADIC_ELEM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, ...) e55 +# define MSGPACK_PP_VARIADIC_ELEM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, ...) e56 +# define MSGPACK_PP_VARIADIC_ELEM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, ...) e57 +# define MSGPACK_PP_VARIADIC_ELEM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, ...) e58 +# define MSGPACK_PP_VARIADIC_ELEM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, ...) e59 +# define MSGPACK_PP_VARIADIC_ELEM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, ...) e60 +# define MSGPACK_PP_VARIADIC_ELEM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, ...) e61 +# define MSGPACK_PP_VARIADIC_ELEM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, ...) e62 +# define MSGPACK_PP_VARIADIC_ELEM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, ...) e63 +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/variadic/size.hpp b/third_party/msgpack/include/msgpack/preprocessor/variadic/size.hpp new file mode 100644 index 000000000000..9d81000b1941 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/variadic/size.hpp @@ -0,0 +1,30 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_VARIADIC_SIZE_HPP +# define MSGPACK_PREPROCESSOR_VARIADIC_SIZE_HPP +# +# include +# include +# +# /* MSGPACK_PP_VARIADIC_SIZE */ +# +# if MSGPACK_PP_VARIADICS +# if MSGPACK_PP_VARIADICS_MSVC +# define MSGPACK_PP_VARIADIC_SIZE(...) MSGPACK_PP_CAT(MSGPACK_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,),) +# else +# define MSGPACK_PP_VARIADIC_SIZE(...) MSGPACK_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,) +# endif +# define MSGPACK_PP_VARIADIC_SIZE_I(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, size, ...) size +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/variadic/to_array.hpp b/third_party/msgpack/include/msgpack/preprocessor/variadic/to_array.hpp new file mode 100644 index 000000000000..57439a83708e --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/variadic/to_array.hpp @@ -0,0 +1,32 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_VARIADIC_TO_ARRAY_HPP +# define MSGPACK_PREPROCESSOR_VARIADIC_TO_ARRAY_HPP +# +# include +# include +# if MSGPACK_PP_VARIADICS_MSVC +# include +# endif +# +# /* MSGPACK_PP_VARIADIC_TO_ARRAY */ +# +# if MSGPACK_PP_VARIADICS +# if MSGPACK_PP_VARIADICS_MSVC +# define MSGPACK_PP_VARIADIC_TO_ARRAY(...) MSGPACK_PP_TUPLE_TO_ARRAY_2(MSGPACK_PP_VARIADIC_SIZE(__VA_ARGS__),(__VA_ARGS__)) +# else +# define MSGPACK_PP_VARIADIC_TO_ARRAY(...) MSGPACK_PP_TUPLE_TO_ARRAY((__VA_ARGS__)) +# endif +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/variadic/to_list.hpp b/third_party/msgpack/include/msgpack/preprocessor/variadic/to_list.hpp new file mode 100644 index 000000000000..61ee88eca0d0 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/variadic/to_list.hpp @@ -0,0 +1,25 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_VARIADIC_TO_LIST_HPP +# define MSGPACK_PREPROCESSOR_VARIADIC_TO_LIST_HPP +# +# include +# include +# +# /* MSGPACK_PP_VARIADIC_TO_LIST */ +# +# if MSGPACK_PP_VARIADICS +# define MSGPACK_PP_VARIADIC_TO_LIST(...) MSGPACK_PP_TUPLE_TO_LIST((__VA_ARGS__)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/variadic/to_seq.hpp b/third_party/msgpack/include/msgpack/preprocessor/variadic/to_seq.hpp new file mode 100644 index 000000000000..089c2ae9146d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/variadic/to_seq.hpp @@ -0,0 +1,25 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_VARIADIC_TO_SEQ_HPP +# define MSGPACK_PREPROCESSOR_VARIADIC_TO_SEQ_HPP +# +# include +# include +# +# /* MSGPACK_PP_VARIADIC_TO_SEQ */ +# +# if MSGPACK_PP_VARIADICS +# define MSGPACK_PP_VARIADIC_TO_SEQ(...) MSGPACK_PP_TUPLE_TO_SEQ((__VA_ARGS__)) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/variadic/to_tuple.hpp b/third_party/msgpack/include/msgpack/preprocessor/variadic/to_tuple.hpp new file mode 100644 index 000000000000..ca8d41f0b967 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/variadic/to_tuple.hpp @@ -0,0 +1,24 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2011. * +# * (C) Copyright Paul Mensonides 2011. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_VARIADIC_TO_TUPLE_HPP +# define MSGPACK_PREPROCESSOR_VARIADIC_TO_TUPLE_HPP +# +# include +# +# /* MSGPACK_PP_VARIADIC_TO_TUPLE */ +# +# if MSGPACK_PP_VARIADICS +# define MSGPACK_PP_VARIADIC_TO_TUPLE(...) (__VA_ARGS__) +# endif +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/while.hpp b/third_party/msgpack/include/msgpack/preprocessor/while.hpp new file mode 100644 index 000000000000..86b85f8f899d --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/while.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_WHILE_HPP +# define MSGPACK_PREPROCESSOR_WHILE_HPP +# +# include +# +# endif diff --git a/third_party/msgpack/include/msgpack/preprocessor/wstringize.hpp b/third_party/msgpack/include/msgpack/preprocessor/wstringize.hpp new file mode 100644 index 000000000000..35cf53242d64 --- /dev/null +++ b/third_party/msgpack/include/msgpack/preprocessor/wstringize.hpp @@ -0,0 +1,29 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef MSGPACK_PREPROCESSOR_WSTRINGIZE_HPP +# define MSGPACK_PREPROCESSOR_WSTRINGIZE_HPP +# +# include +# +# /* MSGPACK_PP_WSTRINGIZE */ +# +# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() +# define MSGPACK_PP_WSTRINGIZE(text) MSGPACK_PP_WSTRINGIZE_I(text) +# else +# define MSGPACK_PP_WSTRINGIZE(text) MSGPACK_PP_WSTRINGIZE_OO((text)) +# define MSGPACK_PP_WSTRINGIZE_OO(par) MSGPACK_PP_WSTRINGIZE_I ## par +# endif +# +# define MSGPACK_PP_WSTRINGIZE_I(text) MSGPACK_PP_WSTRINGIZE_II(#text) +# define MSGPACK_PP_WSTRINGIZE_II(str) L ## str +# +# endif diff --git a/third_party/msgpack/include/msgpack/sbuffer.h b/third_party/msgpack/include/msgpack/sbuffer.h new file mode 100644 index 000000000000..c494bae77a5e --- /dev/null +++ b/third_party/msgpack/include/msgpack/sbuffer.h @@ -0,0 +1,110 @@ +/* + * MessagePack for C simple buffer implementation + * + * Copyright (C) 2008-2009 FURUHASHI Sadayuki + * + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ +#ifndef MSGPACK_SBUFFER_H +#define MSGPACK_SBUFFER_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/** + * @defgroup msgpack_sbuffer Simple buffer + * @ingroup msgpack_buffer + * @{ + */ + +typedef struct msgpack_sbuffer { + size_t size; + char* data; + size_t alloc; +} msgpack_sbuffer; + +static inline void msgpack_sbuffer_init(msgpack_sbuffer* sbuf) +{ + memset(sbuf, 0, sizeof(msgpack_sbuffer)); +} + +static inline void msgpack_sbuffer_destroy(msgpack_sbuffer* sbuf) +{ + free(sbuf->data); +} + +static inline msgpack_sbuffer* msgpack_sbuffer_new(void) +{ + return (msgpack_sbuffer*)calloc(1, sizeof(msgpack_sbuffer)); +} + +static inline void msgpack_sbuffer_free(msgpack_sbuffer* sbuf) +{ + if(sbuf == NULL) { return; } + msgpack_sbuffer_destroy(sbuf); + free(sbuf); +} + +#ifndef MSGPACK_SBUFFER_INIT_SIZE +#define MSGPACK_SBUFFER_INIT_SIZE 8192 +#endif + +static inline int msgpack_sbuffer_write(void* data, const char* buf, size_t len) +{ + msgpack_sbuffer* sbuf = (msgpack_sbuffer*)data; + + if(sbuf->alloc - sbuf->size < len) { + void* tmp; + size_t nsize = (sbuf->alloc) ? + sbuf->alloc * 2 : MSGPACK_SBUFFER_INIT_SIZE; + + while(nsize < sbuf->size + len) { + size_t tmp_nsize = nsize * 2; + if (tmp_nsize <= nsize) { + nsize = sbuf->size + len; + break; + } + nsize = tmp_nsize; + } + + tmp = realloc(sbuf->data, nsize); + if(!tmp) { return -1; } + + sbuf->data = (char*)tmp; + sbuf->alloc = nsize; + } + + memcpy(sbuf->data + sbuf->size, buf, len); + sbuf->size += len; + return 0; +} + +static inline char* msgpack_sbuffer_release(msgpack_sbuffer* sbuf) +{ + char* tmp = sbuf->data; + sbuf->size = 0; + sbuf->data = NULL; + sbuf->alloc = 0; + return tmp; +} + +static inline void msgpack_sbuffer_clear(msgpack_sbuffer* sbuf) +{ + sbuf->size = 0; +} + +/** @} */ + + +#ifdef __cplusplus +} +#endif + +#endif /* msgpack/sbuffer.h */ diff --git a/third_party/msgpack/include/msgpack/sbuffer.hpp b/third_party/msgpack/include/msgpack/sbuffer.hpp new file mode 100644 index 000000000000..99f67eab3f0b --- /dev/null +++ b/third_party/msgpack/include/msgpack/sbuffer.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ simple buffer implementation +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_SBUFFER_HPP +#define MSGPACK_SBUFFER_HPP + +#include "msgpack/sbuffer_decl.hpp" + +#include "msgpack/v1/sbuffer.hpp" + +#endif // MSGPACK_SBUFFER_HPP diff --git a/third_party/msgpack/include/msgpack/sbuffer_decl.hpp b/third_party/msgpack/include/msgpack/sbuffer_decl.hpp new file mode 100644 index 000000000000..58efec460bd0 --- /dev/null +++ b/third_party/msgpack/include/msgpack/sbuffer_decl.hpp @@ -0,0 +1,18 @@ +// +// MessagePack for C++ simple buffer implementation +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_SBUFFER_DECL_HPP +#define MSGPACK_SBUFFER_DECL_HPP + +#include "msgpack/v1/sbuffer_decl.hpp" +#include "msgpack/v2/sbuffer_decl.hpp" +#include "msgpack/v3/sbuffer_decl.hpp" + + +#endif // MSGPACK_SBUFFER_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/sysdep.h b/third_party/msgpack/include/msgpack/sysdep.h new file mode 100644 index 000000000000..569ae4cdf7f3 --- /dev/null +++ b/third_party/msgpack/include/msgpack/sysdep.h @@ -0,0 +1,201 @@ +/* + * MessagePack system dependencies + * + * Copyright (C) 2008-2010 FURUHASHI Sadayuki + * + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ +#ifndef MSGPACK_SYSDEP_H +#define MSGPACK_SYSDEP_H + +#include + +#include +#include + +#if defined(_MSC_VER) && _MSC_VER <= 1800 +# define snprintf(buf, len, format,...) _snprintf_s(buf, len, len, format, __VA_ARGS__) +#endif + +#if defined(_MSC_VER) && _MSC_VER < 1600 + typedef signed __int8 int8_t; + typedef unsigned __int8 uint8_t; + typedef signed __int16 int16_t; + typedef unsigned __int16 uint16_t; + typedef signed __int32 int32_t; + typedef unsigned __int32 uint32_t; + typedef signed __int64 int64_t; + typedef unsigned __int64 uint64_t; +#elif defined(_MSC_VER) // && _MSC_VER >= 1600 +# include +#else +# include +# include +#endif + +#if !defined(MSGPACK_DLLEXPORT) +#if defined(_MSC_VER) +# define MSGPACK_DLLEXPORT __declspec(dllexport) +#else /* _MSC_VER */ +# define MSGPACK_DLLEXPORT +#endif /* _MSC_VER */ +#endif + +#ifdef _WIN32 +# define _msgpack_atomic_counter_header +# if !defined(WIN32_LEAN_AND_MEAN) +# define WIN32_LEAN_AND_MEAN +# endif /* WIN32_LEAN_AND_MEAN */ + typedef long _msgpack_atomic_counter_t; +# define _msgpack_sync_decr_and_fetch(ptr) InterlockedDecrement(ptr) +# define _msgpack_sync_incr_and_fetch(ptr) InterlockedIncrement(ptr) +#elif defined(__GNUC__) && ((__GNUC__*10 + __GNUC_MINOR__) < 41) + +# if defined(__cplusplus) +# define _msgpack_atomic_counter_header "msgpack/gcc_atomic.hpp" +# else +# define _msgpack_atomic_counter_header "msgpack/gcc_atomic.h" +# endif + +#else + typedef unsigned int _msgpack_atomic_counter_t; +# define _msgpack_sync_decr_and_fetch(ptr) __sync_sub_and_fetch(ptr, 1) +# define _msgpack_sync_incr_and_fetch(ptr) __sync_add_and_fetch(ptr, 1) +#endif + +#ifdef _WIN32 + +# ifdef __cplusplus + /* numeric_limits::min,max */ +# ifdef max +# undef max +# endif +# ifdef min +# undef min +# endif +# endif + +#elif defined(unix) || defined(__unix) || defined(__APPLE__) || defined(__OpenBSD__) + +#include /* __BYTE_ORDER */ +# if defined(linux) +# include +# endif + +#endif + +#if MSGPACK_ENDIAN_LITTLE_BYTE + +# if defined(unix) || defined(__unix) || defined(__APPLE__) || defined(__OpenBSD__) +# define _msgpack_be16(x) ntohs(x) +# else +# if defined(ntohs) +# define _msgpack_be16(x) ntohs(x) +# elif defined(_byteswap_ushort) || (defined(_MSC_VER) && _MSC_VER >= 1400) +# define _msgpack_be16(x) ((uint16_t)_byteswap_ushort((unsigned short)x)) +# else +# define _msgpack_be16(x) ( \ + ((((uint16_t)x) << 8) ) | \ + ((((uint16_t)x) >> 8) ) ) +# endif +# endif + +# if defined(unix) || defined(__unix) || defined(__APPLE__) || defined(__OpenBSD__) +# define _msgpack_be32(x) ntohl(x) +# else +# if defined(ntohl) +# define _msgpack_be32(x) ntohl(x) +# elif defined(_byteswap_ulong) || (defined(_MSC_VER) && _MSC_VER >= 1400) +# define _msgpack_be32(x) ((uint32_t)_byteswap_ulong((unsigned long)x)) +# else +# define _msgpack_be32(x) \ + ( ((((uint32_t)x) << 24) ) | \ + ((((uint32_t)x) << 8) & 0x00ff0000U ) | \ + ((((uint32_t)x) >> 8) & 0x0000ff00U ) | \ + ((((uint32_t)x) >> 24) ) ) +# endif +# endif + +# if defined(_byteswap_uint64) || (defined(_MSC_VER) && _MSC_VER >= 1400) +# define _msgpack_be64(x) (_byteswap_uint64(x)) +# elif defined(bswap_64) +# define _msgpack_be64(x) bswap_64(x) +# elif defined(__DARWIN_OSSwapInt64) +# define _msgpack_be64(x) __DARWIN_OSSwapInt64(x) +# else +# define _msgpack_be64(x) \ + ( ((((uint64_t)x) << 56) ) | \ + ((((uint64_t)x) << 40) & 0x00ff000000000000ULL ) | \ + ((((uint64_t)x) << 24) & 0x0000ff0000000000ULL ) | \ + ((((uint64_t)x) << 8) & 0x000000ff00000000ULL ) | \ + ((((uint64_t)x) >> 8) & 0x00000000ff000000ULL ) | \ + ((((uint64_t)x) >> 24) & 0x0000000000ff0000ULL ) | \ + ((((uint64_t)x) >> 40) & 0x000000000000ff00ULL ) | \ + ((((uint64_t)x) >> 56) ) ) +# endif + +#elif MSGPACK_ENDIAN_BIG_BYTE + +# define _msgpack_be16(x) (x) +# define _msgpack_be32(x) (x) +# define _msgpack_be64(x) (x) + +#else +# error msgpack-c supports only big endian and little endian +#endif /* MSGPACK_ENDIAN_LITTLE_BYTE */ + +#define _msgpack_load16(cast, from, to) do { \ + memcpy((cast*)(to), (from), sizeof(cast)); \ + *(to) = _msgpack_be16(*(to)); \ + } while (0); + +#define _msgpack_load32(cast, from, to) do { \ + memcpy((cast*)(to), (from), sizeof(cast)); \ + *(to) = _msgpack_be32(*(to)); \ + } while (0); +#define _msgpack_load64(cast, from, to) do { \ + memcpy((cast*)(to), (from), sizeof(cast)); \ + *(to) = _msgpack_be64(*(to)); \ + } while (0); + +#define _msgpack_store16(to, num) \ + do { uint16_t val = _msgpack_be16(num); memcpy(to, &val, 2); } while(0) +#define _msgpack_store32(to, num) \ + do { uint32_t val = _msgpack_be32(num); memcpy(to, &val, 4); } while(0) +#define _msgpack_store64(to, num) \ + do { uint64_t val = _msgpack_be64(num); memcpy(to, &val, 8); } while(0) + +/* +#define _msgpack_load16(cast, from) \ + ({ cast val; memcpy(&val, (char*)from, 2); _msgpack_be16(val); }) +#define _msgpack_load32(cast, from) \ + ({ cast val; memcpy(&val, (char*)from, 4); _msgpack_be32(val); }) +#define _msgpack_load64(cast, from) \ + ({ cast val; memcpy(&val, (char*)from, 8); _msgpack_be64(val); }) +*/ + + +#if !defined(__cplusplus) && defined(_MSC_VER) +# if !defined(FALSE) +# define FALSE (0) +# endif +# if !defined(TRUE) +# define TRUE (!FALSE) +# endif +# if _MSC_VER >= 1800 +# include +# else +# define bool int +# define true TRUE +# define false FALSE +# endif +# define inline __inline +#endif + +#ifdef __APPLE__ +# include +#endif + +#endif /* msgpack/sysdep.h */ diff --git a/third_party/msgpack/include/msgpack/timestamp.h b/third_party/msgpack/include/msgpack/timestamp.h new file mode 100644 index 000000000000..4d7df83d09a8 --- /dev/null +++ b/third_party/msgpack/include/msgpack/timestamp.h @@ -0,0 +1,54 @@ +/* + * MessagePack for C TimeStamp + * + * Copyright (C) 2018 KONDO Takatoshi + * + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ +#ifndef MSGPACK_TIMESTAMP_H +#define MSGPACK_TIMESTAMP_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct msgpack_timestamp { + int64_t tv_sec; + uint32_t tv_nsec; +} msgpack_timestamp; + +static inline bool msgpack_object_to_timestamp(const msgpack_object* obj, msgpack_timestamp* ts) { + if (obj->type != MSGPACK_OBJECT_EXT) return false; + if (obj->via.ext.type != -1) return false; + switch (obj->via.ext.size) { + case 4: + ts->tv_nsec = 0; + _msgpack_load32(uint32_t, obj->via.ext.ptr, &ts->tv_sec); + return true; + case 8: { + uint64_t value; + _msgpack_load64(uint64_t, obj->via.ext.ptr, &value); + ts->tv_nsec = (uint32_t)(value >> 34); + ts->tv_sec = value & 0x00000003ffffffffL; + return true; + } + case 12: + _msgpack_load32(uint32_t, obj->via.ext.ptr, &ts->tv_nsec); + _msgpack_load64(int64_t, obj->via.ext.ptr + 4, &ts->tv_sec); + return true; + default: + return false; + } +} + + +#ifdef __cplusplus +} +#endif + +#endif /* msgpack/timestamp.h */ diff --git a/third_party/msgpack/include/msgpack/type.hpp b/third_party/msgpack/include/msgpack/type.hpp new file mode 100644 index 000000000000..1a866c5684e5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/type.hpp @@ -0,0 +1,68 @@ +#include "cpp_config.hpp" +#include "adaptor/array_ref.hpp" +#include "adaptor/bool.hpp" +#include "adaptor/carray.hpp" +#include "adaptor/char_ptr.hpp" +#include "adaptor/deque.hpp" +#include "adaptor/ext.hpp" +#include "adaptor/fixint.hpp" +#include "adaptor/float.hpp" +#include "adaptor/int.hpp" +#include "adaptor/list.hpp" +#include "adaptor/map.hpp" +#include "adaptor/nil.hpp" +#include "adaptor/pair.hpp" +#include "adaptor/raw.hpp" +#include "adaptor/v4raw.hpp" +#include "adaptor/set.hpp" +#include "adaptor/size_equal_only.hpp" +#include "adaptor/string.hpp" +#include "adaptor/vector.hpp" +#include "adaptor/vector_bool.hpp" +#include "adaptor/vector_char.hpp" +#include "adaptor/vector_unsigned_char.hpp" +#include "adaptor/msgpack_tuple.hpp" +#include "adaptor/define.hpp" + +#if defined(MSGPACK_USE_CPP03) + +#include "adaptor/tr1/unordered_map.hpp" +#include "adaptor/tr1/unordered_set.hpp" + +#else // defined(MSGPACK_USE_CPP03) + +#include "adaptor/cpp11/array.hpp" +#include "adaptor/cpp11/array_char.hpp" +#include "adaptor/cpp11/array_unsigned_char.hpp" +#include "adaptor/cpp11/chrono.hpp" +#include "adaptor/cpp11/forward_list.hpp" +#include "adaptor/cpp11/reference_wrapper.hpp" +#include "adaptor/cpp11/shared_ptr.hpp" +#include "adaptor/cpp11/tuple.hpp" +#include "adaptor/cpp11/unique_ptr.hpp" +#include "adaptor/cpp11/unordered_map.hpp" +#include "adaptor/cpp11/unordered_set.hpp" + +#if MSGPACK_HAS_INCLUDE() +#include "adaptor/cpp17/optional.hpp" +#endif // MSGPACK_HAS_INCLUDE() + +#if MSGPACK_HAS_INCLUDE() +#include "adaptor/cpp17/string_view.hpp" +#endif // MSGPACK_HAS_INCLUDE() + +#include "adaptor/cpp17/byte.hpp" +#include "adaptor/cpp17/carray_byte.hpp" +#include "adaptor/cpp17/vector_byte.hpp" + +#endif // defined(MSGPACK_USE_CPP03) + +#if defined(MSGPACK_USE_BOOST) + +#include "adaptor/boost/fusion.hpp" +#include "adaptor/boost/msgpack_variant.hpp" +#include "adaptor/boost/optional.hpp" +#include "adaptor/boost/string_ref.hpp" +#include "adaptor/boost/string_view.hpp" + +#endif // defined(MSGPACK_USE_BOOST) diff --git a/third_party/msgpack/include/msgpack/unpack.h b/third_party/msgpack/include/msgpack/unpack.h new file mode 100644 index 000000000000..036d575ebade --- /dev/null +++ b/third_party/msgpack/include/msgpack/unpack.h @@ -0,0 +1,281 @@ +/* + * MessagePack for C unpacking routine + * + * Copyright (C) 2008-2009 FURUHASHI Sadayuki + * + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ +#ifndef MSGPACK_UNPACKER_H +#define MSGPACK_UNPACKER_H + +#include "zone.h" +#include "object.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/** + * @defgroup msgpack_unpack Deserializer + * @ingroup msgpack + * @{ + */ + +typedef struct msgpack_unpacked { + msgpack_zone* zone; + msgpack_object data; +} msgpack_unpacked; + +typedef enum { + MSGPACK_UNPACK_SUCCESS = 2, + MSGPACK_UNPACK_EXTRA_BYTES = 1, + MSGPACK_UNPACK_CONTINUE = 0, + MSGPACK_UNPACK_PARSE_ERROR = -1, + MSGPACK_UNPACK_NOMEM_ERROR = -2 +} msgpack_unpack_return; + + +MSGPACK_DLLEXPORT +msgpack_unpack_return +msgpack_unpack_next(msgpack_unpacked* result, + const char* data, size_t len, size_t* off); + +/** @} */ + + +/** + * @defgroup msgpack_unpacker Streaming deserializer + * @ingroup msgpack + * @{ + */ + +typedef struct msgpack_unpacker { + char* buffer; + size_t used; + size_t free; + size_t off; + size_t parsed; + msgpack_zone* z; + size_t initial_buffer_size; + void* ctx; +} msgpack_unpacker; + + +#ifndef MSGPACK_UNPACKER_INIT_BUFFER_SIZE +#define MSGPACK_UNPACKER_INIT_BUFFER_SIZE (64*1024) +#endif + +/** + * Initializes a streaming deserializer. + * The initialized deserializer must be destroyed by msgpack_unpacker_destroy(msgpack_unpacker*). + */ +MSGPACK_DLLEXPORT +bool msgpack_unpacker_init(msgpack_unpacker* mpac, size_t initial_buffer_size); + +/** + * Destroys a streaming deserializer initialized by msgpack_unpacker_init(msgpack_unpacker*, size_t). + */ +MSGPACK_DLLEXPORT +void msgpack_unpacker_destroy(msgpack_unpacker* mpac); + + +/** + * Creates a streaming deserializer. + * The created deserializer must be destroyed by msgpack_unpacker_free(msgpack_unpacker*). + */ +MSGPACK_DLLEXPORT +msgpack_unpacker* msgpack_unpacker_new(size_t initial_buffer_size); + +/** + * Frees a streaming deserializer created by msgpack_unpacker_new(size_t). + */ +MSGPACK_DLLEXPORT +void msgpack_unpacker_free(msgpack_unpacker* mpac); + + +#ifndef MSGPACK_UNPACKER_RESERVE_SIZE +#define MSGPACK_UNPACKER_RESERVE_SIZE (32*1024) +#endif + +/** + * Reserves free space of the internal buffer. + * Use this function to fill the internal buffer with + * msgpack_unpacker_buffer(msgpack_unpacker*), + * msgpack_unpacker_buffer_capacity(const msgpack_unpacker*) and + * msgpack_unpacker_buffer_consumed(msgpack_unpacker*). + */ +static inline bool msgpack_unpacker_reserve_buffer(msgpack_unpacker* mpac, size_t size); + +/** + * Gets pointer to the free space of the internal buffer. + * Use this function to fill the internal buffer with + * msgpack_unpacker_reserve_buffer(msgpack_unpacker*, size_t), + * msgpack_unpacker_buffer_capacity(const msgpack_unpacker*) and + * msgpack_unpacker_buffer_consumed(msgpack_unpacker*). + */ +static inline char* msgpack_unpacker_buffer(msgpack_unpacker* mpac); + +/** + * Gets size of the free space of the internal buffer. + * Use this function to fill the internal buffer with + * msgpack_unpacker_reserve_buffer(msgpack_unpacker*, size_t), + * msgpack_unpacker_buffer(const msgpack_unpacker*) and + * msgpack_unpacker_buffer_consumed(msgpack_unpacker*). + */ +static inline size_t msgpack_unpacker_buffer_capacity(const msgpack_unpacker* mpac); + +/** + * Notifies the deserializer that the internal buffer filled. + * Use this function to fill the internal buffer with + * msgpack_unpacker_reserve_buffer(msgpack_unpacker*, size_t), + * msgpack_unpacker_buffer(msgpack_unpacker*) and + * msgpack_unpacker_buffer_capacity(const msgpack_unpacker*). + */ +static inline void msgpack_unpacker_buffer_consumed(msgpack_unpacker* mpac, size_t size); + + +/** + * Deserializes one object. + * Returns true if it successes. Otherwise false is returned. + * @param pac pointer to an initialized msgpack_unpacked object. + */ +MSGPACK_DLLEXPORT +msgpack_unpack_return msgpack_unpacker_next(msgpack_unpacker* mpac, msgpack_unpacked* pac); + +/** + * Deserializes one object and set the number of parsed bytes involved. + * Returns true if it successes. Otherwise false is returned. + * @param mpac pointer to an initialized msgpack_unpacker object. + * @param result pointer to an initialized msgpack_unpacked object. + * @param p_bytes pointer to variable that will be set with the number of parsed bytes. + */ +MSGPACK_DLLEXPORT +msgpack_unpack_return msgpack_unpacker_next_with_size(msgpack_unpacker* mpac, + msgpack_unpacked* result, + size_t *p_bytes); + +/** + * Initializes a msgpack_unpacked object. + * The initialized object must be destroyed by msgpack_unpacked_destroy(msgpack_unpacker*). + * Use the object with msgpack_unpacker_next(msgpack_unpacker*, msgpack_unpacked*) or + * msgpack_unpack_next(msgpack_unpacked*, const char*, size_t, size_t*). + */ +static inline void msgpack_unpacked_init(msgpack_unpacked* result); + +/** + * Destroys a streaming deserializer initialized by msgpack_unpacked(). + */ +static inline void msgpack_unpacked_destroy(msgpack_unpacked* result); + +/** + * Releases the memory zone from msgpack_unpacked object. + * The released zone must be freed by msgpack_zone_free(msgpack_zone*). + */ +static inline msgpack_zone* msgpack_unpacked_release_zone(msgpack_unpacked* result); + + +MSGPACK_DLLEXPORT +int msgpack_unpacker_execute(msgpack_unpacker* mpac); + +MSGPACK_DLLEXPORT +msgpack_object msgpack_unpacker_data(msgpack_unpacker* mpac); + +MSGPACK_DLLEXPORT +msgpack_zone* msgpack_unpacker_release_zone(msgpack_unpacker* mpac); + +MSGPACK_DLLEXPORT +void msgpack_unpacker_reset_zone(msgpack_unpacker* mpac); + +MSGPACK_DLLEXPORT +void msgpack_unpacker_reset(msgpack_unpacker* mpac); + +static inline size_t msgpack_unpacker_message_size(const msgpack_unpacker* mpac); + + +/** @} */ + + +// obsolete +MSGPACK_DLLEXPORT +msgpack_unpack_return +msgpack_unpack(const char* data, size_t len, size_t* off, + msgpack_zone* result_zone, msgpack_object* result); + + + + +static inline size_t msgpack_unpacker_parsed_size(const msgpack_unpacker* mpac); + +MSGPACK_DLLEXPORT +bool msgpack_unpacker_flush_zone(msgpack_unpacker* mpac); + +MSGPACK_DLLEXPORT +bool msgpack_unpacker_expand_buffer(msgpack_unpacker* mpac, size_t size); + +static inline bool msgpack_unpacker_reserve_buffer(msgpack_unpacker* mpac, size_t size) +{ + if(mpac->free >= size) { return true; } + return msgpack_unpacker_expand_buffer(mpac, size); +} + +static inline char* msgpack_unpacker_buffer(msgpack_unpacker* mpac) +{ + return mpac->buffer + mpac->used; +} + +static inline size_t msgpack_unpacker_buffer_capacity(const msgpack_unpacker* mpac) +{ + return mpac->free; +} + +static inline void msgpack_unpacker_buffer_consumed(msgpack_unpacker* mpac, size_t size) +{ + mpac->used += size; + mpac->free -= size; +} + +static inline size_t msgpack_unpacker_message_size(const msgpack_unpacker* mpac) +{ + return mpac->parsed - mpac->off + mpac->used; +} + +static inline size_t msgpack_unpacker_parsed_size(const msgpack_unpacker* mpac) +{ + return mpac->parsed; +} + + +static inline void msgpack_unpacked_init(msgpack_unpacked* result) +{ + memset(result, 0, sizeof(msgpack_unpacked)); +} + +static inline void msgpack_unpacked_destroy(msgpack_unpacked* result) +{ + if(result->zone != NULL) { + msgpack_zone_free(result->zone); + result->zone = NULL; + memset(&result->data, 0, sizeof(msgpack_object)); + } +} + +static inline msgpack_zone* msgpack_unpacked_release_zone(msgpack_unpacked* result) +{ + if(result->zone != NULL) { + msgpack_zone* z = result->zone; + result->zone = NULL; + return z; + } + return NULL; +} + + +#ifdef __cplusplus +} +#endif + +#endif /* msgpack/unpack.h */ diff --git a/third_party/msgpack/include/msgpack/unpack.hpp b/third_party/msgpack/include/msgpack/unpack.hpp new file mode 100644 index 000000000000..d1e429296887 --- /dev/null +++ b/third_party/msgpack/include/msgpack/unpack.hpp @@ -0,0 +1,19 @@ +// +// MessagePack for C++ deserializing routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_UNPACK_HPP +#define MSGPACK_UNPACK_HPP + +#include "msgpack/unpack_decl.hpp" + +#include "msgpack/v1/unpack.hpp" +#include "msgpack/v2/unpack.hpp" +#include "msgpack/v3/unpack.hpp" + +#endif // MSGPACK_UNPACK_HPP diff --git a/third_party/msgpack/include/msgpack/unpack_decl.hpp b/third_party/msgpack/include/msgpack/unpack_decl.hpp new file mode 100644 index 000000000000..69a751d0306a --- /dev/null +++ b/third_party/msgpack/include/msgpack/unpack_decl.hpp @@ -0,0 +1,17 @@ +// +// MessagePack for C++ deserializing routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_UNPACK_DECL_HPP +#define MSGPACK_UNPACK_DECL_HPP + +#include "msgpack/v1/unpack_decl.hpp" +#include "msgpack/v2/unpack_decl.hpp" +#include "msgpack/v3/unpack_decl.hpp" + +#endif // MSGPACK_UNPACK_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/unpack_define.h b/third_party/msgpack/include/msgpack/unpack_define.h new file mode 100644 index 000000000000..c7decf65994a --- /dev/null +++ b/third_party/msgpack/include/msgpack/unpack_define.h @@ -0,0 +1,89 @@ +/* + * MessagePack unpacking routine template + * + * Copyright (C) 2008-2010 FURUHASHI Sadayuki + * + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ +#ifndef MSGPACK_UNPACK_DEFINE_H +#define MSGPACK_UNPACK_DEFINE_H + +#include "msgpack/sysdep.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +#ifndef MSGPACK_EMBED_STACK_SIZE +#define MSGPACK_EMBED_STACK_SIZE 32 +#endif + + +typedef enum { + MSGPACK_CS_HEADER = 0x00, // nil + + //MSGPACK_CS_ = 0x01, + //MSGPACK_CS_ = 0x02, // false + //MSGPACK_CS_ = 0x03, // true + + MSGPACK_CS_BIN_8 = 0x04, + MSGPACK_CS_BIN_16 = 0x05, + MSGPACK_CS_BIN_32 = 0x06, + + MSGPACK_CS_EXT_8 = 0x07, + MSGPACK_CS_EXT_16 = 0x08, + MSGPACK_CS_EXT_32 = 0x09, + + MSGPACK_CS_FLOAT = 0x0a, + MSGPACK_CS_DOUBLE = 0x0b, + MSGPACK_CS_UINT_8 = 0x0c, + MSGPACK_CS_UINT_16 = 0x0d, + MSGPACK_CS_UINT_32 = 0x0e, + MSGPACK_CS_UINT_64 = 0x0f, + MSGPACK_CS_INT_8 = 0x10, + MSGPACK_CS_INT_16 = 0x11, + MSGPACK_CS_INT_32 = 0x12, + MSGPACK_CS_INT_64 = 0x13, + + MSGPACK_CS_FIXEXT_1 = 0x14, + MSGPACK_CS_FIXEXT_2 = 0x15, + MSGPACK_CS_FIXEXT_4 = 0x16, + MSGPACK_CS_FIXEXT_8 = 0x17, + MSGPACK_CS_FIXEXT_16 = 0x18, + + MSGPACK_CS_STR_8 = 0x19, // str8 + MSGPACK_CS_STR_16 = 0x1a, // str16 + MSGPACK_CS_STR_32 = 0x1b, // str32 + MSGPACK_CS_ARRAY_16 = 0x1c, + MSGPACK_CS_ARRAY_32 = 0x1d, + MSGPACK_CS_MAP_16 = 0x1e, + MSGPACK_CS_MAP_32 = 0x1f, + + //MSGPACK_ACS_BIG_INT_VALUE, + //MSGPACK_ACS_BIG_FLOAT_VALUE, + MSGPACK_ACS_STR_VALUE, + MSGPACK_ACS_BIN_VALUE, + MSGPACK_ACS_EXT_VALUE +} msgpack_unpack_state; + + +typedef enum { + MSGPACK_CT_ARRAY_ITEM, + MSGPACK_CT_MAP_KEY, + MSGPACK_CT_MAP_VALUE +} msgpack_container_type; + + +#ifdef __cplusplus +} +#endif + +#endif /* msgpack/unpack_define.h */ + diff --git a/third_party/msgpack/include/msgpack/unpack_exception.hpp b/third_party/msgpack/include/msgpack/unpack_exception.hpp new file mode 100644 index 000000000000..fa28f749776d --- /dev/null +++ b/third_party/msgpack/include/msgpack/unpack_exception.hpp @@ -0,0 +1,15 @@ +// +// MessagePack for C++ deserializing routine +// +// Copyright (C) 2017 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_UNPACK_EXCEPTION_HPP +#define MSGPACK_UNPACK_EXCEPTION_HPP + +#include "msgpack/v1/unpack_exception.hpp" + +#endif // MSGPACK_UNPACK_EXCEPTION_HPP diff --git a/third_party/msgpack/include/msgpack/unpack_template.h b/third_party/msgpack/include/msgpack/unpack_template.h new file mode 100644 index 000000000000..e557bb6df9cc --- /dev/null +++ b/third_party/msgpack/include/msgpack/unpack_template.h @@ -0,0 +1,466 @@ +/* + * MessagePack unpacking routine template + * + * Copyright (C) 2008-2010 FURUHASHI Sadayuki + * + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ + +#ifndef msgpack_unpack_func +#error msgpack_unpack_func template is not defined +#endif + +#ifndef msgpack_unpack_callback +#error msgpack_unpack_callback template is not defined +#endif + +#ifndef msgpack_unpack_struct +#error msgpack_unpack_struct template is not defined +#endif + +#ifndef msgpack_unpack_struct_decl +#define msgpack_unpack_struct_decl(name) msgpack_unpack_struct(name) +#endif + +#ifndef msgpack_unpack_object +#error msgpack_unpack_object type is not defined +#endif + +#ifndef msgpack_unpack_user +#error msgpack_unpack_user type is not defined +#endif + +#ifndef USE_CASE_RANGE +#if !defined(_MSC_VER) +#define USE_CASE_RANGE +#endif +#endif + +msgpack_unpack_struct_decl(_stack) { + msgpack_unpack_object obj; + size_t count; + unsigned int ct; + msgpack_unpack_object map_key; +}; + +msgpack_unpack_struct_decl(_context) { + msgpack_unpack_user user; + unsigned int cs; + unsigned int trail; + unsigned int top; + /* + msgpack_unpack_struct(_stack)* stack; + unsigned int stack_size; + msgpack_unpack_struct(_stack) embed_stack[MSGPACK_EMBED_STACK_SIZE]; + */ + msgpack_unpack_struct(_stack) stack[MSGPACK_EMBED_STACK_SIZE]; +}; + + +msgpack_unpack_func(void, _init)(msgpack_unpack_struct(_context)* ctx) +{ + ctx->cs = MSGPACK_CS_HEADER; + ctx->trail = 0; + ctx->top = 0; + /* + ctx->stack = ctx->embed_stack; + ctx->stack_size = MSGPACK_EMBED_STACK_SIZE; + */ + ctx->stack[0].obj = msgpack_unpack_callback(_root)(&ctx->user); +} + +/* +msgpack_unpack_func(void, _destroy)(msgpack_unpack_struct(_context)* ctx) +{ + if(ctx->stack_size != MSGPACK_EMBED_STACK_SIZE) { + free(ctx->stack); + } +} +*/ + +msgpack_unpack_func(msgpack_unpack_object, _data)(msgpack_unpack_struct(_context)* ctx) +{ + return (ctx)->stack[0].obj; +} + + +msgpack_unpack_func(int, _execute)(msgpack_unpack_struct(_context)* ctx, const char* data, size_t len, size_t* off) +{ + assert(len >= *off); + { + const unsigned char* p = (unsigned char*)data + *off; + const unsigned char* const pe = (unsigned char*)data + len; + const void* n = NULL; + + unsigned int trail = ctx->trail; + unsigned int cs = ctx->cs; + unsigned int top = ctx->top; + msgpack_unpack_struct(_stack)* stack = ctx->stack; + /* + unsigned int stack_size = ctx->stack_size; + */ + msgpack_unpack_user* user = &ctx->user; + + msgpack_unpack_object obj; + msgpack_unpack_struct(_stack)* c = NULL; + + int ret; + +#define push_simple_value(func) \ + ret = msgpack_unpack_callback(func)(user, &obj); \ + if(ret < 0) { goto _failed; } \ + goto _push +#define push_fixed_value(func, arg) \ + ret = msgpack_unpack_callback(func)(user, arg, &obj); \ + if(ret < 0) { goto _failed; } \ + goto _push +#define push_variable_value(func, base, pos, len) \ + ret = msgpack_unpack_callback(func)(user, \ + (const char*)base, (const char*)pos, len, &obj); \ + if(ret < 0) { goto _failed; } \ + goto _push + +#define again_fixed_trail(_cs, trail_len) \ + trail = trail_len; \ + cs = _cs; \ + goto _fixed_trail_again +#define again_fixed_trail_if_zero(_cs, trail_len, ifzero) \ + trail = trail_len; \ + if(trail == 0) { goto ifzero; } \ + cs = _cs; \ + goto _fixed_trail_again + +#define start_container(func, count_, ct_) \ + if(top >= MSGPACK_EMBED_STACK_SIZE) { \ + ret = MSGPACK_UNPACK_NOMEM_ERROR; \ + goto _failed; \ + } /* FIXME */ \ + ret = msgpack_unpack_callback(func)(user, count_, &stack[top].obj); \ + if(ret < 0) { goto _failed; } \ + if((count_) == 0) { obj = stack[top].obj; goto _push; } \ + stack[top].ct = ct_; \ + stack[top].count = count_; \ + ++top; \ + goto _header_again + +#define NEXT_CS(p) \ + ((unsigned int)*p & 0x1f) + +#ifdef USE_CASE_RANGE +#define SWITCH_RANGE_BEGIN switch(*p) { +#define SWITCH_RANGE(FROM, TO) case FROM ... TO: +#define SWITCH_RANGE_DEFAULT default: +#define SWITCH_RANGE_END } +#else +#define SWITCH_RANGE_BEGIN { if(0) { +#define SWITCH_RANGE(FROM, TO) } else if(FROM <= *p && *p <= TO) { +#define SWITCH_RANGE_DEFAULT } else { +#define SWITCH_RANGE_END } } +#endif + + if(p == pe) { goto _out; } + do { + switch(cs) { + case MSGPACK_CS_HEADER: + SWITCH_RANGE_BEGIN + SWITCH_RANGE(0x00, 0x7f) // Positive Fixnum + push_fixed_value(_uint8, *(uint8_t*)p); + SWITCH_RANGE(0xe0, 0xff) // Negative Fixnum + push_fixed_value(_int8, *(int8_t*)p); + SWITCH_RANGE(0xc0, 0xdf) // Variable + switch(*p) { + case 0xc0: // nil + push_simple_value(_nil); + //case 0xc1: // string + // again_terminal_trail(NEXT_CS(p), p+1); + case 0xc2: // false + push_simple_value(_false); + case 0xc3: // true + push_simple_value(_true); + case 0xc4: // bin 8 + case 0xc5: // bin 16 + case 0xc6: // bin 32 + again_fixed_trail(NEXT_CS(p), 1 << (((unsigned int)*p) & 0x03)); + case 0xc7: // ext 8 + case 0xc8: // ext 16 + case 0xc9: // ext 32 + again_fixed_trail(NEXT_CS(p), 1 << ((((unsigned int)*p) + 1) & 0x03)); + case 0xca: // float + case 0xcb: // double + case 0xcc: // unsigned int 8 + case 0xcd: // unsigned int 16 + case 0xce: // unsigned int 32 + case 0xcf: // unsigned int 64 + case 0xd0: // signed int 8 + case 0xd1: // signed int 16 + case 0xd2: // signed int 32 + case 0xd3: // signed int 64 + again_fixed_trail(NEXT_CS(p), 1 << (((unsigned int)*p) & 0x03)); + case 0xd4: // fixext 1 + case 0xd5: // fixext 2 + case 0xd6: // fixext 4 + case 0xd7: // fixext 8 + again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, + (1 << (((unsigned int)*p) & 0x03)) + 1, _ext_zero); + case 0xd8: // fixext 16 + again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 16+1, _ext_zero); + + case 0xd9: // str 8 + case 0xda: // str 16 + case 0xdb: // str 32 + again_fixed_trail(NEXT_CS(p), 1 << ((((unsigned int)*p) & 0x03) - 1)); + case 0xdc: // array 16 + case 0xdd: // array 32 + case 0xde: // map 16 + case 0xdf: // map 32 + again_fixed_trail(NEXT_CS(p), 2u << (((unsigned int)*p) & 0x01)); + default: + ret = MSGPACK_UNPACK_PARSE_ERROR; + goto _failed; + } + SWITCH_RANGE(0xa0, 0xbf) // FixStr + again_fixed_trail_if_zero(MSGPACK_ACS_STR_VALUE, ((unsigned int)*p & 0x1f), _str_zero); + SWITCH_RANGE(0x90, 0x9f) // FixArray + start_container(_array, ((unsigned int)*p) & 0x0f, MSGPACK_CT_ARRAY_ITEM); + SWITCH_RANGE(0x80, 0x8f) // FixMap + start_container(_map, ((unsigned int)*p) & 0x0f, MSGPACK_CT_MAP_KEY); + + SWITCH_RANGE_DEFAULT + ret = MSGPACK_UNPACK_PARSE_ERROR; + goto _failed; + SWITCH_RANGE_END + // end MSGPACK_CS_HEADER + + + _fixed_trail_again: + ++p; + // fallthrough + + default: + if((size_t)(pe - p) < trail) { goto _out; } + n = p; p += trail - 1; + switch(cs) { + //case MSGPACK_CS_ + //case MSGPACK_CS_ + case MSGPACK_CS_FLOAT: { + union { uint32_t i; float f; } mem; + _msgpack_load32(uint32_t, n, &mem.i); + push_fixed_value(_float, mem.f); } + case MSGPACK_CS_DOUBLE: { + union { uint64_t i; double f; } mem; + _msgpack_load64(uint64_t, n, &mem.i); +#if defined(TARGET_OS_IPHONE) + // ok +#elif defined(__arm__) && !(__ARM_EABI__) // arm-oabi + // https://github.com/msgpack/msgpack-perl/pull/1 + mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL); +#endif + push_fixed_value(_double, mem.f); } + case MSGPACK_CS_UINT_8: + push_fixed_value(_uint8, *(uint8_t*)n); + case MSGPACK_CS_UINT_16:{ + uint16_t tmp; + _msgpack_load16(uint16_t,n,&tmp); + push_fixed_value(_uint16, tmp); + } + case MSGPACK_CS_UINT_32:{ + uint32_t tmp; + _msgpack_load32(uint32_t,n,&tmp); + push_fixed_value(_uint32, tmp); + } + case MSGPACK_CS_UINT_64:{ + uint64_t tmp; + _msgpack_load64(uint64_t,n,&tmp); + push_fixed_value(_uint64, tmp); + } + case MSGPACK_CS_INT_8: + push_fixed_value(_int8, *(int8_t*)n); + case MSGPACK_CS_INT_16:{ + int16_t tmp; + _msgpack_load16(int16_t,n,&tmp); + push_fixed_value(_int16, tmp); + } + case MSGPACK_CS_INT_32:{ + int32_t tmp; + _msgpack_load32(int32_t,n,&tmp); + push_fixed_value(_int32, tmp); + } + case MSGPACK_CS_INT_64:{ + int64_t tmp; + _msgpack_load64(int64_t,n,&tmp); + push_fixed_value(_int64, tmp); + } + case MSGPACK_CS_FIXEXT_1: + again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 1+1, _ext_zero); + case MSGPACK_CS_FIXEXT_2: + again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 2+1, _ext_zero); + case MSGPACK_CS_FIXEXT_4: + again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 4+1, _ext_zero); + case MSGPACK_CS_FIXEXT_8: + again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 8+1, _ext_zero); + case MSGPACK_CS_FIXEXT_16: + again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 16+1, _ext_zero); + case MSGPACK_CS_STR_8: + again_fixed_trail_if_zero(MSGPACK_ACS_STR_VALUE, *(uint8_t*)n, _str_zero); + case MSGPACK_CS_BIN_8: + again_fixed_trail_if_zero(MSGPACK_ACS_BIN_VALUE, *(uint8_t*)n, _bin_zero); + case MSGPACK_CS_EXT_8: + again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, (*(uint8_t*)n) + 1, _ext_zero); + case MSGPACK_CS_STR_16:{ + uint16_t tmp; + _msgpack_load16(uint16_t,n,&tmp); + again_fixed_trail_if_zero(MSGPACK_ACS_STR_VALUE, tmp, _str_zero); + } + case MSGPACK_CS_BIN_16:{ + uint16_t tmp; + _msgpack_load16(uint16_t,n,&tmp); + again_fixed_trail_if_zero(MSGPACK_ACS_BIN_VALUE, tmp, _bin_zero); + } + case MSGPACK_CS_EXT_16:{ + uint16_t tmp; + _msgpack_load16(uint16_t,n,&tmp); + again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, tmp + 1, _ext_zero); + } + case MSGPACK_CS_STR_32:{ + uint32_t tmp; + _msgpack_load32(uint32_t,n,&tmp); + again_fixed_trail_if_zero(MSGPACK_ACS_STR_VALUE, tmp, _str_zero); + } + case MSGPACK_CS_BIN_32:{ + uint32_t tmp; + _msgpack_load32(uint32_t,n,&tmp); + again_fixed_trail_if_zero(MSGPACK_ACS_BIN_VALUE, tmp, _bin_zero); + } + case MSGPACK_CS_EXT_32:{ + uint32_t tmp; + _msgpack_load32(uint32_t,n,&tmp); + again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, tmp + 1, _ext_zero); + } + case MSGPACK_ACS_STR_VALUE: + _str_zero: + push_variable_value(_str, data, n, trail); + case MSGPACK_ACS_BIN_VALUE: + _bin_zero: + push_variable_value(_bin, data, n, trail); + case MSGPACK_ACS_EXT_VALUE: + _ext_zero: + push_variable_value(_ext, data, n, trail); + + case MSGPACK_CS_ARRAY_16:{ + uint16_t tmp; + _msgpack_load16(uint16_t,n,&tmp); + start_container(_array, tmp, MSGPACK_CT_ARRAY_ITEM); + } + case MSGPACK_CS_ARRAY_32:{ + /* FIXME security guard */ + uint32_t tmp; + _msgpack_load32(uint32_t,n,&tmp); + start_container(_array, tmp, MSGPACK_CT_ARRAY_ITEM); + } + + case MSGPACK_CS_MAP_16:{ + uint16_t tmp; + _msgpack_load16(uint16_t,n,&tmp); + start_container(_map, tmp, MSGPACK_CT_MAP_KEY); + } + case MSGPACK_CS_MAP_32:{ + /* FIXME security guard */ + uint32_t tmp; + _msgpack_load32(uint32_t,n,&tmp); + start_container(_map, tmp, MSGPACK_CT_MAP_KEY); + } + + default: + ret = MSGPACK_UNPACK_PARSE_ERROR; + goto _failed; + } + } + + _push: + if(top == 0) { goto _finish; } + c = &stack[top-1]; + switch(c->ct) { + case MSGPACK_CT_ARRAY_ITEM: + ret = msgpack_unpack_callback(_array_item)(user, &c->obj, obj); \ + if(ret < 0) { goto _failed; } + if(--c->count == 0) { + obj = c->obj; + --top; + /*printf("stack pop %d\n", top);*/ + goto _push; + } + goto _header_again; + case MSGPACK_CT_MAP_KEY: + c->map_key = obj; + c->ct = MSGPACK_CT_MAP_VALUE; + goto _header_again; + case MSGPACK_CT_MAP_VALUE: + ret = msgpack_unpack_callback(_map_item)(user, &c->obj, c->map_key, obj); \ + if(ret < 0) { goto _failed; } + if(--c->count == 0) { + obj = c->obj; + --top; + /*printf("stack pop %d\n", top);*/ + goto _push; + } + c->ct = MSGPACK_CT_MAP_KEY; + goto _header_again; + + default: + ret = MSGPACK_UNPACK_PARSE_ERROR; + goto _failed; + } + + _header_again: + cs = MSGPACK_CS_HEADER; + ++p; + } while(p != pe); + goto _out; + + + _finish: + stack[0].obj = obj; + ++p; + ret = 1; + /*printf("-- finish --\n"); */ + goto _end; + + _failed: + /*printf("** FAILED **\n"); */ + goto _end; + + _out: + ret = 0; + goto _end; + + _end: + ctx->cs = cs; + ctx->trail = trail; + ctx->top = top; + *off = (size_t)(p - (const unsigned char*)data); + + return ret; + } +} + +#undef msgpack_unpack_func +#undef msgpack_unpack_callback +#undef msgpack_unpack_struct +#undef msgpack_unpack_object +#undef msgpack_unpack_user + +#undef push_simple_value +#undef push_fixed_value +#undef push_variable_value +#undef again_fixed_trail +#undef again_fixed_trail_if_zero +#undef start_container + +#undef NEXT_CS + +#undef SWITCH_RANGE_BEGIN +#undef SWITCH_RANGE +#undef SWITCH_RANGE_DEFAULT +#undef SWITCH_RANGE_END diff --git a/third_party/msgpack/include/msgpack/util.h b/third_party/msgpack/include/msgpack/util.h new file mode 100644 index 000000000000..959b56bec04c --- /dev/null +++ b/third_party/msgpack/include/msgpack/util.h @@ -0,0 +1,15 @@ +/* + * MessagePack for C utilities + * + * Copyright (C) 2014 FURUHASHI Sadayuki + * + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ +#ifndef MSGPACK_UTIL_H +#define MSGPACK_UTIL_H + +#define MSGPACK_UNUSED(a) (void)(a) + +#endif /* MSGPACK_UTIL_H */ diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/adaptor_base.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/adaptor_base.hpp new file mode 100644 index 000000000000..489362b4d097 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/adaptor_base.hpp @@ -0,0 +1,116 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_ADAPTOR_BASE_HPP +#define MSGPACK_V1_ADAPTOR_BASE_HPP + +#include "msgpack/v1/adaptor/adaptor_base_decl.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + + +namespace adaptor { + +// Adaptor functors + +template +struct convert { + msgpack::object const& operator()(msgpack::object const& o, T& v) const; +}; + +template +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, T const& v) const; +}; + +template +struct object { + void operator()(msgpack::object& o, T const& v) const; +}; + +template +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, T const& v) const; +}; + +} // namespace adaptor + +// operators + +template +inline +typename msgpack::enable_if< + !is_array::value, + msgpack::object const& +>::type +operator>> (msgpack::object const& o, T& v) { + return msgpack::adaptor::convert()(o, v); +} +template +inline +msgpack::object const& operator>> (msgpack::object const& o, T(&v)[N]) { + return msgpack::adaptor::convert()(o, v); +} + +template +inline +typename msgpack::enable_if< + !is_array::value, + msgpack::packer& +>::type +operator<< (msgpack::packer& o, T const& v) { + return msgpack::adaptor::pack()(o, v); +} +template +inline +msgpack::packer& operator<< (msgpack::packer& o, const T(&v)[N]) { + return msgpack::adaptor::pack()(o, v); +} + +template +inline +typename msgpack::enable_if< + !is_array::value +>::type +operator<< (msgpack::object& o, T const& v) { + msgpack::adaptor::object()(o, v); +} +template +inline +void operator<< (msgpack::v1::object& o, const T(&v)[N]) { + msgpack::v1::adaptor::object()(o, v); +} + +template +inline +typename msgpack::enable_if< + !is_array::value +>::type +operator<< (msgpack::object::with_zone& o, T const& v) { + msgpack::adaptor::object_with_zone()(o, v); +} +template +inline +void operator<< (msgpack::object::with_zone& o, const T(&v)[N]) { + msgpack::adaptor::object_with_zone()(o, v); +} + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + + +#endif // MSGPACK_V1_ADAPTOR_BASE_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/adaptor_base_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/adaptor_base_decl.hpp new file mode 100644 index 000000000000..42e8f0e38e06 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/adaptor_base_decl.hpp @@ -0,0 +1,86 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_ADAPTOR_BASE_DECL_HPP +#define MSGPACK_V1_ADAPTOR_BASE_DECL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/object_fwd.hpp" +#include "msgpack/pack.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +template +class packer; + +namespace adaptor { + +// Adaptor functors + +template +struct convert; + +template +struct pack; + +template +struct object; + +template +struct object_with_zone; + +} // namespace adaptor + +// operators + +template +typename msgpack::enable_if< + !is_array::value, + msgpack::object const& +>::type +operator>> (msgpack::object const& o, T& v); +template +msgpack::object const& operator>> (msgpack::object const& o, T(&v)[N]); + +template +typename msgpack::enable_if< + !is_array::value, + msgpack::packer& +>::type +operator<< (msgpack::packer& o, T const& v); +template +msgpack::packer& operator<< (msgpack::packer& o, const T(&v)[N]); + +template +typename msgpack::enable_if< + !is_array::value +>::type +operator<< (msgpack::object& o, T const& v); +template +void operator<< (msgpack::object& o, const T(&v)[N]); + +template +typename msgpack::enable_if< + !is_array::value +>::type +operator<< (msgpack::object::with_zone& o, T const& v); +template +void operator<< (msgpack::object::with_zone& o, const T(&v)[N]); + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_ADAPTOR_BASE_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/array_ref.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/array_ref.hpp new file mode 100644 index 000000000000..f81df47c048a --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/array_ref.hpp @@ -0,0 +1,305 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_ARRAY_REF_HPP +#define MSGPACK_V1_TYPE_ARRAY_REF_HPP + +#include "msgpack/v1/adaptor/array_ref.hpp" +#include "msgpack/adaptor/check_container_size.hpp" +#include "msgpack/cpp_config.hpp" +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +template +struct array_ref { + array_ref() : data(MSGPACK_NULLPTR) {} + array_ref(T& t) : data(&t) {} + + T* data; + + std::size_t size() const { + return data->size(); + } + + template + bool operator==(array_ref const& t) const { + return *data == *t.data; + } + template + bool operator!=(array_ref const& t) const { + return !(*data == *t.data); + } + template + bool operator< (array_ref const& t) const + { + return *data < *t.data; + } + template + bool operator> (array_ref const& t) const + { + return *t.data < *data; + } + template + bool operator<= (array_ref const& t) const + { + return !(*t.data < *data); + } + template + bool operator>= (array_ref const& t) const + { + return !(*data < *t.data); + } +}; + +template +struct array_ref { + array_ref() : data(MSGPACK_NULLPTR) {} + array_ref(T(&t)[N]) : data(t) {} + + T* data; + + std::size_t size() const { + return N; + } + + template + bool operator==(array_ref const& t) const { + if (N != t.size()) return false; + T const* pself = data; + U const* pother = t.data; + for (; pself != &data[N]; ++pself, ++pother) { + if (*pself != *pother) return false; + } + return true; + } + template + bool operator!=(array_ref const& t) const { + return !(*this == t); + } + template + bool operator< (array_ref const& t) const + { + T const* pself = data; + U const* pother = t.data; + for (; pself != &data[N] && pother != t.data[t.size()]; ++pself, ++pother) { + if (*pself < *pother) return true; + } + if (N < t.size()) return true; + return false; + } + template + bool operator> (array_ref const& t) const + { + return t.data < data; + } + template + bool operator<= (array_ref const& t) const + { + return !(t.data < data); + } + template + bool operator>= (array_ref const& t) const + { + return !(data < t.data); + } +}; + +template +inline +typename msgpack::enable_if< + !msgpack::is_array::value, + array_ref +>::type +make_array_ref(const T& t) { + return array_ref(t); +} + +template +inline +typename msgpack::enable_if< + !msgpack::is_array::value, + array_ref +>::type +make_array_ref(T& t) { + return array_ref(t); +} + +template +inline array_ref make_array_ref(const T(&t)[N]) { + return array_ref(t); +} + +template +inline array_ref make_array_ref(T(&t)[N]) { + return array_ref(t); +} + +} // namespace type + +namespace adaptor { + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, msgpack::type::array_ref& v) const { + if (!v.data) { throw msgpack::type_error(); } + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + if (v.size() < o.via.bin.size) { throw msgpack::type_error(); } + if (o.via.array.size > 0) { + msgpack::object* p = o.via.array.ptr; + msgpack::object* const pend = o.via.array.ptr + o.via.array.size; + typename T::iterator it = v.data->begin(); + do { + p->convert(*it); + ++p; + ++it; + } while(p < pend); + } + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, msgpack::type::array_ref& v) const { + if (!v.data) { throw msgpack::type_error(); } + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + if (v.size() < o.via.bin.size) { throw msgpack::type_error(); } + if (o.via.array.size > 0) { + msgpack::object* p = o.via.array.ptr; + msgpack::object* const pend = o.via.array.ptr + o.via.array.size; + T* it = v.data; + do { + p->convert(*it); + ++p; + ++it; + } while(p < pend); + } + return o; + } +}; + +template +struct convert > > { + msgpack::object const& operator()(msgpack::object const& o, msgpack::type::array_ref >& v) const { + if (!v.data) { throw msgpack::type_error(); } + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + v.data->resize(o.via.bin.size); + if (o.via.array.size > 0) { + msgpack::object* p = o.via.array.ptr; + msgpack::object* const pend = o.via.array.ptr + o.via.array.size; + typename std::vector::iterator it = v.data->begin(); + do { + p->convert(*it); + ++p; + ++it; + } while(p < pend); + } + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const msgpack::type::array_ref& v) const { + if (!v.data) { throw msgpack::type_error(); } + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for (typename T::const_iterator it(v.data->begin()), it_end(v.data->end()); + it != it_end; ++it) { + o.pack(*it); + } + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const msgpack::type::array_ref& v) const { + if (!v.data) { throw msgpack::type_error(); } + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for (T const* it = v.data; + it != &v.data[v.size()]; ++it) { + o.pack(*it); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const msgpack::type::array_ref& v) const { + if (!v.data) { throw msgpack::type_error(); } + o.type = msgpack::type::ARRAY; + if (v.data->empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } + else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + msgpack::object* const pend = p + size; + o.via.array.ptr = p; + o.via.array.size = size; + typename T::const_iterator it(v.data->begin()); + do { +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + *p = msgpack::object(*it, o.zone); +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + ++p; + ++it; + } while(p < pend); + } + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const msgpack::type::array_ref& v) const { + if (!v.data) { throw msgpack::type_error(); } + o.type = msgpack::type::ARRAY; + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + msgpack::object* const pend = p + size; + o.via.array.ptr = p; + o.via.array.size = size; + T const* it = v.data; + do { + *p = msgpack::object(*it, o.zone); + ++p; + ++it; + } while(p < pend); + } +}; + + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_ARRAY_REF_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/array_ref_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/array_ref_decl.hpp new file mode 100644 index 000000000000..433e24f66382 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/array_ref_decl.hpp @@ -0,0 +1,55 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_ARRAY_REF_DECL_HPP +#define MSGPACK_V1_TYPE_ARRAY_REF_DECL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +template +struct array_ref; + +template +typename msgpack::enable_if< + !msgpack::is_array::value, + array_ref +>::type +make_array_ref(T const& t); + +template +typename msgpack::enable_if< + !msgpack::is_array::value, + array_ref +>::type +make_array_ref(T& t); + +template +array_ref make_array_ref(const T(&t)[N]); + +template +array_ref make_array_ref(T(&t)[N]); + +} // namespace type + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_ARRAY_REF_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/bool.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/bool.hpp new file mode 100644 index 000000000000..95cd704f3aea --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/bool.hpp @@ -0,0 +1,66 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_BOOL_HPP +#define MSGPACK_V1_TYPE_BOOL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, bool& v) const { + if(o.type != msgpack::type::BOOLEAN) { throw msgpack::type_error(); } + v = o.via.boolean; + return o; + } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const bool& v) const { + if(v) { o.pack_true(); } + else { o.pack_false(); } + return o; + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, bool v) const { + o.type = msgpack::type::BOOLEAN; + o.via.boolean = v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, bool v) const { + static_cast(o) << v; + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_BOOL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/boost/fusion.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/boost/fusion.hpp new file mode 100644 index 000000000000..69a1124067a4 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/boost/fusion.hpp @@ -0,0 +1,203 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_BOOST_FUSION_HPP +#define MSGPACK_V1_TYPE_BOOST_FUSION_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" +#include "msgpack/meta.hpp" + +#include "msgpack/adaptor/pair.hpp" + +#if !defined (MSGPACK_USE_CPP03) +#include "msgpack/adaptor/cpp11/tuple.hpp" +#endif // #if !defined (MSGPACK_USE_CPP03) + +#include +#include +#include +#include +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +namespace detail { + +template +struct is_std_pair { + static bool const value = false; +}; + +template +struct is_std_pair > { + static bool const value = true; +}; + +#if !defined(MSGPACK_USE_CPP03) + +template +struct is_std_tuple { + static bool const value = false; +}; + +template +struct is_std_tuple> { + static bool const value = true; +}; + +#endif // !defined(MSGPACK_USE_CPP03) + +template +struct is_seq_no_pair_no_tuple { + static bool const value = + boost::fusion::traits::is_sequence::value + && + !is_std_pair::value +#if !defined (MSGPACK_USE_CPP03) + && + !is_std_tuple::value +#endif // !defined (MSGPACK_USE_CPP03) + ; +}; + +} // namespace detail + +#if !defined (MSGPACK_USE_CPP03) + +template +struct as< + T, + typename msgpack::enable_if< + detail::is_seq_no_pair_no_tuple::value && + boost::mpl::fold< + T, + boost::mpl::bool_, + boost::mpl::if_ < + boost::mpl::or_< + boost::mpl::_1, + msgpack::has_as + >, + boost::mpl::bool_, + boost::mpl::bool_ + > + >::type::value + >::type +> { + T operator()(msgpack::object const& o) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + if (o.via.array.size != checked_get_container_size(boost::mpl::size::value)) { + throw msgpack::type_error(); + } + using tuple_t = decltype(to_tuple(std::declval(), gen_seq::value>())); + return to_t( + o.as(), + msgpack::gen_seq::value>()); + } + template + static std::tuple< + typename std::remove_reference< + typename boost::fusion::result_of::at_c::type + >::type...> + to_tuple(U const& u, seq) { + return std::make_tuple(boost::fusion::at_c(u)...); + } + template + static T to_t(U const& u, seq) { + return T(std::get(u)...); + } +}; + +#endif // !defined (MSGPACK_USE_CPP03) + +template +struct convert::value>::type > { + msgpack::object const& operator()(msgpack::object const& o, T& v) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + if (o.via.array.size != checked_get_container_size(boost::fusion::size(v))) { + throw msgpack::type_error(); + } + uint32_t index = 0; + boost::fusion::for_each(v, convert_imp(o, index)); + return o; + } +private: + struct convert_imp { + convert_imp(msgpack::object const& obj, uint32_t& index):obj_(obj), index_(index) {} + template + void operator()(U& v) const { + msgpack::adaptor::convert()(obj_.via.array.ptr[index_++], v); + } + private: + msgpack::object const& obj_; + uint32_t& index_; + }; +}; + +template +struct pack::value>::type > { + template + msgpack::packer& operator()(msgpack::packer& o, const T& v) const { + uint32_t size = checked_get_container_size(boost::fusion::size(v)); + o.pack_array(size); + boost::fusion::for_each(v, pack_imp(o)); + return o; + } +private: + template + struct pack_imp { + pack_imp(msgpack::packer& stream):stream_(stream) {} + template + void operator()(U const& v) const { + stream_.pack(v); + } + private: + msgpack::packer& stream_; + }; +}; + +template +struct object_with_zone::value>::type > { + void operator()(msgpack::object::with_zone& o, const T& v) const { + uint32_t size = checked_get_container_size(boost::fusion::size(v)); + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = size; + uint32_t count = 0; + boost::fusion::for_each(v, with_zone_imp(o, count)); + } +private: + struct with_zone_imp { + with_zone_imp(msgpack::object::with_zone const& obj, uint32_t& count):obj_(obj), count_(count) {} + template + void operator()(U const& v) const { + obj_.via.array.ptr[count_++] = msgpack::object(v, obj_.zone); + } + msgpack::object::with_zone const& obj_; + uint32_t& count_; + }; +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_BOOST_FUSION_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/boost/msgpack_variant.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/boost/msgpack_variant.hpp new file mode 100644 index 000000000000..26eff00bb0da --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/boost/msgpack_variant.hpp @@ -0,0 +1,443 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_BOOST_MSGPACK_VARIANT_HPP +#define MSGPACK_V1_TYPE_BOOST_MSGPACK_VARIANT_HPP + +#if defined(MSGPACK_USE_BOOST) + +#include "msgpack/v1/adaptor/boost/msgpack_variant_decl.hpp" + +#include "msgpack/adaptor/check_container_size.hpp" +#include "msgpack/adaptor/boost/string_ref.hpp" + +#include "msgpack/adaptor/nil.hpp" +#include "msgpack/adaptor/bool.hpp" +#include "msgpack/adaptor/int.hpp" +#include "msgpack/adaptor/float.hpp" +#include "msgpack/adaptor/string.hpp" +#include "msgpack/adaptor/vector_char.hpp" +#include "msgpack/adaptor/raw.hpp" +#include "msgpack/adaptor/ext.hpp" +#include "msgpack/adaptor/vector.hpp" +#include "msgpack/adaptor/map.hpp" + +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + + +template +struct basic_variant : + boost::variant< + nil_t, // NIL + bool, // BOOL + int64_t, // NEGATIVE_INTEGER + uint64_t, // POSITIVE_INTEGER + double, // FLOAT32, FLOAT64 + std::string, // STR +#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + boost::string_ref, // STR +#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + std::vector, // BIN + msgpack::type::raw_ref, // BIN + msgpack::type::ext, // EXT + msgpack::type::ext_ref, // EXT + boost::recursive_wrapper > >, // ARRAY + boost::recursive_wrapper, basic_variant > >, // MAP + boost::recursive_wrapper, basic_variant > >// MAP + >, + private boost::totally_ordered > { + typedef boost::variant< + nil_t, // NIL + bool, // BOOL + int64_t, // NEGATIVE_INTEGER + uint64_t, // POSITIVE_INTEGER + double, // FLOAT32, FLOAT64 + std::string, // STR +#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + boost::string_ref, // STR +#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + std::vector, // BIN + msgpack::type::raw_ref, // BIN + msgpack::type::ext, // EXT + msgpack::type::ext_ref, // EXT + boost::recursive_wrapper > >, // ARRAY + boost::recursive_wrapper, basic_variant > >, // MAP + boost::recursive_wrapper, basic_variant > >// MAP + > base; + basic_variant() {} + template + basic_variant(T const& t):base(t) {} + +#if defined(_MSC_VER) && _MSC_VER < 1700 + // The following redundant functions are required to avoid MSVC + // See https://svn.boost.org/trac/boost/ticket/592 + basic_variant(basic_variant const& other):base(static_cast(other)) {} + basic_variant& operator=(basic_variant const& other) { + *static_cast(this) = static_cast(other); + return *this; + } +#endif // defined(_MSC_VER) && _MSC_VER < 1700 + + basic_variant(char const* p):base(std::string(p)) {} + basic_variant(char v) { + int_init(v); + } + basic_variant(signed char v) { + int_init(v); + } + basic_variant(unsigned char v):base(uint64_t(v)) {} + basic_variant(signed int v) { + int_init(v); + } + basic_variant(unsigned int v):base(uint64_t(v)) {} + basic_variant(signed long v) { + int_init(v); + } + basic_variant(unsigned long v):base(uint64_t(v)) {} + basic_variant(signed long long v) { + int_init(v); + } + basic_variant(unsigned long long v):base(uint64_t(v)) {} + + bool is_nil() const { + return boost::get(this) != MSGPACK_NULLPTR; + } + bool is_bool() const { + return boost::get(this) != MSGPACK_NULLPTR; + } + bool is_int64_t() const { + return boost::get(this) != MSGPACK_NULLPTR; + } + bool is_uint64_t() const { + return boost::get(this) != MSGPACK_NULLPTR; + } + bool is_double() const { + return boost::get(this) != MSGPACK_NULLPTR; + } + bool is_string() const { + return boost::get(this) != MSGPACK_NULLPTR; + } +#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + bool is_boost_string_ref() const { + return boost::get(this) != MSGPACK_NULLPTR; + } +#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + bool is_vector_char() const { + return boost::get >(this) != MSGPACK_NULLPTR; + } + bool is_vector_char() { + return boost::get >(this) != MSGPACK_NULLPTR; + } + bool is_raw_ref() const { + return boost::get(this) != MSGPACK_NULLPTR; + } + bool is_ext() const { + return boost::get(this) != MSGPACK_NULLPTR; + } + bool is_ext_ref() const { + return boost::get(this) != MSGPACK_NULLPTR; + } + bool is_vector() const { + return boost::get > >(this) != MSGPACK_NULLPTR; + } + bool is_map() const { + return boost::get, basic_variant > >(this) != MSGPACK_NULLPTR; + } + bool is_multimap() const { + return boost::get, basic_variant > >(this) != MSGPACK_NULLPTR; + } + + bool as_bool() const { + return boost::get(*this); + } + int64_t as_int64_t() const { + return boost::get(*this); + } + int64_t& as_int64_t() { + return boost::get(*this); + } + uint64_t as_uint64_t() const { + return boost::get(*this); + } + uint64_t& as_uint64_t() { + return boost::get(*this); + } + double as_double() const { + return boost::get(*this); + } + double& as_double() { + return boost::get(*this); + } + std::string const& as_string() const { + return boost::get(*this); + } + std::string& as_string() { + return boost::get(*this); + } +#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + boost::string_ref const& as_boost_string_ref() const { + return boost::get(*this); + } + boost::string_ref& as_boost_string_ref() { + return boost::get(*this); + } +#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + std::vector const& as_vector_char() const { + return boost::get >(*this); + } + std::vector& as_vector_char() { + return boost::get >(*this); + } + raw_ref const& as_raw_ref() const { + return boost::get(*this); + } + ext const& as_ext() const { + return boost::get(*this); + } + ext& as_ext() { + return boost::get(*this); + } + ext_ref const& as_ext_ref() const { + return boost::get(*this); + } + std::vector > const& as_vector() const { + return boost::get > >(*this); + } + std::vector >& as_vector() { + return boost::get > >(*this); + } + std::map, basic_variant > const& as_map() const { + return boost::get, basic_variant > >(*this); + } + std::map, basic_variant >& as_map() { + return boost::get, basic_variant > >(*this); + } + std::multimap, basic_variant > const& as_multimap() const { + return boost::get, basic_variant > >(*this); + } + std::multimap, basic_variant >& as_multimap() { + return boost::get, basic_variant > >(*this); + } +private: + template + void int_init(T v) { + if (v < 0) { + static_cast(*this) = int64_t(v); + } + else { + static_cast(*this) = uint64_t(v); + } + } +}; + +template +inline bool operator<(basic_variant const& lhs, basic_variant const& rhs) { + return + static_cast::base const&>(lhs) < + static_cast::base const&>(rhs); +} + +template +inline bool operator==(basic_variant const& lhs, basic_variant const& rhs) { + return + static_cast::base const&>(lhs) == + static_cast::base const&>(rhs); +} + +typedef basic_variant, ext> variant; +typedef basic_variant< +#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + boost::string_ref, +#else // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + std::string, +#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + raw_ref, ext_ref> variant_ref; + +} // namespace type + +namespace adaptor { + +#if !defined (MSGPACK_USE_CPP03) + +template +struct as > { + type::basic_variant operator()(msgpack::object const& o) const { + switch(o.type) { + case type::NIL: + return o.as(); + case type::BOOLEAN: + return o.as(); + case type::POSITIVE_INTEGER: + return o.as(); + case type::NEGATIVE_INTEGER: + return o.as(); + case type::FLOAT32: + case type::FLOAT64: + return o.as(); + case type::STR: + return o.as(); + case type::BIN: + return o.as(); + case type::EXT: + return o.as(); + case type::ARRAY: + return o.as > >(); + case type::MAP: + return o.as, type::basic_variant > >(); + default: + break; + } + return type::basic_variant(); + } +}; + +#endif // !defined (MSGPACK_USE_CPP03) + + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::basic_variant& v) const { + switch(o.type) { + case type::NIL: + v = o.as(); + break; + case type::BOOLEAN: + v = o.as(); + break; + case type::POSITIVE_INTEGER: + v = o.as(); + break; + case type::NEGATIVE_INTEGER: + v = o.as(); + break; + case type::FLOAT32: + case type::FLOAT64: + v = o.as(); + break; + case type::STR: + v = o.as(); + break; + case type::BIN: + v = o.as(); + break; + case type::EXT: + v = o.as(); + break; + case type::ARRAY: + v = o.as > >(); + break; + case type::MAP: + v = o.as, type::basic_variant > >(); + break; + default: + break; + } + return o; + } +}; + +namespace detail { + +template +struct pack_imp : boost::static_visitor { + template + void operator()(T const& value) const { + pack()(o_, value); + } + pack_imp(packer& o):o_(o) {} + packer& o_; +}; + +} // namespace detail + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const type::basic_variant& v) const { + boost::apply_visitor(detail::pack_imp(o), v); + return o; + } +}; + +namespace detail { + +struct object_imp : boost::static_visitor { + void operator()(msgpack::type::nil_t const& v) const { + object()(o_, v); + } + void operator()(bool const& v) const { + object()(o_, v); + } + void operator()(uint64_t const& v) const { + object()(o_, v); + } + void operator()(int64_t const& v) const { + object()(o_, v); + } + void operator()(double const& v) const { + object()(o_, v); + } + template + void operator()(T const&) const { + throw msgpack::type_error(); + } + object_imp(msgpack::object& o):o_(o) {} + msgpack::object& o_; +}; + +} // namespace detail + +template +struct object > { + void operator()(msgpack::object& o, const type::basic_variant& v) const { + boost::apply_visitor(detail::object_imp(o), v); + } +}; + +namespace detail { + +struct object_with_zone_imp : boost::static_visitor { + template + void operator()(T const& v) const { + object_with_zone()(o_, v); + } + object_with_zone_imp(msgpack::object::with_zone& o):o_(o) {} + msgpack::object::with_zone& o_; +}; + +} // namespace detail + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const type::basic_variant& v) const { + boost::apply_visitor(detail::object_with_zone_imp(o), v); + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_USE_BOOST +#endif // MSGPACK_V1_TYPE_BOOST_MSGPACK_VARIANT_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/boost/msgpack_variant_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/boost/msgpack_variant_decl.hpp new file mode 100644 index 000000000000..2bbf91e49d8c --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/boost/msgpack_variant_decl.hpp @@ -0,0 +1,62 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_BOOST_MSGPACK_VARIANT_DECL_HPP +#define MSGPACK_V1_TYPE_BOOST_MSGPACK_VARIANT_DECL_HPP + +#if defined(MSGPACK_USE_BOOST) + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" +#include "msgpack/adaptor/boost/string_ref.hpp" +#include "msgpack/adaptor/ext.hpp" +#include "msgpack/adaptor/raw.hpp" + +#include +#include +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +template +struct basic_variant; + +template +bool operator<(basic_variant const& lhs, basic_variant const& rhs); + +template +bool operator==(basic_variant const& lhs, basic_variant const& rhs); + +template +bool operator!=(basic_variant const& lhs, basic_variant const& rhs); + +typedef basic_variant, msgpack::type::ext> variant; +typedef basic_variant< +#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + boost::string_ref, +#else // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + std::string, +#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + msgpack::type::raw_ref, msgpack::type::ext_ref> variant_ref; + +} // namespace type + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_USE_BOOST +#endif // MSGPACK_V1_TYPE_BOOST_MSGPACK_VARIANT_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp new file mode 100644 index 000000000000..449937a5a99c --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp @@ -0,0 +1,96 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_BOOST_OPTIONAL_HPP +#define MSGPACK_V1_TYPE_BOOST_OPTIONAL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +// To suppress warning on Boost.1.58.0 +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) || defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) || defined(__clang__) + +#include + +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) || defined(__clang__) +#pragma GCC diagnostic pop +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) || defined(__clang__) + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +#if !defined (MSGPACK_USE_CPP03) + +template +struct as, typename std::enable_if::value>::type> { + boost::optional operator()(msgpack::object const& o) const { + if(o.is_nil()) return boost::none; + return o.as(); + } +}; + +#endif // !defined (MSGPACK_USE_CPP03) + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, boost::optional& v) const { + if(o.is_nil()) v = boost::none; + else { + T t; + msgpack::adaptor::convert()(o, t); + v = t; + } + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const boost::optional& v) const { + if (v) o.pack(*v); + else o.pack_nil(); + return o; + } +}; + +template +struct object > { + void operator()(msgpack::object& o, const boost::optional& v) const { + if (v) msgpack::adaptor::object()(o, *v); + else o.type = msgpack::type::NIL; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const boost::optional& v) const { + if (v) msgpack::adaptor::object_with_zone()(o, *v); + else o.type = msgpack::type::NIL; + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_BOOST_OPTIONAL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/boost/string_ref.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/boost/string_ref.hpp new file mode 100644 index 000000000000..9af03898bfe7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/boost/string_ref.hpp @@ -0,0 +1,87 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_BOOST_STRING_REF_HPP +#define MSGPACK_V1_TYPE_BOOST_STRING_REF_HPP + +#include +#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, boost::string_ref& v) const { + switch (o.type) { + case msgpack::type::BIN: + v = boost::string_ref(o.via.bin.ptr, o.via.bin.size); + break; + case msgpack::type::STR: + v = boost::string_ref(o.via.str.ptr, o.via.str.size); + break; + default: + throw msgpack::type_error(); + break; + } + return o; + } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const boost::string_ref& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_str(size); + o.pack_str_body(v.data(), size); + return o; + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, const boost::string_ref& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::STR; + o.via.str.ptr = v.data(); + o.via.str.size = size; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const boost::string_ref& v) const { + static_cast(o) << v; + } +}; + + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + +#endif // MSGPACK_V1_TYPE_BOOST_STRING_REF_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/boost/string_view.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/boost/string_view.hpp new file mode 100644 index 000000000000..e3023ca329d5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/boost/string_view.hpp @@ -0,0 +1,87 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2017 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_BOOST_STRING_VIEW_HPP +#define MSGPACK_V1_TYPE_BOOST_STRING_VIEW_HPP + +#include +#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 61 + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, boost::string_view& v) const { + switch (o.type) { + case msgpack::type::BIN: + v = boost::string_view(o.via.bin.ptr, o.via.bin.size); + break; + case msgpack::type::STR: + v = boost::string_view(o.via.str.ptr, o.via.str.size); + break; + default: + throw msgpack::type_error(); + break; + } + return o; + } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const boost::string_view& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_str(size); + o.pack_str_body(v.data(), size); + return o; + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, const boost::string_view& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::STR; + o.via.str.ptr = v.data(); + o.via.str.size = size; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const boost::string_view& v) const { + static_cast(o) << v; + } +}; + + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 + +#endif // MSGPACK_V1_TYPE_BOOST_STRING_VIEW_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/carray.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/carray.hpp new file mode 100644 index 000000000000..8fff446887ba --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/carray.hpp @@ -0,0 +1,253 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_CARRAY_HPP +#define MSGPACK_V1_TYPE_CARRAY_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/object_fwd.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct convert { + msgpack::object const& operator()(msgpack::object const& o, T* v) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + if (o.via.array.size > N) { throw msgpack::type_error(); } + msgpack::object* p = o.via.array.ptr; + msgpack::object* const pend = o.via.array.ptr + o.via.array.size; + do { + p->convert(*v); + ++p; + ++v; + } while(p < pend); + return o; + } +}; + +template +struct convert { + msgpack::object const& operator()(msgpack::object const& o, char(&v)[N]) const { + switch (o.type) { + case msgpack::type::BIN: + if (o.via.bin.size > N) { throw msgpack::type_error(); } + std::memcpy(v, o.via.bin.ptr, o.via.bin.size); + break; + case msgpack::type::STR: + if (o.via.str.size > N) { throw msgpack::type_error(); } + std::memcpy(v, o.via.str.ptr, o.via.str.size); + if (o.via.str.size < N) v[o.via.str.size] = '\0'; + break; + default: + throw msgpack::type_error(); + break; + } + return o; + } +}; + +template +struct convert { + msgpack::object const& operator()(msgpack::object const& o, unsigned char(&v)[N]) const { + switch (o.type) { + case msgpack::type::BIN: + if (o.via.bin.size > N) { throw msgpack::type_error(); } + std::memcpy(v, o.via.bin.ptr, o.via.bin.size); + break; + case msgpack::type::STR: + if (o.via.str.size > N) { throw msgpack::type_error(); } + std::memcpy(v, o.via.str.ptr, o.via.str.size); + if (o.via.str.size < N) v[o.via.str.size] = '\0'; + break; + default: + throw msgpack::type_error(); + break; + } + return o; + } +}; + + +template +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const T(&v)[N]) const { + uint32_t size = checked_get_container_size(N); + o.pack_array(size); + const T* ptr = v; + for (; ptr != &v[N]; ++ptr) o.pack(*ptr); + return o; + } +}; + +template +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const char(&v)[N]) const { + char const* p = v; + uint32_t size = checked_get_container_size(N); + char const* p2 = static_cast(std::memchr(p, '\0', size)); + uint32_t adjusted_size = p2 ? static_cast(p2 - p) : size; + o.pack_str(adjusted_size); + o.pack_str_body(p, adjusted_size); + return o; + } +}; + +template +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const char(&v)[N]) const { + uint32_t size = checked_get_container_size(N); + char const* p = v; + char const* p2 = static_cast(std::memchr(p, '\0', size)); + uint32_t adjusted_size = p2 ? static_cast(p2 - p) : size; + o.pack_str(adjusted_size); + o.pack_str_body(p, adjusted_size); + return o; + } +}; + +template +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const unsigned char(&v)[N]) const { + unsigned char const* p = v; + uint32_t size = checked_get_container_size(N); + o.pack_bin(size); + o.pack_bin_body(reinterpret_cast(p), size); + return o; + } +}; + +template +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const unsigned char(&v)[N]) const { + unsigned char const* p = v; + uint32_t size = checked_get_container_size(N); + o.pack_bin(size); + o.pack_bin_body(reinterpret_cast(p), size); + return o; + } +}; + +template +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const T(&v)[N]) const { + uint32_t size = checked_get_container_size(N); + o.type = msgpack::type::ARRAY; + msgpack::object* ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object) * size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.ptr = ptr; + o.via.array.size = size; + const T* pv = v; + for (; pv != &v[size]; ++pv) { + *ptr++ = msgpack::object(*pv, o.zone); + } + } +}; + +template +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const char(&v)[N]) const { + char const* p = v; + uint32_t size = checked_get_container_size(N); + char const* p2 = static_cast(std::memchr(p, '\0', size)); + uint32_t adjusted_size = p2 ? static_cast(p2 - p) : size; + o.type = msgpack::type::STR; + char* ptr = static_cast(o.zone.allocate_align(adjusted_size, MSGPACK_ZONE_ALIGNOF(char))); + o.via.str.ptr = ptr; + o.via.str.size = adjusted_size; + std::memcpy(ptr, p, adjusted_size); + } +}; + +template +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const char(&v)[N]) const { + char const* p = v; + uint32_t size = checked_get_container_size(N); + char const* p2 = static_cast(std::memchr(p, '\0', size)); + uint32_t adjusted_size = p2 ? static_cast(p2 - p) : size; + o.type = msgpack::type::STR; + char* ptr = static_cast(o.zone.allocate_align(adjusted_size, MSGPACK_ZONE_ALIGNOF(char))); + o.via.str.ptr = ptr; + o.via.str.size = adjusted_size; + std::memcpy(ptr, p, adjusted_size); + } +}; + +template +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const unsigned char(&v)[N]) const { + uint32_t size = checked_get_container_size(N); + o.type = msgpack::type::BIN; + char* ptr = static_cast(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); + o.via.bin.ptr = ptr; + o.via.bin.size = size; + std::memcpy(ptr, v, size); + } +}; + +template +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const unsigned char(&v)[N]) const { + uint32_t size = checked_get_container_size(N); + o.type = msgpack::type::BIN; + char* ptr = static_cast(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); + o.via.bin.ptr = ptr; + o.via.bin.size = size; + std::memcpy(ptr, v, size); + } +}; + +template +struct object { + void operator()(msgpack::object& o, const char(&v)[N]) const { + char const* p = v; + uint32_t size = checked_get_container_size(N); + char const* p2 = static_cast(std::memchr(p, '\0', size)); + uint32_t adjusted_size = p2 ? static_cast(p2 - p) : size; + o.type = msgpack::type::STR; + o.via.str.ptr = p; + o.via.str.size = adjusted_size; + } +}; + +template +struct object { + void operator()(msgpack::object& o, const char(&v)[N]) const { + char const* p = v; + uint32_t size = checked_get_container_size(N); + char const* p2 = static_cast(std::memchr(p, '\0', size)); + uint32_t adjusted_size = p2 ? static_cast(p2 - p) : size; + o.type = msgpack::type::STR; + o.via.str.ptr = p; + o.via.str.size = adjusted_size; + } +}; + + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_CARRAY_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/char_ptr.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/char_ptr.hpp new file mode 100644 index 000000000000..a405fa3c3b15 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/char_ptr.hpp @@ -0,0 +1,92 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2014-2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_CHAR_PTR_HPP +#define MSGPACK_V1_TYPE_CHAR_PTR_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/object_fwd.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const char* v) const { + uint32_t size = checked_get_container_size(std::strlen(v)); + o.pack_str(size); + o.pack_str_body(v, size); + return o; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const char* v) const { + uint32_t size = checked_get_container_size(std::strlen(v)); + o.type = msgpack::type::STR; + char* ptr = static_cast(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); + o.via.str.ptr = ptr; + o.via.str.size = size; + std::memcpy(ptr, v, size); + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, const char* v) const { + uint32_t size = checked_get_container_size(std::strlen(v)); + o.type = msgpack::type::STR; + o.via.str.ptr = v; + o.via.str.size = size; + } +}; + + +template <> +struct pack { + template + packer& operator()(packer& o, char* v) const { + return o << static_cast(v); + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, char* v) const { + o << static_cast(v); + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, char* v) const { + o << static_cast(v); + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_CHAR_PTR_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/check_container_size.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/check_container_size.hpp new file mode 100644 index 000000000000..3f8409ab5898 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/check_container_size.hpp @@ -0,0 +1,67 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CHECK_CONTAINER_SIZE_HPP +#define MSGPACK_V1_CHECK_CONTAINER_SIZE_HPP + +#include "msgpack/v1/adaptor/check_container_size_decl.hpp" +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +struct container_size_overflow : public std::runtime_error { + explicit container_size_overflow(const std::string& msg) + :std::runtime_error(msg) {} +#if !defined(MSGPACK_USE_CPP03) + explicit container_size_overflow(const char* msg): + std::runtime_error(msg) {} +#endif // !defined(MSGPACK_USE_CPP03) +}; + +namespace detail { + +template +inline void check_container_size(std::size_t size) { + if (size > 0xffffffff) throw container_size_overflow("container size overflow"); +} + +template <> +inline void check_container_size<4>(std::size_t /*size*/) { +} + +template +inline void check_container_size_for_ext(std::size_t size) { + if (size > 0xffffffff) throw container_size_overflow("container size overflow"); +} + +template <> +inline void check_container_size_for_ext<4>(std::size_t size) { + if (size > 0xfffffffe) throw container_size_overflow("container size overflow"); +} + +} // namespace detail + +template +inline uint32_t checked_get_container_size(T size) { + detail::check_container_size(size); + return static_cast(size); +} + + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_CHECK_CONTAINER_SIZE_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/check_container_size_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/check_container_size_decl.hpp new file mode 100644 index 000000000000..7d06c4b82fe6 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/check_container_size_decl.hpp @@ -0,0 +1,44 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CHECK_CONTAINER_SIZE_DECL_HPP +#define MSGPACK_V1_CHECK_CONTAINER_SIZE_DECL_HPP + +#include "msgpack/versioning.hpp" +#include +#include "msgpack/sysdep.h" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +struct container_size_overflow; + +namespace detail { + +template +inline void check_container_size(std::size_t size); + +template +inline void check_container_size_for_ext(std::size_t size); + +} // namespace detail + +template +inline uint32_t checked_get_container_size(T size); + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_CHECK_CONTAINER_SIZE_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/array.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/array.hpp new file mode 100644 index 000000000000..1a5ba36bb0ae --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/array.hpp @@ -0,0 +1,138 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2014-2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_V1_TYPE_CPP11_ARRAY_HPP +#define MSGPACK_V1_TYPE_CPP11_ARRAY_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" +#include "msgpack/meta.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +namespace detail { + +namespace array { + +template +inline std::array concat( + std::array&& a1, + std::array&& a2, + msgpack::seq, + msgpack::seq) { + return {{ std::move(a1[I1])..., std::move(a2[I2])... }}; +} + +template +inline std::array concat(std::array&& a1, std::array&& a2) { + return concat(std::move(a1), std::move(a2), msgpack::gen_seq(), msgpack::gen_seq()); +} + +template +struct as_impl { + static std::array as(msgpack::object const& o) { + msgpack::object* p = o.via.array.ptr + N - 1; + return concat(as_impl::as(o), std::array{{p->as()}}); + } +}; + +template +struct as_impl { + static std::array as(msgpack::object const& o) { + msgpack::object* p = o.via.array.ptr; + return std::array{{p->as()}}; + } +}; + +template +struct as_impl { + static std::array as(msgpack::object const&) { + return std::array(); + } +}; + +} // namespace array + +} // namespace detail + +template +struct as, typename std::enable_if::value>::type> { + std::array operator()(msgpack::object const& o) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + if(o.via.array.size > N) { throw msgpack::type_error(); } + return detail::array::as_impl::as(o); + } +}; + +template +struct convert> { + msgpack::object const& operator()(msgpack::object const& o, std::array& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + if(o.via.array.size > N) { throw msgpack::type_error(); } + if(o.via.array.size > 0) { + msgpack::object* p = o.via.array.ptr; + msgpack::object* const pend = o.via.array.ptr + o.via.array.size; + T* it = &v[0]; + do { + p->convert(*it); + ++p; + ++it; + } while(p < pend); + } + return o; + } +}; + +template +struct pack> { + template + msgpack::packer& operator()(msgpack::packer& o, const std::array& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for(auto const& e : v) o.pack(e); + return o; + } +}; + +template +struct object_with_zone> { + void operator()(msgpack::object::with_zone& o, const std::array& v) const { + o.type = msgpack::type::ARRAY; + if(v.empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = size; + o.via.array.ptr = p; + for (auto const& e : v) *p++ = msgpack::object(e, o.zone); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_CPP11_ARRAY_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/array_char.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/array_char.hpp new file mode 100644 index 000000000000..865e77eb536e --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/array_char.hpp @@ -0,0 +1,97 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2014-2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_CPP11_ARRAY_CHAR_HPP +#define MSGPACK_V1_TYPE_CPP11_ARRAY_CHAR_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct convert> { + msgpack::object const& operator()(msgpack::object const& o, std::array& v) const { + switch (o.type) { + case msgpack::type::BIN: + if(o.via.bin.size > N) { throw msgpack::type_error(); } + std::memcpy(v.data(), o.via.bin.ptr, o.via.bin.size); + break; + case msgpack::type::STR: + if(o.via.str.size > N) { throw msgpack::type_error(); } + std::memcpy(v.data(), o.via.str.ptr, N); + break; + default: + throw msgpack::type_error(); + break; + } + return o; + } +}; + +template <> +struct convert> { + msgpack::object const& operator()(msgpack::object const& o, std::array&) const { + return o; + } +}; + +template +struct pack> { + template + msgpack::packer& operator()(msgpack::packer& o, const std::array& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_bin(size); + o.pack_bin_body(v.data(), size); + + return o; + } +}; + +template +struct object> { + void operator()(msgpack::object& o, const std::array& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::BIN; + o.via.bin.ptr = v.data(); + o.via.bin.size = size; + } +}; + +template +struct object_with_zone> { + void operator()(msgpack::object::with_zone& o, const std::array& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::BIN; + char* ptr = static_cast(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); + o.via.bin.ptr = ptr; + o.via.bin.size = size; + std::memcpy(ptr, v.data(), size); + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_CPP11_ARRAY_CHAR_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/array_unsigned_char.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/array_unsigned_char.hpp new file mode 100644 index 000000000000..5b35d15f70db --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/array_unsigned_char.hpp @@ -0,0 +1,97 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2014-2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_CPP11_ARRAY_UNSIGNED_CHAR_HPP +#define MSGPACK_V1_TYPE_CPP11_ARRAY_UNSIGNED_CHAR_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct convert> { + msgpack::object const& operator()(msgpack::object const& o, std::array& v) const { + switch (o.type) { + case msgpack::type::BIN: + if(o.via.bin.size > N) { throw msgpack::type_error(); } + std::memcpy(v.data(), o.via.bin.ptr, o.via.bin.size); + break; + case msgpack::type::STR: + if(o.via.str.size > N) { throw msgpack::type_error(); } + std::memcpy(v.data(), o.via.str.ptr, N); + break; + default: + throw msgpack::type_error(); + break; + } + return o; + } +}; + +template <> +struct convert> { + msgpack::object const& operator()(msgpack::object const& o, std::array&) const { + return o; + } +}; + +template +struct pack> { + template + msgpack::packer& operator()(msgpack::packer& o, const std::array& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_bin(size); + o.pack_bin_body(reinterpret_cast(v.data()), size); + + return o; + } +}; + +template +struct object> { + void operator()(msgpack::object& o, const std::array& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::BIN; + o.via.bin.ptr = reinterpret_cast(v.data()); + o.via.bin.size = size; + } +}; + +template +struct object_with_zone> { + void operator()(msgpack::object::with_zone& o, const std::array& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::BIN; + char* ptr = static_cast(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); + o.via.bin.ptr = ptr; + o.via.bin.size = size; + std::memcpy(ptr, v.data(), size); + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_CPP11_ARRAY_UNSIGNED_CHAR_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/chrono.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/chrono.hpp new file mode 100644 index 000000000000..1e08355e6022 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/chrono.hpp @@ -0,0 +1,215 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2017 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_V1_TYPE_CPP11_CHRONO_HPP +#define MSGPACK_V1_TYPE_CPP11_CHRONO_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template <> +struct as { + typename std::chrono::system_clock::time_point operator()(msgpack::object const& o) const { + if(o.type != msgpack::type::EXT) { throw msgpack::type_error(); } + if(o.via.ext.type() != -1) { throw msgpack::type_error(); } + std::chrono::system_clock::time_point tp; + switch(o.via.ext.size) { + case 4: { + uint32_t sec; + _msgpack_load32(uint32_t, o.via.ext.data(), &sec); + tp += std::chrono::seconds(sec); + } break; + case 8: { + uint64_t value; + _msgpack_load64(uint64_t, o.via.ext.data(), &value); + uint32_t nanosec = static_cast(value >> 34); + uint64_t sec = value & 0x00000003ffffffffL; + tp += std::chrono::duration_cast( + std::chrono::nanoseconds(nanosec)); + tp += std::chrono::seconds(sec); + } break; + case 12: { + uint32_t nanosec; + _msgpack_load32(uint32_t, o.via.ext.data(), &nanosec); + int64_t sec; + _msgpack_load64(int64_t, o.via.ext.data() + 4, &sec); + tp += std::chrono::duration_cast( + std::chrono::nanoseconds(nanosec)); + tp += std::chrono::seconds(sec); + } break; + default: + throw msgpack::type_error(); + } + return tp; + } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, std::chrono::system_clock::time_point& v) const { + if(o.type != msgpack::type::EXT) { throw msgpack::type_error(); } + if(o.via.ext.type() != -1) { throw msgpack::type_error(); } + std::chrono::system_clock::time_point tp; + switch(o.via.ext.size) { + case 4: { + uint32_t sec; + _msgpack_load32(uint32_t, o.via.ext.data(), &sec); + tp += std::chrono::seconds(sec); + v = tp; + } break; + case 8: { + uint64_t value; + _msgpack_load64(uint64_t, o.via.ext.data(), &value); + uint32_t nanosec = static_cast(value >> 34); + uint64_t sec = value & 0x00000003ffffffffL; + tp += std::chrono::duration_cast( + std::chrono::nanoseconds(nanosec)); + tp += std::chrono::seconds(sec); + v = tp; + } break; + case 12: { + uint32_t nanosec; + _msgpack_load32(uint32_t, o.via.ext.data(), &nanosec); + int64_t sec; + _msgpack_load64(int64_t, o.via.ext.data() + 4, &sec); + tp += std::chrono::duration_cast( + std::chrono::nanoseconds(nanosec)); + tp += std::chrono::seconds(sec); + v = tp; + } break; + default: + throw msgpack::type_error(); + } + return o; + } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const std::chrono::system_clock::time_point& v) const { + int64_t count = static_cast(v.time_since_epoch().count()); + + int64_t nano_num = + std::chrono::system_clock::duration::period::ratio::num * + (1000000000 / std::chrono::system_clock::duration::period::ratio::den); + + int64_t nanosec = count % (1000000000 / nano_num) * nano_num; + int64_t sec = 0; + if (nanosec < 0) { + nanosec = 1000000000 + nanosec; + --sec; + } + sec += count + * std::chrono::system_clock::duration::period::ratio::num + / std::chrono::system_clock::duration::period::ratio::den; + if ((sec >> 34) == 0) { + uint64_t data64 = (nanosec << 34) | sec; + if ((data64 & 0xffffffff00000000L) == 0) { + // timestamp 32 + o.pack_ext(4, -1); + uint32_t data32 = static_cast(data64); + char buf[4]; + _msgpack_store32(buf, data32); + o.pack_ext_body(buf, 4); + } + else { + // timestamp 64 + o.pack_ext(8, -1); + char buf[8]; + _msgpack_store64(buf, data64); + o.pack_ext_body(buf, 8); + } + } + else { + // timestamp 96 + o.pack_ext(12, -1); + char buf[12]; + _msgpack_store32(&buf[0], static_cast(nanosec)); + _msgpack_store64(&buf[4], sec); + o.pack_ext_body(buf, 12); + } + return o; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const std::chrono::system_clock::time_point& v) const { + int64_t count = static_cast(v.time_since_epoch().count()); + + int64_t nano_num = + std::chrono::system_clock::duration::period::ratio::num * + (1000000000 / std::chrono::system_clock::duration::period::ratio::den); + + int64_t nanosec = count % (1000000000 / nano_num) * nano_num; + int64_t sec = 0; + if (nanosec < 0) { + nanosec = 1000000000 + nanosec; + --sec; + } + sec += count + * std::chrono::system_clock::duration::period::ratio::num + / std::chrono::system_clock::duration::period::ratio::den; + if ((sec >> 34) == 0) { + uint64_t data64 = (nanosec << 34) | sec; + if ((data64 & 0xffffffff00000000L) == 0) { + // timestamp 32 + o.type = msgpack::type::EXT; + o.via.ext.size = 4; + char* p = static_cast(o.zone.allocate_no_align(o.via.ext.size + 1)); + p[0] = -1; + uint32_t data32 = static_cast(data64); + _msgpack_store32(&p[1], data32); + o.via.ext.ptr = p; + } + else { + // timestamp 64 + o.type = msgpack::type::EXT; + o.via.ext.size = 8; + char* p = static_cast(o.zone.allocate_no_align(o.via.ext.size + 1)); + p[0] = -1; + _msgpack_store64(&p[1], data64); + o.via.ext.ptr = p; + } + } + else { + // timestamp 96 + o.type = msgpack::type::EXT; + o.via.ext.size = 12; + char* p = static_cast(o.zone.allocate_no_align(o.via.ext.size + 1)); + p[0] = -1; + _msgpack_store32(&p[1], static_cast(nanosec)); + _msgpack_store64(&p[1 + 4], sec); + o.via.ext.ptr = p; + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_CPP11_CHRONO_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/forward_list.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/forward_list.hpp new file mode 100644 index 000000000000..c207c0472548 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/forward_list.hpp @@ -0,0 +1,94 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2014 KONDO-2015 Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_V1_TYPE_CPP11_FORWARD_LIST_HPP +#define MSGPACK_V1_TYPE_CPP11_FORWARD_LIST_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template + struct as, typename std::enable_if::value>::type> { + std::forward_list operator()(msgpack::object const& o) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + std::forward_list v; + msgpack::object* p = o.via.array.ptr + o.via.array.size; + msgpack::object* const pend = o.via.array.ptr; + while (p != pend) { + --p; + v.push_front(p->as()); + } + return v; + } +}; + +template +struct convert> { + msgpack::object const& operator()(msgpack::object const& o, std::forward_list& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + v.resize(o.via.array.size); + msgpack::object* p = o.via.array.ptr; + for (auto &e : v) { + p->convert(e); + ++p; + } + return o; + } +}; + +template +struct pack> { + template + msgpack::packer& operator()(msgpack::packer& o, const std::forward_list& v) const { + uint32_t size = checked_get_container_size(std::distance(v.begin(), v.end())); + o.pack_array(size); + for(auto const& e : v) o.pack(e); + return o; + } +}; + +template +struct object_with_zone> { + void operator()(msgpack::object::with_zone& o, const std::forward_list& v) const { + o.type = msgpack::type::ARRAY; + if(v.empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } else { + uint32_t size = checked_get_container_size(std::distance(v.begin(), v.end())); + o.via.array.size = size; + msgpack::object* p = static_cast( + o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.ptr = p; + for(auto const& e : v) *p++ = msgpack::object(e, o.zone); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_CPP11_FORWARD_LIST_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/reference_wrapper.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/reference_wrapper.hpp new file mode 100644 index 000000000000..02abe8376dfa --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/reference_wrapper.hpp @@ -0,0 +1,68 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_V1_TYPE_CPP11_REFERENCE_WRAPPER_HPP +#define MSGPACK_V1_TYPE_CPP11_REFERENCE_WRAPPER_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct convert> { + msgpack::object const& operator()(msgpack::object const& o, std::reference_wrapper& v) const { + msgpack::adaptor::convert()(o, v.get()); + return o; + } +}; + +template +struct pack> { + template + msgpack::packer& operator()(msgpack::packer& o, const std::reference_wrapper& v) const { + o.pack(v.get()); + return o; + } +}; + +template +struct object > { + void operator()(msgpack::object& o, const std::reference_wrapper& v) const { + msgpack::adaptor::object::type>()(o, v.get()); + } +}; + +template +struct object_with_zone> { + void operator()(msgpack::object::with_zone& o, const std::reference_wrapper& v) const { + msgpack::adaptor::object_with_zone::type>()(o, v.get()); + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_CPP11_REFERENCE_WRAPPER_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/shared_ptr.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/shared_ptr.hpp new file mode 100644 index 000000000000..f11d63d9839a --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/shared_ptr.hpp @@ -0,0 +1,82 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_V1_TYPE_CPP11_SHARED_PTR_HPP +#define MSGPACK_V1_TYPE_CPP11_SHARED_PTR_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct as, typename std::enable_if::value>::type> { + std::shared_ptr operator()(msgpack::object const& o) const { + if(o.is_nil()) return MSGPACK_NULLPTR; + return std::make_shared(o.as()); + } +}; + +template +struct convert> { + msgpack::object const& operator()(msgpack::object const& o, std::shared_ptr& v) const { + if(o.is_nil()) v.reset(); + else { + v = std::make_shared(); + msgpack::adaptor::convert()(o, *v); + } + return o; + } +}; + +template +struct pack> { + template + msgpack::packer& operator()(msgpack::packer& o, const std::shared_ptr& v) const { + if (v) o.pack(*v); + else o.pack_nil(); + return o; + } +}; + +template +struct object > { + void operator()(msgpack::object& o, const std::shared_ptr& v) const { + if (v) msgpack::adaptor::object()(o, *v); + else o.type = msgpack::type::NIL; + } +}; + +template +struct object_with_zone> { + void operator()(msgpack::object::with_zone& o, const std::shared_ptr& v) const { + if (v) msgpack::adaptor::object_with_zone()(o, *v); + else o.type = msgpack::type::NIL; + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_CPP11_SHARED_PTR_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/tuple.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/tuple.hpp new file mode 100644 index 000000000000..08b14f5c4a79 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/tuple.hpp @@ -0,0 +1,175 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2015 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_CPP11_TUPLE_HPP +#define MSGPACK_V1_TYPE_CPP11_TUPLE_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" +#include "msgpack/meta.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +// --- Pack from tuple to packer stream --- +template +struct StdTuplePacker { + static void pack( + msgpack::packer& o, + const Tuple& v) { + StdTuplePacker::pack(o, v); + o.pack(std::get(v)); + } +}; + +template +struct StdTuplePacker { + static void pack ( + msgpack::packer&, + const Tuple&) { + } +}; + +namespace adaptor { + +template +struct pack> { + template + msgpack::packer& operator()( + msgpack::packer& o, + const std::tuple& v) const { + uint32_t size = checked_get_container_size(sizeof...(Args)); + o.pack_array(size); + StdTuplePacker::pack(o, v); + return o; + } +}; + +} // namespace adaptor + +// --- Convert from tuple to object --- + +template +struct StdTupleAs; + +template +struct StdTupleAsImpl { + static std::tuple as(msgpack::object const& o) { + return std::tuple_cat( + std::make_tuple(o.via.array.ptr[o.via.array.size - sizeof...(Args) - 1].as()), + StdTupleAs::as(o)); + } +}; + +template +struct StdTupleAs { + static std::tuple as(msgpack::object const& o) { + return StdTupleAsImpl::as(o); + } +}; + +template <> +struct StdTupleAs<> { + static std::tuple<> as (msgpack::object const&) { + return std::tuple<>(); + } +}; + +template +struct StdTupleConverter { + static void convert( + msgpack::object const& o, + Tuple& v) { + StdTupleConverter::convert(o, v); + if (o.via.array.size >= N) + o.via.array.ptr[N-1].convert(v))>::type>(std::get(v)); + } +}; + +template +struct StdTupleConverter { + static void convert ( + msgpack::object const&, + Tuple&) { + } +}; + +namespace adaptor { + +template +struct as, typename std::enable_if::value>::type> { + std::tuple operator()( + msgpack::object const& o) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + return StdTupleAs::as(o); + } +}; + +template +struct convert> { + msgpack::object const& operator()( + msgpack::object const& o, + std::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + StdTupleConverter::convert(o, v); + return o; + } +}; + +} // namespace adaptor + +// --- Convert from tuple to object with zone --- +template +struct StdTupleToObjectWithZone { + static void convert( + msgpack::object::with_zone& o, + const Tuple& v) { + StdTupleToObjectWithZone::convert(o, v); + o.via.array.ptr[N-1] = msgpack::object(std::get(v), o.zone); + } +}; + +template +struct StdTupleToObjectWithZone { + static void convert ( + msgpack::object::with_zone&, + const Tuple&) { + } +}; + +namespace adaptor { + +template +struct object_with_zone> { + void operator()( + msgpack::object::with_zone& o, + std::tuple const& v) const { + uint32_t size = checked_get_container_size(sizeof...(Args)); + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = size; + StdTupleToObjectWithZone::convert(o, v); + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_CPP11_TUPLE_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/unique_ptr.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/unique_ptr.hpp new file mode 100644 index 000000000000..a175a84e5345 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/unique_ptr.hpp @@ -0,0 +1,82 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_V1_TYPE_CPP11_UNIQUE_PTR_HPP +#define MSGPACK_V1_TYPE_CPP11_UNIQUE_PTR_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct as, typename std::enable_if::value>::type> { + std::unique_ptr operator()(msgpack::object const& o) const { + if(o.is_nil()) return MSGPACK_NULLPTR; + return std::unique_ptr(new T(o.as())); + } +}; + +template +struct convert> { + msgpack::object const& operator()(msgpack::object const& o, std::unique_ptr& v) const { + if(o.is_nil()) v.reset(); + else { + v.reset(new T); + msgpack::adaptor::convert()(o, *v); + } + return o; + } +}; + +template +struct pack> { + template + msgpack::packer& operator()(msgpack::packer& o, const std::unique_ptr& v) const { + if (v) o.pack(*v); + else o.pack_nil(); + return o; + } +}; + +template +struct object > { + void operator()(msgpack::object& o, const std::unique_ptr& v) const { + if (v) msgpack::adaptor::object()(o, *v); + else o.type = msgpack::type::NIL; + } +}; + +template +struct object_with_zone> { + void operator()(msgpack::object::with_zone& o, const std::unique_ptr& v) const { + if (v) msgpack::adaptor::object_with_zone()(o, *v); + else o.type = msgpack::type::NIL; + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_CPP11_UNIQUE_PTR_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/unordered_map.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/unordered_map.hpp new file mode 100644 index 000000000000..bcd8fddc9668 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/unordered_map.hpp @@ -0,0 +1,182 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2014-2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_CPP11_UNORDERED_MAP_HPP +#define MSGPACK_V1_TYPE_CPP11_UNORDERED_MAP_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct as< + std::unordered_map, + typename std::enable_if::value || msgpack::has_as::value>::type> { + std::unordered_map operator()(msgpack::object const& o) const { + if (o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + msgpack::object_kv* p(o.via.map.ptr); + msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size); + std::unordered_map v; + for (; p != pend; ++p) { + v.emplace(p->key.as(), p->val.as()); + } + return v; + } +}; + +template +struct convert> { + msgpack::object const& operator()(msgpack::object const& o, std::unordered_map& v) const { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + msgpack::object_kv* p(o.via.map.ptr); + msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size); + std::unordered_map tmp; + for(; p != pend; ++p) { + K key; + p->key.convert(key); + p->val.convert(tmp[std::move(key)]); + } + v = std::move(tmp); + return o; + } +}; + +template +struct pack> { + template + msgpack::packer& operator()(msgpack::packer& o, const std::unordered_map& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_map(size); + for(typename std::unordered_map::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(it->first); + o.pack(it->second); + } + return o; + } +}; + +template +struct object_with_zone> { + void operator()(msgpack::object::with_zone& o, const std::unordered_map& v) const { + o.type = msgpack::type::MAP; + if(v.empty()) { + o.via.map.ptr = MSGPACK_NULLPTR; + o.via.map.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + msgpack::object_kv* const pend = p + size; + o.via.map.ptr = p; + o.via.map.size = size; + typename std::unordered_map::const_iterator it(v.begin()); + do { + p->key = msgpack::object(it->first, o.zone); + p->val = msgpack::object(it->second, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + + +template +struct as< + std::unordered_multimap, + typename std::enable_if::value || msgpack::has_as::value>::type> { + std::unordered_multimap operator()(msgpack::object const& o) const { + if (o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + msgpack::object_kv* p(o.via.map.ptr); + msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size); + std::unordered_multimap v; + for (; p != pend; ++p) { + v.emplace(p->key.as(), p->val.as()); + } + return v; + } +}; + +template +struct convert> { + msgpack::object const& operator()(msgpack::object const& o, std::unordered_multimap& v) const { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + msgpack::object_kv* p(o.via.map.ptr); + msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size); + std::unordered_multimap tmp; + for(; p != pend; ++p) { + std::pair value; + p->key.convert(value.first); + p->val.convert(value.second); + tmp.insert(std::move(value)); + } + v = std::move(tmp); + return o; + } +}; + +template +struct pack> { + template + msgpack::packer& operator()(msgpack::packer& o, const std::unordered_multimap& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_map(size); + for(typename std::unordered_multimap::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(it->first); + o.pack(it->second); + } + return o; + } +}; + +template +struct object_with_zone> { + void operator()(msgpack::object::with_zone& o, const std::unordered_multimap& v) const { + o.type = msgpack::type::MAP; + if(v.empty()) { + o.via.map.ptr = MSGPACK_NULLPTR; + o.via.map.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + msgpack::object_kv* const pend = p + size; + o.via.map.ptr = p; + o.via.map.size = size; + typename std::unordered_multimap::const_iterator it(v.begin()); + do { + p->key = msgpack::object(it->first, o.zone); + p->val = msgpack::object(it->second, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + + +#endif // MSGPACK_V1_TYPE_CPP11_UNORDERED_MAP_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/unordered_set.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/unordered_set.hpp new file mode 100644 index 000000000000..44a3cc3b6a6a --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp11/unordered_set.hpp @@ -0,0 +1,172 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2014-2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_CPP11_UNORDERED_SET_HPP +#define MSGPACK_V1_TYPE_CPP11_UNORDERED_SET_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct as, typename std::enable_if::value>::type> { + std::unordered_set operator()(msgpack::object const& o) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + msgpack::object* p = o.via.array.ptr + o.via.array.size; + msgpack::object* const pbegin = o.via.array.ptr; + std::unordered_set v; + while (p > pbegin) { + --p; + v.insert(p->as()); + } + return v; + } +}; + +template +struct convert> { + msgpack::object const& operator()(msgpack::object const& o, std::unordered_set& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + msgpack::object* p = o.via.array.ptr + o.via.array.size; + msgpack::object* const pbegin = o.via.array.ptr; + std::unordered_set tmp; + while(p > pbegin) { + --p; + tmp.insert(p->as()); + } + v = std::move(tmp); + return o; + } +}; + +template +struct pack> { + template + msgpack::packer& operator()(msgpack::packer& o, const std::unordered_set& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for(typename std::unordered_set::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(*it); + } + return o; + } +}; + +template +struct object_with_zone> { + void operator()(msgpack::object::with_zone& o, const std::unordered_set& v) const { + o.type = msgpack::type::ARRAY; + if(v.empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + msgpack::object* const pend = p + size; + o.via.array.ptr = p; + o.via.array.size = size; + typename std::unordered_set::const_iterator it(v.begin()); + do { + *p = msgpack::object(*it, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + + +template +struct as, typename std::enable_if::value>::type> { + std::unordered_multiset operator()(msgpack::object const& o) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + msgpack::object* p = o.via.array.ptr + o.via.array.size; + msgpack::object* const pbegin = o.via.array.ptr; + std::unordered_multiset v; + while (p > pbegin) { + --p; + v.insert(p->as()); + } + return v; + } +}; + +template +struct convert> { + msgpack::object const& operator()(msgpack::object const& o, std::unordered_multiset& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + msgpack::object* p = o.via.array.ptr + o.via.array.size; + msgpack::object* const pbegin = o.via.array.ptr; + std::unordered_multiset tmp; + while(p > pbegin) { + --p; + tmp.insert(p->as()); + } + v = std::move(tmp); + return o; + } +}; + +template +struct pack> { + template + msgpack::packer& operator()(msgpack::packer& o, const std::unordered_multiset& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for(typename std::unordered_multiset::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(*it); + } + return o; + } +}; + +template +struct object_with_zone> { + void operator()(msgpack::object::with_zone& o, const std::unordered_multiset& v) const { + o.type = msgpack::type::ARRAY; + if(v.empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + msgpack::object* const pend = p + size; + o.via.array.ptr = p; + o.via.array.size = size; + typename std::unordered_multiset::const_iterator it(v.begin()); + do { + *p = msgpack::object(*it, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_CPP11_UNORDERED_SET_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/byte.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/byte.hpp new file mode 100644 index 000000000000..a1d1204719ee --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/byte.hpp @@ -0,0 +1,74 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2018 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_BYTE_HPP +#define MSGPACK_V1_TYPE_BYTE_HPP + +#if __cplusplus >= 201703 + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/int_decl.hpp" +#include "msgpack/object.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, std::byte& v) const { + v = static_cast(type::detail::convert_integer(o)); + return o; + } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, std::byte v) const { + o.pack_unsigned_char(static_cast(v)); + return o; + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, std::byte v) const { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = static_cast(v); + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const std::byte& v) const { + static_cast(o) << v; + } +}; + + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // __cplusplus >= 201703 + +#endif // MSGPACK_V1_TYPE_BYTE_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/carray_byte.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/carray_byte.hpp new file mode 100644 index 000000000000..e2be6bc0ea58 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/carray_byte.hpp @@ -0,0 +1,109 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2018 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_CARRAY_BYTE_HPP +#define MSGPACK_V1_TYPE_CARRAY_BYTE_HPP + +#if __cplusplus >= 201703 + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct convert { + msgpack::object const& operator()(msgpack::object const& o, std::byte(&v)[N]) const { + switch (o.type) { + case msgpack::type::BIN: + if (o.via.bin.size > N) { throw msgpack::type_error(); } + std::memcpy(v, o.via.bin.ptr, o.via.bin.size); + break; + case msgpack::type::STR: + if (o.via.str.size > N) { throw msgpack::type_error(); } + std::memcpy(v, o.via.str.ptr, o.via.str.size); + if (o.via.str.size < N) v[o.via.str.size] = std::byte{'\0'}; + break; + default: + throw msgpack::type_error(); + break; + } + return o; + } +}; + +template +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const std::byte(&v)[N]) const { + std::byte const* p = v; + uint32_t size = checked_get_container_size(N); + o.pack_bin(size); + o.pack_bin_body(reinterpret_cast(p), size); + return o; + } +}; + +template +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const std::byte(&v)[N]) const { + std::byte const* p = v; + uint32_t size = checked_get_container_size(N); + o.pack_bin(size); + o.pack_bin_body(reinterpret_cast(p), size); + return o; + } +}; + +template +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const std::byte(&v)[N]) const { + uint32_t size = checked_get_container_size(N); + o.type = msgpack::type::BIN; + char* ptr = static_cast(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); + o.via.bin.ptr = ptr; + o.via.bin.size = size; + std::memcpy(ptr, v, size); + } +}; + +template +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const std::byte(&v)[N]) const { + uint32_t size = checked_get_container_size(N); + o.type = msgpack::type::BIN; + char* ptr = static_cast(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); + o.via.bin.ptr = ptr; + o.via.bin.size = size; + std::memcpy(ptr, v, size); + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // __cplusplus >= 201703 + +#endif // MSGPACK_V1_TYPE_CARRAY_BYTE_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/optional.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/optional.hpp new file mode 100644 index 000000000000..2179ac081a9b --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/optional.hpp @@ -0,0 +1,90 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2017 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_OPTIONAL_HPP +#define MSGPACK_V1_TYPE_OPTIONAL_HPP + +#if __cplusplus >= 201703 + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +#if !defined (MSGPACK_USE_CPP03) + +template +struct as, typename std::enable_if::value>::type> { + std::optional operator()(msgpack::object const& o) const { + if(o.is_nil()) return std::nullopt; + return o.as(); + } +}; + +#endif // !defined (MSGPACK_USE_CPP03) + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, std::optional& v) const { + if(o.is_nil()) v = std::nullopt; + else { + T t; + msgpack::adaptor::convert()(o, t); + v = t; + } + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const std::optional& v) const { + if (v) o.pack(*v); + else o.pack_nil(); + return o; + } +}; + +template +struct object > { + void operator()(msgpack::object& o, const std::optional& v) const { + if (v) msgpack::adaptor::object()(o, *v); + else o.type = msgpack::type::NIL; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const std::optional& v) const { + if (v) msgpack::adaptor::object_with_zone()(o, *v); + else o.type = msgpack::type::NIL; + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // __cplusplus >= 201703 + +#endif // MSGPACK_V1_TYPE_OPTIONAL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/string_view.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/string_view.hpp new file mode 100644 index 000000000000..8ec56c26cf76 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/string_view.hpp @@ -0,0 +1,86 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2017 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_STRING_VIEW_HPP +#define MSGPACK_V1_TYPE_STRING_VIEW_HPP + +#if __cplusplus >= 201703 + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, std::string_view& v) const { + switch (o.type) { + case msgpack::type::BIN: + v = std::string_view(o.via.bin.ptr, o.via.bin.size); + break; + case msgpack::type::STR: + v = std::string_view(o.via.str.ptr, o.via.str.size); + break; + default: + throw msgpack::type_error(); + break; + } + return o; + } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const std::string_view& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_str(size); + o.pack_str_body(v.data(), size); + return o; + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, const std::string_view& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::STR; + o.via.str.ptr = v.data(); + o.via.str.size = size; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const std::string_view& v) const { + static_cast(o) << v; + } +}; + + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // __cplusplus >= 201703 + +#endif // MSGPACK_V1_TYPE_STRING_VIEW_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp new file mode 100644 index 000000000000..e291667edbdc --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp @@ -0,0 +1,119 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2018 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_VECTOR_BYTE_HPP +#define MSGPACK_V1_TYPE_VECTOR_BYTE_HPP + +#if __cplusplus >= 201703 + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, std::vector& v) const { + switch (o.type) { + case msgpack::type::BIN: + v.resize(o.via.bin.size); + if (o.via.bin.size != 0) { +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + std::memcpy(&v.front(), o.via.bin.ptr, o.via.bin.size); +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + } + break; + case msgpack::type::STR: + v.resize(o.via.str.size); + if (o.via.str.size != 0) { +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + std::memcpy(&v.front(), o.via.str.ptr, o.via.str.size); +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + } + break; + default: + throw msgpack::type_error(); + break; + } + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const std::vector& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_bin(size); + if (size != 0) { + o.pack_bin_body(reinterpret_cast(&v.front()), size); + } + + return o; + } +}; + +template +struct object > { + void operator()(msgpack::object& o, const std::vector& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::BIN; + if (size != 0) { + o.via.bin.ptr = reinterpret_cast(&v.front()); + } + o.via.bin.size = size; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const std::vector& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::BIN; + o.via.bin.size = size; + if (size != 0) { + char* ptr = static_cast(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); + o.via.bin.ptr = ptr; + std::memcpy(ptr, &v.front(), size); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // __cplusplus >= 201703 + +#endif // MSGPACK_V1_TYPE_VECTOR_BYTE_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/define.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/define.hpp new file mode 100644 index 000000000000..6a547c75315e --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/define.hpp @@ -0,0 +1,21 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2014 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_DEFINE_HPP +#define MSGPACK_V1_DEFINE_HPP + +#if defined(MSGPACK_USE_CPP03) +#include "msgpack/v1/adaptor/detail/cpp03_define_array.hpp" +#include "msgpack/v1/adaptor/detail/cpp03_define_map.hpp" +#else // MSGPACK_USE_CPP03 +#include "msgpack/v1/adaptor/detail/cpp11_define_array.hpp" +#include "msgpack/v1/adaptor/detail/cpp11_define_map.hpp" +#endif // MSGPACK_USE_CPP03 + +#endif // MSGPACK_V1_DEFINE_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/define_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/define_decl.hpp new file mode 100644 index 000000000000..4e2c9afba8cc --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/define_decl.hpp @@ -0,0 +1,23 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_DEFINE_DECL_HPP +#define MSGPACK_V1_DEFINE_DECL_HPP + +#include "msgpack/cpp_config.hpp" + +#if defined(MSGPACK_USE_CPP03) +#include "msgpack/v1/adaptor/detail/cpp03_define_array_decl.hpp" +#include "msgpack/v1/adaptor/detail/cpp03_define_map_decl.hpp" +#else // MSGPACK_USE_CPP03 +#include "msgpack/v1/adaptor/detail/cpp11_define_array_decl.hpp" +#include "msgpack/v1/adaptor/detail/cpp11_define_map_decl.hpp" +#endif // MSGPACK_USE_CPP03 + +#endif // MSGPACK_V1_DEFINE_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/deque.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/deque.hpp new file mode 100644 index 000000000000..41a0bef696e1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/deque.hpp @@ -0,0 +1,108 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2015 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_DEQUE_HPP +#define MSGPACK_V1_TYPE_DEQUE_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +#if !defined(MSGPACK_USE_CPP03) + +template +struct as, typename std::enable_if::value>::type> { + std::deque operator()(const msgpack::object& o) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + std::deque v; + if (o.via.array.size > 0) { + msgpack::object* p = o.via.array.ptr; + msgpack::object* const pend = o.via.array.ptr + o.via.array.size; + do { + v.push_back(p->as()); + ++p; + } while (p < pend); + } + return v; + } +}; + +#endif // !defined(MSGPACK_USE_CPP03) + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, std::deque& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + v.resize(o.via.array.size); + msgpack::object* p = o.via.array.ptr; + msgpack::object* const pend = o.via.array.ptr + o.via.array.size; + typename std::deque::iterator it = v.begin(); + for(; p < pend; ++p, ++it) { + p->convert(*it); + } + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const std::deque& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for(typename std::deque::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(*it); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const std::deque& v) const { + o.type = msgpack::type::ARRAY; + if(v.empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + msgpack::object* const pend = p + size; + o.via.array.ptr = p; + o.via.array.size = size; + typename std::deque::const_iterator it(v.begin()); + do { + *p = msgpack::object(*it, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_DEQUE_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp new file mode 100644 index 000000000000..c81582926014 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp @@ -0,0 +1,4481 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP03_DEFINE_ARRAY_HPP +#define MSGPACK_V1_CPP03_DEFINE_ARRAY_HPP + +#include "msgpack/v1/adaptor/detail/cpp03_define_array_decl.hpp" +#include "msgpack/adaptor/msgpack_tuple.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/object_fwd.hpp" + +namespace msgpack { +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond +namespace type { + + +template <> +struct define_array<> { + typedef define_array<> value_type; + typedef tuple<> tuple_type; + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(0); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + } + void msgpack_object(msgpack::object* o, msgpack::zone&) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = MSGPACK_NULLPTR; + o->via.array.size = 0; + } +}; + +/// @cond + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0) : + a0(_a0) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(1); + + pk.pack(a0); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*1, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 1; + + o->via.array.ptr[0] = msgpack::object(a0, z); + } + + A0& a0; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1) : + a0(_a0), a1(_a1) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(2); + + pk.pack(a0); + pk.pack(a1); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*2, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 2; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + } + + A0& a0; + A1& a1; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2) : + a0(_a0), a1(_a1), a2(_a2) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(3); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*3, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 3; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + } + + A0& a0; + A1& a1; + A2& a2; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(4); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*4, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 4; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(5); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*5, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 5; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(6); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*6, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 6; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(7); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*7, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 7; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(8); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*8, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 8; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(9); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*9, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 9; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(10); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*10, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 10; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(11); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*11, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 11; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(12); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*12, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 12; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(13); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*13, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 13; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(14); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*14, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 14; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(15); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*15, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 15; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(16); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*16, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 16; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(17); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*17, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 17; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(18); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*18, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 18; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(19); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 19: ptr[18].convert(a18); + // fallthrough + + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*19, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 19; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + o->via.array.ptr[18] = msgpack::object(a18, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(20); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 20: ptr[19].convert(a19); + // fallthrough + + case 19: ptr[18].convert(a18); + // fallthrough + + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*20, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 20; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + o->via.array.ptr[18] = msgpack::object(a18, z); + o->via.array.ptr[19] = msgpack::object(a19, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(21); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 21: ptr[20].convert(a20); + // fallthrough + + case 20: ptr[19].convert(a19); + // fallthrough + + case 19: ptr[18].convert(a18); + // fallthrough + + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*21, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 21; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + o->via.array.ptr[18] = msgpack::object(a18, z); + o->via.array.ptr[19] = msgpack::object(a19, z); + o->via.array.ptr[20] = msgpack::object(a20, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(22); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 22: ptr[21].convert(a21); + // fallthrough + + case 21: ptr[20].convert(a20); + // fallthrough + + case 20: ptr[19].convert(a19); + // fallthrough + + case 19: ptr[18].convert(a18); + // fallthrough + + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*22, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 22; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + o->via.array.ptr[18] = msgpack::object(a18, z); + o->via.array.ptr[19] = msgpack::object(a19, z); + o->via.array.ptr[20] = msgpack::object(a20, z); + o->via.array.ptr[21] = msgpack::object(a21, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(23); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 23: ptr[22].convert(a22); + // fallthrough + + case 22: ptr[21].convert(a21); + // fallthrough + + case 21: ptr[20].convert(a20); + // fallthrough + + case 20: ptr[19].convert(a19); + // fallthrough + + case 19: ptr[18].convert(a18); + // fallthrough + + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*23, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 23; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + o->via.array.ptr[18] = msgpack::object(a18, z); + o->via.array.ptr[19] = msgpack::object(a19, z); + o->via.array.ptr[20] = msgpack::object(a20, z); + o->via.array.ptr[21] = msgpack::object(a21, z); + o->via.array.ptr[22] = msgpack::object(a22, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(24); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + pk.pack(a23); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 24: ptr[23].convert(a23); + // fallthrough + + case 23: ptr[22].convert(a22); + // fallthrough + + case 22: ptr[21].convert(a21); + // fallthrough + + case 21: ptr[20].convert(a20); + // fallthrough + + case 20: ptr[19].convert(a19); + // fallthrough + + case 19: ptr[18].convert(a18); + // fallthrough + + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*24, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 24; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + o->via.array.ptr[18] = msgpack::object(a18, z); + o->via.array.ptr[19] = msgpack::object(a19, z); + o->via.array.ptr[20] = msgpack::object(a20, z); + o->via.array.ptr[21] = msgpack::object(a21, z); + o->via.array.ptr[22] = msgpack::object(a22, z); + o->via.array.ptr[23] = msgpack::object(a23, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; + A23& a23; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(25); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + pk.pack(a23); + pk.pack(a24); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 25: ptr[24].convert(a24); + // fallthrough + + case 24: ptr[23].convert(a23); + // fallthrough + + case 23: ptr[22].convert(a22); + // fallthrough + + case 22: ptr[21].convert(a21); + // fallthrough + + case 21: ptr[20].convert(a20); + // fallthrough + + case 20: ptr[19].convert(a19); + // fallthrough + + case 19: ptr[18].convert(a18); + // fallthrough + + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*25, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 25; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + o->via.array.ptr[18] = msgpack::object(a18, z); + o->via.array.ptr[19] = msgpack::object(a19, z); + o->via.array.ptr[20] = msgpack::object(a20, z); + o->via.array.ptr[21] = msgpack::object(a21, z); + o->via.array.ptr[22] = msgpack::object(a22, z); + o->via.array.ptr[23] = msgpack::object(a23, z); + o->via.array.ptr[24] = msgpack::object(a24, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; + A23& a23; + A24& a24; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(26); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + pk.pack(a23); + pk.pack(a24); + pk.pack(a25); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 26: ptr[25].convert(a25); + // fallthrough + + case 25: ptr[24].convert(a24); + // fallthrough + + case 24: ptr[23].convert(a23); + // fallthrough + + case 23: ptr[22].convert(a22); + // fallthrough + + case 22: ptr[21].convert(a21); + // fallthrough + + case 21: ptr[20].convert(a20); + // fallthrough + + case 20: ptr[19].convert(a19); + // fallthrough + + case 19: ptr[18].convert(a18); + // fallthrough + + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*26, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 26; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + o->via.array.ptr[18] = msgpack::object(a18, z); + o->via.array.ptr[19] = msgpack::object(a19, z); + o->via.array.ptr[20] = msgpack::object(a20, z); + o->via.array.ptr[21] = msgpack::object(a21, z); + o->via.array.ptr[22] = msgpack::object(a22, z); + o->via.array.ptr[23] = msgpack::object(a23, z); + o->via.array.ptr[24] = msgpack::object(a24, z); + o->via.array.ptr[25] = msgpack::object(a25, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; + A23& a23; + A24& a24; + A25& a25; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(27); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + pk.pack(a23); + pk.pack(a24); + pk.pack(a25); + pk.pack(a26); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 27: ptr[26].convert(a26); + // fallthrough + + case 26: ptr[25].convert(a25); + // fallthrough + + case 25: ptr[24].convert(a24); + // fallthrough + + case 24: ptr[23].convert(a23); + // fallthrough + + case 23: ptr[22].convert(a22); + // fallthrough + + case 22: ptr[21].convert(a21); + // fallthrough + + case 21: ptr[20].convert(a20); + // fallthrough + + case 20: ptr[19].convert(a19); + // fallthrough + + case 19: ptr[18].convert(a18); + // fallthrough + + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*27, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 27; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + o->via.array.ptr[18] = msgpack::object(a18, z); + o->via.array.ptr[19] = msgpack::object(a19, z); + o->via.array.ptr[20] = msgpack::object(a20, z); + o->via.array.ptr[21] = msgpack::object(a21, z); + o->via.array.ptr[22] = msgpack::object(a22, z); + o->via.array.ptr[23] = msgpack::object(a23, z); + o->via.array.ptr[24] = msgpack::object(a24, z); + o->via.array.ptr[25] = msgpack::object(a25, z); + o->via.array.ptr[26] = msgpack::object(a26, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; + A23& a23; + A24& a24; + A25& a25; + A26& a26; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(28); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + pk.pack(a23); + pk.pack(a24); + pk.pack(a25); + pk.pack(a26); + pk.pack(a27); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 28: ptr[27].convert(a27); + // fallthrough + + case 27: ptr[26].convert(a26); + // fallthrough + + case 26: ptr[25].convert(a25); + // fallthrough + + case 25: ptr[24].convert(a24); + // fallthrough + + case 24: ptr[23].convert(a23); + // fallthrough + + case 23: ptr[22].convert(a22); + // fallthrough + + case 22: ptr[21].convert(a21); + // fallthrough + + case 21: ptr[20].convert(a20); + // fallthrough + + case 20: ptr[19].convert(a19); + // fallthrough + + case 19: ptr[18].convert(a18); + // fallthrough + + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*28, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 28; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + o->via.array.ptr[18] = msgpack::object(a18, z); + o->via.array.ptr[19] = msgpack::object(a19, z); + o->via.array.ptr[20] = msgpack::object(a20, z); + o->via.array.ptr[21] = msgpack::object(a21, z); + o->via.array.ptr[22] = msgpack::object(a22, z); + o->via.array.ptr[23] = msgpack::object(a23, z); + o->via.array.ptr[24] = msgpack::object(a24, z); + o->via.array.ptr[25] = msgpack::object(a25, z); + o->via.array.ptr[26] = msgpack::object(a26, z); + o->via.array.ptr[27] = msgpack::object(a27, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; + A23& a23; + A24& a24; + A25& a25; + A26& a26; + A27& a27; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(29); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + pk.pack(a23); + pk.pack(a24); + pk.pack(a25); + pk.pack(a26); + pk.pack(a27); + pk.pack(a28); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 29: ptr[28].convert(a28); + // fallthrough + + case 28: ptr[27].convert(a27); + // fallthrough + + case 27: ptr[26].convert(a26); + // fallthrough + + case 26: ptr[25].convert(a25); + // fallthrough + + case 25: ptr[24].convert(a24); + // fallthrough + + case 24: ptr[23].convert(a23); + // fallthrough + + case 23: ptr[22].convert(a22); + // fallthrough + + case 22: ptr[21].convert(a21); + // fallthrough + + case 21: ptr[20].convert(a20); + // fallthrough + + case 20: ptr[19].convert(a19); + // fallthrough + + case 19: ptr[18].convert(a18); + // fallthrough + + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*29, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 29; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + o->via.array.ptr[18] = msgpack::object(a18, z); + o->via.array.ptr[19] = msgpack::object(a19, z); + o->via.array.ptr[20] = msgpack::object(a20, z); + o->via.array.ptr[21] = msgpack::object(a21, z); + o->via.array.ptr[22] = msgpack::object(a22, z); + o->via.array.ptr[23] = msgpack::object(a23, z); + o->via.array.ptr[24] = msgpack::object(a24, z); + o->via.array.ptr[25] = msgpack::object(a25, z); + o->via.array.ptr[26] = msgpack::object(a26, z); + o->via.array.ptr[27] = msgpack::object(a27, z); + o->via.array.ptr[28] = msgpack::object(a28, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; + A23& a23; + A24& a24; + A25& a25; + A26& a26; + A27& a27; + A28& a28; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28, A29& _a29) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(30); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + pk.pack(a23); + pk.pack(a24); + pk.pack(a25); + pk.pack(a26); + pk.pack(a27); + pk.pack(a28); + pk.pack(a29); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 30: ptr[29].convert(a29); + // fallthrough + + case 29: ptr[28].convert(a28); + // fallthrough + + case 28: ptr[27].convert(a27); + // fallthrough + + case 27: ptr[26].convert(a26); + // fallthrough + + case 26: ptr[25].convert(a25); + // fallthrough + + case 25: ptr[24].convert(a24); + // fallthrough + + case 24: ptr[23].convert(a23); + // fallthrough + + case 23: ptr[22].convert(a22); + // fallthrough + + case 22: ptr[21].convert(a21); + // fallthrough + + case 21: ptr[20].convert(a20); + // fallthrough + + case 20: ptr[19].convert(a19); + // fallthrough + + case 19: ptr[18].convert(a18); + // fallthrough + + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*30, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 30; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + o->via.array.ptr[18] = msgpack::object(a18, z); + o->via.array.ptr[19] = msgpack::object(a19, z); + o->via.array.ptr[20] = msgpack::object(a20, z); + o->via.array.ptr[21] = msgpack::object(a21, z); + o->via.array.ptr[22] = msgpack::object(a22, z); + o->via.array.ptr[23] = msgpack::object(a23, z); + o->via.array.ptr[24] = msgpack::object(a24, z); + o->via.array.ptr[25] = msgpack::object(a25, z); + o->via.array.ptr[26] = msgpack::object(a26, z); + o->via.array.ptr[27] = msgpack::object(a27, z); + o->via.array.ptr[28] = msgpack::object(a28, z); + o->via.array.ptr[29] = msgpack::object(a29, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; + A23& a23; + A24& a24; + A25& a25; + A26& a26; + A27& a27; + A28& a28; + A29& a29; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28, A29& _a29, A30& _a30) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(31); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + pk.pack(a23); + pk.pack(a24); + pk.pack(a25); + pk.pack(a26); + pk.pack(a27); + pk.pack(a28); + pk.pack(a29); + pk.pack(a30); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 31: ptr[30].convert(a30); + // fallthrough + + case 30: ptr[29].convert(a29); + // fallthrough + + case 29: ptr[28].convert(a28); + // fallthrough + + case 28: ptr[27].convert(a27); + // fallthrough + + case 27: ptr[26].convert(a26); + // fallthrough + + case 26: ptr[25].convert(a25); + // fallthrough + + case 25: ptr[24].convert(a24); + // fallthrough + + case 24: ptr[23].convert(a23); + // fallthrough + + case 23: ptr[22].convert(a22); + // fallthrough + + case 22: ptr[21].convert(a21); + // fallthrough + + case 21: ptr[20].convert(a20); + // fallthrough + + case 20: ptr[19].convert(a19); + // fallthrough + + case 19: ptr[18].convert(a18); + // fallthrough + + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*31, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 31; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + o->via.array.ptr[18] = msgpack::object(a18, z); + o->via.array.ptr[19] = msgpack::object(a19, z); + o->via.array.ptr[20] = msgpack::object(a20, z); + o->via.array.ptr[21] = msgpack::object(a21, z); + o->via.array.ptr[22] = msgpack::object(a22, z); + o->via.array.ptr[23] = msgpack::object(a23, z); + o->via.array.ptr[24] = msgpack::object(a24, z); + o->via.array.ptr[25] = msgpack::object(a25, z); + o->via.array.ptr[26] = msgpack::object(a26, z); + o->via.array.ptr[27] = msgpack::object(a27, z); + o->via.array.ptr[28] = msgpack::object(a28, z); + o->via.array.ptr[29] = msgpack::object(a29, z); + o->via.array.ptr[30] = msgpack::object(a30, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; + A23& a23; + A24& a24; + A25& a25; + A26& a26; + A27& a27; + A28& a28; + A29& a29; + A30& a30; +}; + +template +struct define_array { + typedef define_array value_type; + typedef tuple tuple_type; + define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28, A29& _a29, A30& _a30, A31& _a31) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30), a31(_a31) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(32); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + pk.pack(a23); + pk.pack(a24); + pk.pack(a25); + pk.pack(a26); + pk.pack(a27); + pk.pack(a28); + pk.pack(a29); + pk.pack(a30); + pk.pack(a31); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + const size_t size = o.via.array.size; + if(size > 0) { + msgpack::object *ptr = o.via.array.ptr; + switch(size) { + default: + case 32: ptr[31].convert(a31); + // fallthrough + + case 31: ptr[30].convert(a30); + // fallthrough + + case 30: ptr[29].convert(a29); + // fallthrough + + case 29: ptr[28].convert(a28); + // fallthrough + + case 28: ptr[27].convert(a27); + // fallthrough + + case 27: ptr[26].convert(a26); + // fallthrough + + case 26: ptr[25].convert(a25); + // fallthrough + + case 25: ptr[24].convert(a24); + // fallthrough + + case 24: ptr[23].convert(a23); + // fallthrough + + case 23: ptr[22].convert(a22); + // fallthrough + + case 22: ptr[21].convert(a21); + // fallthrough + + case 21: ptr[20].convert(a20); + // fallthrough + + case 20: ptr[19].convert(a19); + // fallthrough + + case 19: ptr[18].convert(a18); + // fallthrough + + case 18: ptr[17].convert(a17); + // fallthrough + + case 17: ptr[16].convert(a16); + // fallthrough + + case 16: ptr[15].convert(a15); + // fallthrough + + case 15: ptr[14].convert(a14); + // fallthrough + + case 14: ptr[13].convert(a13); + // fallthrough + + case 13: ptr[12].convert(a12); + // fallthrough + + case 12: ptr[11].convert(a11); + // fallthrough + + case 11: ptr[10].convert(a10); + // fallthrough + + case 10: ptr[9].convert(a9); + // fallthrough + + case 9: ptr[8].convert(a8); + // fallthrough + + case 8: ptr[7].convert(a7); + // fallthrough + + case 7: ptr[6].convert(a6); + // fallthrough + + case 6: ptr[5].convert(a5); + // fallthrough + + case 5: ptr[4].convert(a4); + // fallthrough + + case 4: ptr[3].convert(a3); + // fallthrough + + case 3: ptr[2].convert(a2); + // fallthrough + + case 2: ptr[1].convert(a1); + // fallthrough + + case 1: ptr[0].convert(a0); + // fallthrough + + } + } + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*32, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = 32; + + o->via.array.ptr[0] = msgpack::object(a0, z); + o->via.array.ptr[1] = msgpack::object(a1, z); + o->via.array.ptr[2] = msgpack::object(a2, z); + o->via.array.ptr[3] = msgpack::object(a3, z); + o->via.array.ptr[4] = msgpack::object(a4, z); + o->via.array.ptr[5] = msgpack::object(a5, z); + o->via.array.ptr[6] = msgpack::object(a6, z); + o->via.array.ptr[7] = msgpack::object(a7, z); + o->via.array.ptr[8] = msgpack::object(a8, z); + o->via.array.ptr[9] = msgpack::object(a9, z); + o->via.array.ptr[10] = msgpack::object(a10, z); + o->via.array.ptr[11] = msgpack::object(a11, z); + o->via.array.ptr[12] = msgpack::object(a12, z); + o->via.array.ptr[13] = msgpack::object(a13, z); + o->via.array.ptr[14] = msgpack::object(a14, z); + o->via.array.ptr[15] = msgpack::object(a15, z); + o->via.array.ptr[16] = msgpack::object(a16, z); + o->via.array.ptr[17] = msgpack::object(a17, z); + o->via.array.ptr[18] = msgpack::object(a18, z); + o->via.array.ptr[19] = msgpack::object(a19, z); + o->via.array.ptr[20] = msgpack::object(a20, z); + o->via.array.ptr[21] = msgpack::object(a21, z); + o->via.array.ptr[22] = msgpack::object(a22, z); + o->via.array.ptr[23] = msgpack::object(a23, z); + o->via.array.ptr[24] = msgpack::object(a24, z); + o->via.array.ptr[25] = msgpack::object(a25, z); + o->via.array.ptr[26] = msgpack::object(a26, z); + o->via.array.ptr[27] = msgpack::object(a27, z); + o->via.array.ptr[28] = msgpack::object(a28, z); + o->via.array.ptr[29] = msgpack::object(a29, z); + o->via.array.ptr[30] = msgpack::object(a30, z); + o->via.array.ptr[31] = msgpack::object(a31, z); + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; + A23& a23; + A24& a24; + A25& a25; + A26& a26; + A27& a27; + A28& a28; + A29& a29; + A30& a30; + A31& a31; +}; + +/// @endcond + +inline define_array<> make_define_array() +{ + return define_array<>(); +} + +/// @cond + +template +inline define_array make_define_array(A0& a0) +{ + return define_array(a0); +} + +template +inline define_array make_define_array(A0& a0, A1& a1) +{ + return define_array(a0, a1); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2) +{ + return define_array(a0, a1, a2); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3) +{ + return define_array(a0, a1, a2, a3); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4) +{ + return define_array(a0, a1, a2, a3, a4); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5) +{ + return define_array(a0, a1, a2, a3, a4, a5); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30); +} + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30, A31& a31) +{ + return define_array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31); +} + +/// @endcond + +} // namespace type +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond +} // namespace msgpack + +#endif // MSGPACK_V1_CPP03_DEFINE_ARRAY_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_array_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_array_decl.hpp new file mode 100644 index 000000000000..987de9668986 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_array_decl.hpp @@ -0,0 +1,135 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP03_DEFINE_ARRAY_DECL_HPP +#define MSGPACK_V1_CPP03_DEFINE_ARRAY_DECL_HPP + +#include "msgpack/versioning.hpp" + +namespace msgpack { +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond +namespace type { + +/// @cond + +template +struct define_array; +/// @endcond + +define_array<> make_define_array(); + +/// @cond + +template +inline define_array make_define_array(A0& a0); + +template +inline define_array make_define_array(A0& a0, A1& a1); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30); + +template +inline define_array make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30, A31& a31); + +/// @endcond + +} // namespace type +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond +} // namespace msgpack + +#endif // MSGPACK_V1_CPP03_DEFINE_ARRAY_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_map.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_map.hpp new file mode 100644 index 000000000000..7869b98e77bd --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_map.hpp @@ -0,0 +1,2753 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP03_DEFINE_MAP_HPP +#define MSGPACK_V1_CPP03_DEFINE_MAP_HPP + +#include "msgpack/v1/adaptor/detail/cpp03_define_map_decl.hpp" +#include "msgpack/adaptor/msgpack_tuple.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/object_fwd.hpp" + +#include + +namespace msgpack { +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond +namespace type { + + +template <> +struct define_map<> { + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(0); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + } + void msgpack_object(msgpack::object* o, msgpack::zone&) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = MSGPACK_NULLPTR; + o->via.map.size = 0; + } +}; + +/// @cond + +template +struct define_map { + define_map(A0& _a0, A1& _a1) : + a0(_a0), a1(_a1) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(1); + + pk.pack(a0); + pk.pack(a1); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*1, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 1; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + } + + A0& a0; + A1& a1; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(2); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*2, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 2; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(3); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + { + std::map::const_iterator it = kvmap.find(a4); + if (it != kvmap.end()) { + it->second->convert(a5); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*3, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 3; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + o->via.map.ptr[2].key = msgpack::object(a4, z); + o->via.map.ptr[2].val = msgpack::object(a5, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(4); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + { + std::map::const_iterator it = kvmap.find(a4); + if (it != kvmap.end()) { + it->second->convert(a5); + } + } + + { + std::map::const_iterator it = kvmap.find(a6); + if (it != kvmap.end()) { + it->second->convert(a7); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*4, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 4; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + o->via.map.ptr[2].key = msgpack::object(a4, z); + o->via.map.ptr[2].val = msgpack::object(a5, z); + + o->via.map.ptr[3].key = msgpack::object(a6, z); + o->via.map.ptr[3].val = msgpack::object(a7, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(5); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + { + std::map::const_iterator it = kvmap.find(a4); + if (it != kvmap.end()) { + it->second->convert(a5); + } + } + + { + std::map::const_iterator it = kvmap.find(a6); + if (it != kvmap.end()) { + it->second->convert(a7); + } + } + + { + std::map::const_iterator it = kvmap.find(a8); + if (it != kvmap.end()) { + it->second->convert(a9); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*5, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 5; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + o->via.map.ptr[2].key = msgpack::object(a4, z); + o->via.map.ptr[2].val = msgpack::object(a5, z); + + o->via.map.ptr[3].key = msgpack::object(a6, z); + o->via.map.ptr[3].val = msgpack::object(a7, z); + + o->via.map.ptr[4].key = msgpack::object(a8, z); + o->via.map.ptr[4].val = msgpack::object(a9, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(6); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + { + std::map::const_iterator it = kvmap.find(a4); + if (it != kvmap.end()) { + it->second->convert(a5); + } + } + + { + std::map::const_iterator it = kvmap.find(a6); + if (it != kvmap.end()) { + it->second->convert(a7); + } + } + + { + std::map::const_iterator it = kvmap.find(a8); + if (it != kvmap.end()) { + it->second->convert(a9); + } + } + + { + std::map::const_iterator it = kvmap.find(a10); + if (it != kvmap.end()) { + it->second->convert(a11); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*6, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 6; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + o->via.map.ptr[2].key = msgpack::object(a4, z); + o->via.map.ptr[2].val = msgpack::object(a5, z); + + o->via.map.ptr[3].key = msgpack::object(a6, z); + o->via.map.ptr[3].val = msgpack::object(a7, z); + + o->via.map.ptr[4].key = msgpack::object(a8, z); + o->via.map.ptr[4].val = msgpack::object(a9, z); + + o->via.map.ptr[5].key = msgpack::object(a10, z); + o->via.map.ptr[5].val = msgpack::object(a11, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(7); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + { + std::map::const_iterator it = kvmap.find(a4); + if (it != kvmap.end()) { + it->second->convert(a5); + } + } + + { + std::map::const_iterator it = kvmap.find(a6); + if (it != kvmap.end()) { + it->second->convert(a7); + } + } + + { + std::map::const_iterator it = kvmap.find(a8); + if (it != kvmap.end()) { + it->second->convert(a9); + } + } + + { + std::map::const_iterator it = kvmap.find(a10); + if (it != kvmap.end()) { + it->second->convert(a11); + } + } + + { + std::map::const_iterator it = kvmap.find(a12); + if (it != kvmap.end()) { + it->second->convert(a13); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*7, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 7; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + o->via.map.ptr[2].key = msgpack::object(a4, z); + o->via.map.ptr[2].val = msgpack::object(a5, z); + + o->via.map.ptr[3].key = msgpack::object(a6, z); + o->via.map.ptr[3].val = msgpack::object(a7, z); + + o->via.map.ptr[4].key = msgpack::object(a8, z); + o->via.map.ptr[4].val = msgpack::object(a9, z); + + o->via.map.ptr[5].key = msgpack::object(a10, z); + o->via.map.ptr[5].val = msgpack::object(a11, z); + + o->via.map.ptr[6].key = msgpack::object(a12, z); + o->via.map.ptr[6].val = msgpack::object(a13, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(8); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + { + std::map::const_iterator it = kvmap.find(a4); + if (it != kvmap.end()) { + it->second->convert(a5); + } + } + + { + std::map::const_iterator it = kvmap.find(a6); + if (it != kvmap.end()) { + it->second->convert(a7); + } + } + + { + std::map::const_iterator it = kvmap.find(a8); + if (it != kvmap.end()) { + it->second->convert(a9); + } + } + + { + std::map::const_iterator it = kvmap.find(a10); + if (it != kvmap.end()) { + it->second->convert(a11); + } + } + + { + std::map::const_iterator it = kvmap.find(a12); + if (it != kvmap.end()) { + it->second->convert(a13); + } + } + + { + std::map::const_iterator it = kvmap.find(a14); + if (it != kvmap.end()) { + it->second->convert(a15); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*8, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 8; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + o->via.map.ptr[2].key = msgpack::object(a4, z); + o->via.map.ptr[2].val = msgpack::object(a5, z); + + o->via.map.ptr[3].key = msgpack::object(a6, z); + o->via.map.ptr[3].val = msgpack::object(a7, z); + + o->via.map.ptr[4].key = msgpack::object(a8, z); + o->via.map.ptr[4].val = msgpack::object(a9, z); + + o->via.map.ptr[5].key = msgpack::object(a10, z); + o->via.map.ptr[5].val = msgpack::object(a11, z); + + o->via.map.ptr[6].key = msgpack::object(a12, z); + o->via.map.ptr[6].val = msgpack::object(a13, z); + + o->via.map.ptr[7].key = msgpack::object(a14, z); + o->via.map.ptr[7].val = msgpack::object(a15, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(9); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + { + std::map::const_iterator it = kvmap.find(a4); + if (it != kvmap.end()) { + it->second->convert(a5); + } + } + + { + std::map::const_iterator it = kvmap.find(a6); + if (it != kvmap.end()) { + it->second->convert(a7); + } + } + + { + std::map::const_iterator it = kvmap.find(a8); + if (it != kvmap.end()) { + it->second->convert(a9); + } + } + + { + std::map::const_iterator it = kvmap.find(a10); + if (it != kvmap.end()) { + it->second->convert(a11); + } + } + + { + std::map::const_iterator it = kvmap.find(a12); + if (it != kvmap.end()) { + it->second->convert(a13); + } + } + + { + std::map::const_iterator it = kvmap.find(a14); + if (it != kvmap.end()) { + it->second->convert(a15); + } + } + + { + std::map::const_iterator it = kvmap.find(a16); + if (it != kvmap.end()) { + it->second->convert(a17); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*9, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 9; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + o->via.map.ptr[2].key = msgpack::object(a4, z); + o->via.map.ptr[2].val = msgpack::object(a5, z); + + o->via.map.ptr[3].key = msgpack::object(a6, z); + o->via.map.ptr[3].val = msgpack::object(a7, z); + + o->via.map.ptr[4].key = msgpack::object(a8, z); + o->via.map.ptr[4].val = msgpack::object(a9, z); + + o->via.map.ptr[5].key = msgpack::object(a10, z); + o->via.map.ptr[5].val = msgpack::object(a11, z); + + o->via.map.ptr[6].key = msgpack::object(a12, z); + o->via.map.ptr[6].val = msgpack::object(a13, z); + + o->via.map.ptr[7].key = msgpack::object(a14, z); + o->via.map.ptr[7].val = msgpack::object(a15, z); + + o->via.map.ptr[8].key = msgpack::object(a16, z); + o->via.map.ptr[8].val = msgpack::object(a17, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(10); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + { + std::map::const_iterator it = kvmap.find(a4); + if (it != kvmap.end()) { + it->second->convert(a5); + } + } + + { + std::map::const_iterator it = kvmap.find(a6); + if (it != kvmap.end()) { + it->second->convert(a7); + } + } + + { + std::map::const_iterator it = kvmap.find(a8); + if (it != kvmap.end()) { + it->second->convert(a9); + } + } + + { + std::map::const_iterator it = kvmap.find(a10); + if (it != kvmap.end()) { + it->second->convert(a11); + } + } + + { + std::map::const_iterator it = kvmap.find(a12); + if (it != kvmap.end()) { + it->second->convert(a13); + } + } + + { + std::map::const_iterator it = kvmap.find(a14); + if (it != kvmap.end()) { + it->second->convert(a15); + } + } + + { + std::map::const_iterator it = kvmap.find(a16); + if (it != kvmap.end()) { + it->second->convert(a17); + } + } + + { + std::map::const_iterator it = kvmap.find(a18); + if (it != kvmap.end()) { + it->second->convert(a19); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*10, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 10; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + o->via.map.ptr[2].key = msgpack::object(a4, z); + o->via.map.ptr[2].val = msgpack::object(a5, z); + + o->via.map.ptr[3].key = msgpack::object(a6, z); + o->via.map.ptr[3].val = msgpack::object(a7, z); + + o->via.map.ptr[4].key = msgpack::object(a8, z); + o->via.map.ptr[4].val = msgpack::object(a9, z); + + o->via.map.ptr[5].key = msgpack::object(a10, z); + o->via.map.ptr[5].val = msgpack::object(a11, z); + + o->via.map.ptr[6].key = msgpack::object(a12, z); + o->via.map.ptr[6].val = msgpack::object(a13, z); + + o->via.map.ptr[7].key = msgpack::object(a14, z); + o->via.map.ptr[7].val = msgpack::object(a15, z); + + o->via.map.ptr[8].key = msgpack::object(a16, z); + o->via.map.ptr[8].val = msgpack::object(a17, z); + + o->via.map.ptr[9].key = msgpack::object(a18, z); + o->via.map.ptr[9].val = msgpack::object(a19, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(11); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + { + std::map::const_iterator it = kvmap.find(a4); + if (it != kvmap.end()) { + it->second->convert(a5); + } + } + + { + std::map::const_iterator it = kvmap.find(a6); + if (it != kvmap.end()) { + it->second->convert(a7); + } + } + + { + std::map::const_iterator it = kvmap.find(a8); + if (it != kvmap.end()) { + it->second->convert(a9); + } + } + + { + std::map::const_iterator it = kvmap.find(a10); + if (it != kvmap.end()) { + it->second->convert(a11); + } + } + + { + std::map::const_iterator it = kvmap.find(a12); + if (it != kvmap.end()) { + it->second->convert(a13); + } + } + + { + std::map::const_iterator it = kvmap.find(a14); + if (it != kvmap.end()) { + it->second->convert(a15); + } + } + + { + std::map::const_iterator it = kvmap.find(a16); + if (it != kvmap.end()) { + it->second->convert(a17); + } + } + + { + std::map::const_iterator it = kvmap.find(a18); + if (it != kvmap.end()) { + it->second->convert(a19); + } + } + + { + std::map::const_iterator it = kvmap.find(a20); + if (it != kvmap.end()) { + it->second->convert(a21); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*11, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 11; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + o->via.map.ptr[2].key = msgpack::object(a4, z); + o->via.map.ptr[2].val = msgpack::object(a5, z); + + o->via.map.ptr[3].key = msgpack::object(a6, z); + o->via.map.ptr[3].val = msgpack::object(a7, z); + + o->via.map.ptr[4].key = msgpack::object(a8, z); + o->via.map.ptr[4].val = msgpack::object(a9, z); + + o->via.map.ptr[5].key = msgpack::object(a10, z); + o->via.map.ptr[5].val = msgpack::object(a11, z); + + o->via.map.ptr[6].key = msgpack::object(a12, z); + o->via.map.ptr[6].val = msgpack::object(a13, z); + + o->via.map.ptr[7].key = msgpack::object(a14, z); + o->via.map.ptr[7].val = msgpack::object(a15, z); + + o->via.map.ptr[8].key = msgpack::object(a16, z); + o->via.map.ptr[8].val = msgpack::object(a17, z); + + o->via.map.ptr[9].key = msgpack::object(a18, z); + o->via.map.ptr[9].val = msgpack::object(a19, z); + + o->via.map.ptr[10].key = msgpack::object(a20, z); + o->via.map.ptr[10].val = msgpack::object(a21, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(12); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + pk.pack(a23); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + { + std::map::const_iterator it = kvmap.find(a4); + if (it != kvmap.end()) { + it->second->convert(a5); + } + } + + { + std::map::const_iterator it = kvmap.find(a6); + if (it != kvmap.end()) { + it->second->convert(a7); + } + } + + { + std::map::const_iterator it = kvmap.find(a8); + if (it != kvmap.end()) { + it->second->convert(a9); + } + } + + { + std::map::const_iterator it = kvmap.find(a10); + if (it != kvmap.end()) { + it->second->convert(a11); + } + } + + { + std::map::const_iterator it = kvmap.find(a12); + if (it != kvmap.end()) { + it->second->convert(a13); + } + } + + { + std::map::const_iterator it = kvmap.find(a14); + if (it != kvmap.end()) { + it->second->convert(a15); + } + } + + { + std::map::const_iterator it = kvmap.find(a16); + if (it != kvmap.end()) { + it->second->convert(a17); + } + } + + { + std::map::const_iterator it = kvmap.find(a18); + if (it != kvmap.end()) { + it->second->convert(a19); + } + } + + { + std::map::const_iterator it = kvmap.find(a20); + if (it != kvmap.end()) { + it->second->convert(a21); + } + } + + { + std::map::const_iterator it = kvmap.find(a22); + if (it != kvmap.end()) { + it->second->convert(a23); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*12, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 12; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + o->via.map.ptr[2].key = msgpack::object(a4, z); + o->via.map.ptr[2].val = msgpack::object(a5, z); + + o->via.map.ptr[3].key = msgpack::object(a6, z); + o->via.map.ptr[3].val = msgpack::object(a7, z); + + o->via.map.ptr[4].key = msgpack::object(a8, z); + o->via.map.ptr[4].val = msgpack::object(a9, z); + + o->via.map.ptr[5].key = msgpack::object(a10, z); + o->via.map.ptr[5].val = msgpack::object(a11, z); + + o->via.map.ptr[6].key = msgpack::object(a12, z); + o->via.map.ptr[6].val = msgpack::object(a13, z); + + o->via.map.ptr[7].key = msgpack::object(a14, z); + o->via.map.ptr[7].val = msgpack::object(a15, z); + + o->via.map.ptr[8].key = msgpack::object(a16, z); + o->via.map.ptr[8].val = msgpack::object(a17, z); + + o->via.map.ptr[9].key = msgpack::object(a18, z); + o->via.map.ptr[9].val = msgpack::object(a19, z); + + o->via.map.ptr[10].key = msgpack::object(a20, z); + o->via.map.ptr[10].val = msgpack::object(a21, z); + + o->via.map.ptr[11].key = msgpack::object(a22, z); + o->via.map.ptr[11].val = msgpack::object(a23, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; + A23& a23; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(13); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + pk.pack(a23); + pk.pack(a24); + pk.pack(a25); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + { + std::map::const_iterator it = kvmap.find(a4); + if (it != kvmap.end()) { + it->second->convert(a5); + } + } + + { + std::map::const_iterator it = kvmap.find(a6); + if (it != kvmap.end()) { + it->second->convert(a7); + } + } + + { + std::map::const_iterator it = kvmap.find(a8); + if (it != kvmap.end()) { + it->second->convert(a9); + } + } + + { + std::map::const_iterator it = kvmap.find(a10); + if (it != kvmap.end()) { + it->second->convert(a11); + } + } + + { + std::map::const_iterator it = kvmap.find(a12); + if (it != kvmap.end()) { + it->second->convert(a13); + } + } + + { + std::map::const_iterator it = kvmap.find(a14); + if (it != kvmap.end()) { + it->second->convert(a15); + } + } + + { + std::map::const_iterator it = kvmap.find(a16); + if (it != kvmap.end()) { + it->second->convert(a17); + } + } + + { + std::map::const_iterator it = kvmap.find(a18); + if (it != kvmap.end()) { + it->second->convert(a19); + } + } + + { + std::map::const_iterator it = kvmap.find(a20); + if (it != kvmap.end()) { + it->second->convert(a21); + } + } + + { + std::map::const_iterator it = kvmap.find(a22); + if (it != kvmap.end()) { + it->second->convert(a23); + } + } + + { + std::map::const_iterator it = kvmap.find(a24); + if (it != kvmap.end()) { + it->second->convert(a25); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*13, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 13; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + o->via.map.ptr[2].key = msgpack::object(a4, z); + o->via.map.ptr[2].val = msgpack::object(a5, z); + + o->via.map.ptr[3].key = msgpack::object(a6, z); + o->via.map.ptr[3].val = msgpack::object(a7, z); + + o->via.map.ptr[4].key = msgpack::object(a8, z); + o->via.map.ptr[4].val = msgpack::object(a9, z); + + o->via.map.ptr[5].key = msgpack::object(a10, z); + o->via.map.ptr[5].val = msgpack::object(a11, z); + + o->via.map.ptr[6].key = msgpack::object(a12, z); + o->via.map.ptr[6].val = msgpack::object(a13, z); + + o->via.map.ptr[7].key = msgpack::object(a14, z); + o->via.map.ptr[7].val = msgpack::object(a15, z); + + o->via.map.ptr[8].key = msgpack::object(a16, z); + o->via.map.ptr[8].val = msgpack::object(a17, z); + + o->via.map.ptr[9].key = msgpack::object(a18, z); + o->via.map.ptr[9].val = msgpack::object(a19, z); + + o->via.map.ptr[10].key = msgpack::object(a20, z); + o->via.map.ptr[10].val = msgpack::object(a21, z); + + o->via.map.ptr[11].key = msgpack::object(a22, z); + o->via.map.ptr[11].val = msgpack::object(a23, z); + + o->via.map.ptr[12].key = msgpack::object(a24, z); + o->via.map.ptr[12].val = msgpack::object(a25, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; + A23& a23; + A24& a24; + A25& a25; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(14); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + pk.pack(a23); + pk.pack(a24); + pk.pack(a25); + pk.pack(a26); + pk.pack(a27); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + { + std::map::const_iterator it = kvmap.find(a4); + if (it != kvmap.end()) { + it->second->convert(a5); + } + } + + { + std::map::const_iterator it = kvmap.find(a6); + if (it != kvmap.end()) { + it->second->convert(a7); + } + } + + { + std::map::const_iterator it = kvmap.find(a8); + if (it != kvmap.end()) { + it->second->convert(a9); + } + } + + { + std::map::const_iterator it = kvmap.find(a10); + if (it != kvmap.end()) { + it->second->convert(a11); + } + } + + { + std::map::const_iterator it = kvmap.find(a12); + if (it != kvmap.end()) { + it->second->convert(a13); + } + } + + { + std::map::const_iterator it = kvmap.find(a14); + if (it != kvmap.end()) { + it->second->convert(a15); + } + } + + { + std::map::const_iterator it = kvmap.find(a16); + if (it != kvmap.end()) { + it->second->convert(a17); + } + } + + { + std::map::const_iterator it = kvmap.find(a18); + if (it != kvmap.end()) { + it->second->convert(a19); + } + } + + { + std::map::const_iterator it = kvmap.find(a20); + if (it != kvmap.end()) { + it->second->convert(a21); + } + } + + { + std::map::const_iterator it = kvmap.find(a22); + if (it != kvmap.end()) { + it->second->convert(a23); + } + } + + { + std::map::const_iterator it = kvmap.find(a24); + if (it != kvmap.end()) { + it->second->convert(a25); + } + } + + { + std::map::const_iterator it = kvmap.find(a26); + if (it != kvmap.end()) { + it->second->convert(a27); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*14, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 14; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + o->via.map.ptr[2].key = msgpack::object(a4, z); + o->via.map.ptr[2].val = msgpack::object(a5, z); + + o->via.map.ptr[3].key = msgpack::object(a6, z); + o->via.map.ptr[3].val = msgpack::object(a7, z); + + o->via.map.ptr[4].key = msgpack::object(a8, z); + o->via.map.ptr[4].val = msgpack::object(a9, z); + + o->via.map.ptr[5].key = msgpack::object(a10, z); + o->via.map.ptr[5].val = msgpack::object(a11, z); + + o->via.map.ptr[6].key = msgpack::object(a12, z); + o->via.map.ptr[6].val = msgpack::object(a13, z); + + o->via.map.ptr[7].key = msgpack::object(a14, z); + o->via.map.ptr[7].val = msgpack::object(a15, z); + + o->via.map.ptr[8].key = msgpack::object(a16, z); + o->via.map.ptr[8].val = msgpack::object(a17, z); + + o->via.map.ptr[9].key = msgpack::object(a18, z); + o->via.map.ptr[9].val = msgpack::object(a19, z); + + o->via.map.ptr[10].key = msgpack::object(a20, z); + o->via.map.ptr[10].val = msgpack::object(a21, z); + + o->via.map.ptr[11].key = msgpack::object(a22, z); + o->via.map.ptr[11].val = msgpack::object(a23, z); + + o->via.map.ptr[12].key = msgpack::object(a24, z); + o->via.map.ptr[12].val = msgpack::object(a25, z); + + o->via.map.ptr[13].key = msgpack::object(a26, z); + o->via.map.ptr[13].val = msgpack::object(a27, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; + A23& a23; + A24& a24; + A25& a25; + A26& a26; + A27& a27; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28, A29& _a29) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(15); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + pk.pack(a23); + pk.pack(a24); + pk.pack(a25); + pk.pack(a26); + pk.pack(a27); + pk.pack(a28); + pk.pack(a29); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + { + std::map::const_iterator it = kvmap.find(a4); + if (it != kvmap.end()) { + it->second->convert(a5); + } + } + + { + std::map::const_iterator it = kvmap.find(a6); + if (it != kvmap.end()) { + it->second->convert(a7); + } + } + + { + std::map::const_iterator it = kvmap.find(a8); + if (it != kvmap.end()) { + it->second->convert(a9); + } + } + + { + std::map::const_iterator it = kvmap.find(a10); + if (it != kvmap.end()) { + it->second->convert(a11); + } + } + + { + std::map::const_iterator it = kvmap.find(a12); + if (it != kvmap.end()) { + it->second->convert(a13); + } + } + + { + std::map::const_iterator it = kvmap.find(a14); + if (it != kvmap.end()) { + it->second->convert(a15); + } + } + + { + std::map::const_iterator it = kvmap.find(a16); + if (it != kvmap.end()) { + it->second->convert(a17); + } + } + + { + std::map::const_iterator it = kvmap.find(a18); + if (it != kvmap.end()) { + it->second->convert(a19); + } + } + + { + std::map::const_iterator it = kvmap.find(a20); + if (it != kvmap.end()) { + it->second->convert(a21); + } + } + + { + std::map::const_iterator it = kvmap.find(a22); + if (it != kvmap.end()) { + it->second->convert(a23); + } + } + + { + std::map::const_iterator it = kvmap.find(a24); + if (it != kvmap.end()) { + it->second->convert(a25); + } + } + + { + std::map::const_iterator it = kvmap.find(a26); + if (it != kvmap.end()) { + it->second->convert(a27); + } + } + + { + std::map::const_iterator it = kvmap.find(a28); + if (it != kvmap.end()) { + it->second->convert(a29); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*15, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 15; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + o->via.map.ptr[2].key = msgpack::object(a4, z); + o->via.map.ptr[2].val = msgpack::object(a5, z); + + o->via.map.ptr[3].key = msgpack::object(a6, z); + o->via.map.ptr[3].val = msgpack::object(a7, z); + + o->via.map.ptr[4].key = msgpack::object(a8, z); + o->via.map.ptr[4].val = msgpack::object(a9, z); + + o->via.map.ptr[5].key = msgpack::object(a10, z); + o->via.map.ptr[5].val = msgpack::object(a11, z); + + o->via.map.ptr[6].key = msgpack::object(a12, z); + o->via.map.ptr[6].val = msgpack::object(a13, z); + + o->via.map.ptr[7].key = msgpack::object(a14, z); + o->via.map.ptr[7].val = msgpack::object(a15, z); + + o->via.map.ptr[8].key = msgpack::object(a16, z); + o->via.map.ptr[8].val = msgpack::object(a17, z); + + o->via.map.ptr[9].key = msgpack::object(a18, z); + o->via.map.ptr[9].val = msgpack::object(a19, z); + + o->via.map.ptr[10].key = msgpack::object(a20, z); + o->via.map.ptr[10].val = msgpack::object(a21, z); + + o->via.map.ptr[11].key = msgpack::object(a22, z); + o->via.map.ptr[11].val = msgpack::object(a23, z); + + o->via.map.ptr[12].key = msgpack::object(a24, z); + o->via.map.ptr[12].val = msgpack::object(a25, z); + + o->via.map.ptr[13].key = msgpack::object(a26, z); + o->via.map.ptr[13].val = msgpack::object(a27, z); + + o->via.map.ptr[14].key = msgpack::object(a28, z); + o->via.map.ptr[14].val = msgpack::object(a29, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; + A23& a23; + A24& a24; + A25& a25; + A26& a26; + A27& a27; + A28& a28; + A29& a29; +}; + +template +struct define_map { + define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28, A29& _a29, A30& _a30, A31& _a31) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30), a31(_a31) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_map(16); + + pk.pack(a0); + pk.pack(a1); + pk.pack(a2); + pk.pack(a3); + pk.pack(a4); + pk.pack(a5); + pk.pack(a6); + pk.pack(a7); + pk.pack(a8); + pk.pack(a9); + pk.pack(a10); + pk.pack(a11); + pk.pack(a12); + pk.pack(a13); + pk.pack(a14); + pk.pack(a15); + pk.pack(a16); + pk.pack(a17); + pk.pack(a18); + pk.pack(a19); + pk.pack(a20); + pk.pack(a21); + pk.pack(a22); + pk.pack(a23); + pk.pack(a24); + pk.pack(a25); + pk.pack(a26); + pk.pack(a27); + pk.pack(a28); + pk.pack(a29); + pk.pack(a30); + pk.pack(a31); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.insert( + std::map::value_type( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val + ) + ); + } + + { + std::map::const_iterator it = kvmap.find(a0); + if (it != kvmap.end()) { + it->second->convert(a1); + } + } + + { + std::map::const_iterator it = kvmap.find(a2); + if (it != kvmap.end()) { + it->second->convert(a3); + } + } + + { + std::map::const_iterator it = kvmap.find(a4); + if (it != kvmap.end()) { + it->second->convert(a5); + } + } + + { + std::map::const_iterator it = kvmap.find(a6); + if (it != kvmap.end()) { + it->second->convert(a7); + } + } + + { + std::map::const_iterator it = kvmap.find(a8); + if (it != kvmap.end()) { + it->second->convert(a9); + } + } + + { + std::map::const_iterator it = kvmap.find(a10); + if (it != kvmap.end()) { + it->second->convert(a11); + } + } + + { + std::map::const_iterator it = kvmap.find(a12); + if (it != kvmap.end()) { + it->second->convert(a13); + } + } + + { + std::map::const_iterator it = kvmap.find(a14); + if (it != kvmap.end()) { + it->second->convert(a15); + } + } + + { + std::map::const_iterator it = kvmap.find(a16); + if (it != kvmap.end()) { + it->second->convert(a17); + } + } + + { + std::map::const_iterator it = kvmap.find(a18); + if (it != kvmap.end()) { + it->second->convert(a19); + } + } + + { + std::map::const_iterator it = kvmap.find(a20); + if (it != kvmap.end()) { + it->second->convert(a21); + } + } + + { + std::map::const_iterator it = kvmap.find(a22); + if (it != kvmap.end()) { + it->second->convert(a23); + } + } + + { + std::map::const_iterator it = kvmap.find(a24); + if (it != kvmap.end()) { + it->second->convert(a25); + } + } + + { + std::map::const_iterator it = kvmap.find(a26); + if (it != kvmap.end()) { + it->second->convert(a27); + } + } + + { + std::map::const_iterator it = kvmap.find(a28); + if (it != kvmap.end()) { + it->second->convert(a29); + } + } + + { + std::map::const_iterator it = kvmap.find(a30); + if (it != kvmap.end()) { + it->second->convert(a31); + } + } + + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*16, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = 16; + + o->via.map.ptr[0].key = msgpack::object(a0, z); + o->via.map.ptr[0].val = msgpack::object(a1, z); + + o->via.map.ptr[1].key = msgpack::object(a2, z); + o->via.map.ptr[1].val = msgpack::object(a3, z); + + o->via.map.ptr[2].key = msgpack::object(a4, z); + o->via.map.ptr[2].val = msgpack::object(a5, z); + + o->via.map.ptr[3].key = msgpack::object(a6, z); + o->via.map.ptr[3].val = msgpack::object(a7, z); + + o->via.map.ptr[4].key = msgpack::object(a8, z); + o->via.map.ptr[4].val = msgpack::object(a9, z); + + o->via.map.ptr[5].key = msgpack::object(a10, z); + o->via.map.ptr[5].val = msgpack::object(a11, z); + + o->via.map.ptr[6].key = msgpack::object(a12, z); + o->via.map.ptr[6].val = msgpack::object(a13, z); + + o->via.map.ptr[7].key = msgpack::object(a14, z); + o->via.map.ptr[7].val = msgpack::object(a15, z); + + o->via.map.ptr[8].key = msgpack::object(a16, z); + o->via.map.ptr[8].val = msgpack::object(a17, z); + + o->via.map.ptr[9].key = msgpack::object(a18, z); + o->via.map.ptr[9].val = msgpack::object(a19, z); + + o->via.map.ptr[10].key = msgpack::object(a20, z); + o->via.map.ptr[10].val = msgpack::object(a21, z); + + o->via.map.ptr[11].key = msgpack::object(a22, z); + o->via.map.ptr[11].val = msgpack::object(a23, z); + + o->via.map.ptr[12].key = msgpack::object(a24, z); + o->via.map.ptr[12].val = msgpack::object(a25, z); + + o->via.map.ptr[13].key = msgpack::object(a26, z); + o->via.map.ptr[13].val = msgpack::object(a27, z); + + o->via.map.ptr[14].key = msgpack::object(a28, z); + o->via.map.ptr[14].val = msgpack::object(a29, z); + + o->via.map.ptr[15].key = msgpack::object(a30, z); + o->via.map.ptr[15].val = msgpack::object(a31, z); + + } + + A0& a0; + A1& a1; + A2& a2; + A3& a3; + A4& a4; + A5& a5; + A6& a6; + A7& a7; + A8& a8; + A9& a9; + A10& a10; + A11& a11; + A12& a12; + A13& a13; + A14& a14; + A15& a15; + A16& a16; + A17& a17; + A18& a18; + A19& a19; + A20& a20; + A21& a21; + A22& a22; + A23& a23; + A24& a24; + A25& a25; + A26& a26; + A27& a27; + A28& a28; + A29& a29; + A30& a30; + A31& a31; +}; + +/// @endcond + +inline define_map<> make_define_map() +{ + return define_map<>(); +} + +/// @cond + +template +inline define_map make_define_map(A0& a0) +{ + return define_map(a0); +} + +template +inline define_map make_define_map(A0& a0, A1& a1) +{ + return define_map(a0, a1); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2) +{ + return define_map(a0, a1, a2); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3) +{ + return define_map(a0, a1, a2, a3); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4) +{ + return define_map(a0, a1, a2, a3, a4); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5) +{ + return define_map(a0, a1, a2, a3, a4, a5); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30); +} + +template +inline define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30, A31& a31) +{ + return define_map(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31); +} + +/// @endcond + +} // namespace type +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond +} // namespace msgpack + +#endif // MSGPACK_V1_CPP03_DEFINE_MAP_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_map_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_map_decl.hpp new file mode 100644 index 000000000000..67644565ded7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_define_map_decl.hpp @@ -0,0 +1,135 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP03_DEFINE_MAP_DECL_HPP +#define MSGPACK_V1_CPP03_DEFINE_MAP_DECL_HPP + +#include "msgpack/versioning.hpp" + +namespace msgpack { +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond +namespace type { + +/// @cond + +template +struct define_map; +/// @endcond + +define_map<> make_define_map(); + +/// @cond + +template +define_map make_define_map(A0& a0); + +template +define_map make_define_map(A0& a0, A1& a1); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30); + +template +define_map make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30, A31& a31); + +/// @endcond + +} // namespace type +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond +} // namespace msgpack + +#endif // MSGPACK_V1_CPP03_DEFINE_MAP_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp new file mode 100644 index 000000000000..88a0b3b55df7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp @@ -0,0 +1,14425 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP03_MSGPACK_TUPLE_HPP +#define MSGPACK_V1_CPP03_MSGPACK_TUPLE_HPP + +#include "msgpack/v1/adaptor/msgpack_tuple_decl.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +// FIXME operator== +// FIXME operator!= + + +template +struct tuple_type { + typedef T type; + typedef T value_type; + typedef T& reference; + typedef const T& const_reference; + typedef const T& transparent_reference; +}; + +template +struct tuple_type { + typedef T type; + typedef T& value_type; + typedef T& reference; + typedef const T& const_reference; + typedef T& transparent_reference; +}; + +template +struct tuple_type { + typedef T type; + typedef T& value_type; + typedef T& reference; + typedef const T& const_reference; + typedef const T& transparent_reference; +}; + +/// @cond + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 18> : tuple_type { + tuple_element(tuple& x) : m_x(x.a18) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 18> : tuple_type { + tuple_element(tuple& x) : m_x(x.a18) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 19> : tuple_type { + tuple_element(tuple& x) : m_x(x.a19) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 18> : tuple_type { + tuple_element(tuple& x) : m_x(x.a18) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 19> : tuple_type { + tuple_element(tuple& x) : m_x(x.a19) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 20> : tuple_type { + tuple_element(tuple& x) : m_x(x.a20) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 18> : tuple_type { + tuple_element(tuple& x) : m_x(x.a18) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 19> : tuple_type { + tuple_element(tuple& x) : m_x(x.a19) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 20> : tuple_type { + tuple_element(tuple& x) : m_x(x.a20) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 21> : tuple_type { + tuple_element(tuple& x) : m_x(x.a21) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 18> : tuple_type { + tuple_element(tuple& x) : m_x(x.a18) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 19> : tuple_type { + tuple_element(tuple& x) : m_x(x.a19) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 20> : tuple_type { + tuple_element(tuple& x) : m_x(x.a20) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 21> : tuple_type { + tuple_element(tuple& x) : m_x(x.a21) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 22> : tuple_type { + tuple_element(tuple& x) : m_x(x.a22) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 18> : tuple_type { + tuple_element(tuple& x) : m_x(x.a18) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 19> : tuple_type { + tuple_element(tuple& x) : m_x(x.a19) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 20> : tuple_type { + tuple_element(tuple& x) : m_x(x.a20) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 21> : tuple_type { + tuple_element(tuple& x) : m_x(x.a21) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 22> : tuple_type { + tuple_element(tuple& x) : m_x(x.a22) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 23> : tuple_type { + tuple_element(tuple& x) : m_x(x.a23) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 18> : tuple_type { + tuple_element(tuple& x) : m_x(x.a18) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 19> : tuple_type { + tuple_element(tuple& x) : m_x(x.a19) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 20> : tuple_type { + tuple_element(tuple& x) : m_x(x.a20) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 21> : tuple_type { + tuple_element(tuple& x) : m_x(x.a21) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 22> : tuple_type { + tuple_element(tuple& x) : m_x(x.a22) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 23> : tuple_type { + tuple_element(tuple& x) : m_x(x.a23) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 24> : tuple_type { + tuple_element(tuple& x) : m_x(x.a24) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 18> : tuple_type { + tuple_element(tuple& x) : m_x(x.a18) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 19> : tuple_type { + tuple_element(tuple& x) : m_x(x.a19) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 20> : tuple_type { + tuple_element(tuple& x) : m_x(x.a20) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 21> : tuple_type { + tuple_element(tuple& x) : m_x(x.a21) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 22> : tuple_type { + tuple_element(tuple& x) : m_x(x.a22) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 23> : tuple_type { + tuple_element(tuple& x) : m_x(x.a23) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 24> : tuple_type { + tuple_element(tuple& x) : m_x(x.a24) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 25> : tuple_type { + tuple_element(tuple& x) : m_x(x.a25) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 18> : tuple_type { + tuple_element(tuple& x) : m_x(x.a18) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 19> : tuple_type { + tuple_element(tuple& x) : m_x(x.a19) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 20> : tuple_type { + tuple_element(tuple& x) : m_x(x.a20) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 21> : tuple_type { + tuple_element(tuple& x) : m_x(x.a21) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 22> : tuple_type { + tuple_element(tuple& x) : m_x(x.a22) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 23> : tuple_type { + tuple_element(tuple& x) : m_x(x.a23) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 24> : tuple_type { + tuple_element(tuple& x) : m_x(x.a24) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 25> : tuple_type { + tuple_element(tuple& x) : m_x(x.a25) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 26> : tuple_type { + tuple_element(tuple& x) : m_x(x.a26) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 18> : tuple_type { + tuple_element(tuple& x) : m_x(x.a18) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 19> : tuple_type { + tuple_element(tuple& x) : m_x(x.a19) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 20> : tuple_type { + tuple_element(tuple& x) : m_x(x.a20) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 21> : tuple_type { + tuple_element(tuple& x) : m_x(x.a21) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 22> : tuple_type { + tuple_element(tuple& x) : m_x(x.a22) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 23> : tuple_type { + tuple_element(tuple& x) : m_x(x.a23) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 24> : tuple_type { + tuple_element(tuple& x) : m_x(x.a24) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 25> : tuple_type { + tuple_element(tuple& x) : m_x(x.a25) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 26> : tuple_type { + tuple_element(tuple& x) : m_x(x.a26) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 27> : tuple_type { + tuple_element(tuple& x) : m_x(x.a27) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 18> : tuple_type { + tuple_element(tuple& x) : m_x(x.a18) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 19> : tuple_type { + tuple_element(tuple& x) : m_x(x.a19) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 20> : tuple_type { + tuple_element(tuple& x) : m_x(x.a20) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 21> : tuple_type { + tuple_element(tuple& x) : m_x(x.a21) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 22> : tuple_type { + tuple_element(tuple& x) : m_x(x.a22) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 23> : tuple_type { + tuple_element(tuple& x) : m_x(x.a23) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 24> : tuple_type { + tuple_element(tuple& x) : m_x(x.a24) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 25> : tuple_type { + tuple_element(tuple& x) : m_x(x.a25) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 26> : tuple_type { + tuple_element(tuple& x) : m_x(x.a26) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 27> : tuple_type { + tuple_element(tuple& x) : m_x(x.a27) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 28> : tuple_type { + tuple_element(tuple& x) : m_x(x.a28) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 18> : tuple_type { + tuple_element(tuple& x) : m_x(x.a18) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 19> : tuple_type { + tuple_element(tuple& x) : m_x(x.a19) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 20> : tuple_type { + tuple_element(tuple& x) : m_x(x.a20) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 21> : tuple_type { + tuple_element(tuple& x) : m_x(x.a21) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 22> : tuple_type { + tuple_element(tuple& x) : m_x(x.a22) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 23> : tuple_type { + tuple_element(tuple& x) : m_x(x.a23) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 24> : tuple_type { + tuple_element(tuple& x) : m_x(x.a24) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 25> : tuple_type { + tuple_element(tuple& x) : m_x(x.a25) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 26> : tuple_type { + tuple_element(tuple& x) : m_x(x.a26) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 27> : tuple_type { + tuple_element(tuple& x) : m_x(x.a27) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 28> : tuple_type { + tuple_element(tuple& x) : m_x(x.a28) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 29> : tuple_type { + tuple_element(tuple& x) : m_x(x.a29) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 18> : tuple_type { + tuple_element(tuple& x) : m_x(x.a18) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 19> : tuple_type { + tuple_element(tuple& x) : m_x(x.a19) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 20> : tuple_type { + tuple_element(tuple& x) : m_x(x.a20) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 21> : tuple_type { + tuple_element(tuple& x) : m_x(x.a21) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 22> : tuple_type { + tuple_element(tuple& x) : m_x(x.a22) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 23> : tuple_type { + tuple_element(tuple& x) : m_x(x.a23) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 24> : tuple_type { + tuple_element(tuple& x) : m_x(x.a24) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 25> : tuple_type { + tuple_element(tuple& x) : m_x(x.a25) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 26> : tuple_type { + tuple_element(tuple& x) : m_x(x.a26) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 27> : tuple_type { + tuple_element(tuple& x) : m_x(x.a27) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 28> : tuple_type { + tuple_element(tuple& x) : m_x(x.a28) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 29> : tuple_type { + tuple_element(tuple& x) : m_x(x.a29) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 30> : tuple_type { + tuple_element(tuple& x) : m_x(x.a30) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + +template +struct tuple_element, 0> : tuple_type { + tuple_element(tuple& x) : m_x(x.a0) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 1> : tuple_type { + tuple_element(tuple& x) : m_x(x.a1) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 2> : tuple_type { + tuple_element(tuple& x) : m_x(x.a2) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 3> : tuple_type { + tuple_element(tuple& x) : m_x(x.a3) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 4> : tuple_type { + tuple_element(tuple& x) : m_x(x.a4) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 5> : tuple_type { + tuple_element(tuple& x) : m_x(x.a5) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 6> : tuple_type { + tuple_element(tuple& x) : m_x(x.a6) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 7> : tuple_type { + tuple_element(tuple& x) : m_x(x.a7) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 8> : tuple_type { + tuple_element(tuple& x) : m_x(x.a8) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 9> : tuple_type { + tuple_element(tuple& x) : m_x(x.a9) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 10> : tuple_type { + tuple_element(tuple& x) : m_x(x.a10) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 11> : tuple_type { + tuple_element(tuple& x) : m_x(x.a11) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 12> : tuple_type { + tuple_element(tuple& x) : m_x(x.a12) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 13> : tuple_type { + tuple_element(tuple& x) : m_x(x.a13) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 14> : tuple_type { + tuple_element(tuple& x) : m_x(x.a14) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 15> : tuple_type { + tuple_element(tuple& x) : m_x(x.a15) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 16> : tuple_type { + tuple_element(tuple& x) : m_x(x.a16) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 17> : tuple_type { + tuple_element(tuple& x) : m_x(x.a17) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 18> : tuple_type { + tuple_element(tuple& x) : m_x(x.a18) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 19> : tuple_type { + tuple_element(tuple& x) : m_x(x.a19) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 20> : tuple_type { + tuple_element(tuple& x) : m_x(x.a20) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 21> : tuple_type { + tuple_element(tuple& x) : m_x(x.a21) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 22> : tuple_type { + tuple_element(tuple& x) : m_x(x.a22) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 23> : tuple_type { + tuple_element(tuple& x) : m_x(x.a23) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 24> : tuple_type { + tuple_element(tuple& x) : m_x(x.a24) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 25> : tuple_type { + tuple_element(tuple& x) : m_x(x.a25) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 26> : tuple_type { + tuple_element(tuple& x) : m_x(x.a26) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 27> : tuple_type { + tuple_element(tuple& x) : m_x(x.a27) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 28> : tuple_type { + tuple_element(tuple& x) : m_x(x.a28) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 29> : tuple_type { + tuple_element(tuple& x) : m_x(x.a29) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 30> : tuple_type { + tuple_element(tuple& x) : m_x(x.a30) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + +template +struct tuple_element, 31> : tuple_type { + tuple_element(tuple& x) : m_x(x.a31) {} + typename tuple_type::reference get() { return m_x; } + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::reference m_x; +}; + + + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 18> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a18) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 18> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a18) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 19> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a19) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 18> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a18) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 19> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a19) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 20> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a20) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 18> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a18) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 19> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a19) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 20> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a20) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 21> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a21) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 18> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a18) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 19> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a19) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 20> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a20) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 21> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a21) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 22> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a22) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 18> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a18) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 19> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a19) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 20> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a20) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 21> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a21) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 22> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a22) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 23> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a23) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 18> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a18) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 19> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a19) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 20> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a20) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 21> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a21) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 22> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a22) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 23> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a23) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 24> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a24) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 18> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a18) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 19> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a19) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 20> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a20) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 21> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a21) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 22> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a22) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 23> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a23) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 24> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a24) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 25> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a25) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 18> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a18) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 19> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a19) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 20> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a20) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 21> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a21) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 22> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a22) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 23> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a23) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 24> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a24) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 25> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a25) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 26> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a26) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 18> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a18) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 19> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a19) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 20> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a20) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 21> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a21) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 22> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a22) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 23> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a23) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 24> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a24) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 25> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a25) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 26> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a26) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 27> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a27) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 18> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a18) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 19> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a19) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 20> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a20) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 21> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a21) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 22> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a22) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 23> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a23) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 24> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a24) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 25> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a25) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 26> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a26) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 27> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a27) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 28> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a28) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 18> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a18) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 19> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a19) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 20> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a20) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 21> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a21) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 22> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a22) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 23> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a23) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 24> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a24) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 25> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a25) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 26> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a26) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 27> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a27) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 28> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a28) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 29> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a29) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 18> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a18) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 19> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a19) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 20> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a20) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 21> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a21) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 22> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a22) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 23> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a23) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 24> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a24) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 25> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a25) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 26> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a26) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 27> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a27) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 28> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a28) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 29> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a29) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 30> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a30) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + + +template +struct const_tuple_element, 0> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a0) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 1> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a1) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 2> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a2) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 3> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a3) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 4> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a4) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 5> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a5) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 6> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a6) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 7> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a7) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 8> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a8) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 9> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a9) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 10> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a10) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 11> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a11) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 12> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a12) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 13> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a13) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 14> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a14) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 15> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a15) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 16> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a16) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 17> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a17) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 18> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a18) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 19> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a19) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 20> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a20) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 21> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a21) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 22> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a22) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 23> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a23) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 24> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a24) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 25> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a25) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 26> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a26) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 27> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a27) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 28> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a28) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 29> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a29) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 30> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a30) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + +template +struct const_tuple_element, 31> : tuple_type { + const_tuple_element(const tuple& x) : m_x(x.a31) {} + typename tuple_type::const_reference get() const { return m_x; } +private: + typename tuple_type::const_reference m_x; +}; + + +/// @endcond + +template <> +struct tuple<> { + tuple() {} + tuple(msgpack::object const& o) { o.convert(*this); } + typedef tuple<> value_type; + std::size_t size() const { return 0; } +}; + +/// @cond + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 1; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0) : + a0(_a0) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 2; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1) : + a0(_a0), a1(_a1) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 3; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2) : + a0(_a0), a1(_a1), a2(_a2) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 4; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 5; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 6; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 7; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 8; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 9; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 10; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 11; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 12; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 13; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 14; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 15; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 16; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 17; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 18; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 19; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; + A18 a18; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 20; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; + A18 a18; + A19 a19; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 21; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; + A18 a18; + A19 a19; + A20 a20; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 22; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; + A18 a18; + A19 a19; + A20 a20; + A21 a21; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 23; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; + A18 a18; + A19 a19; + A20 a20; + A21 a21; + A22 a22; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 24; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; + A18 a18; + A19 a19; + A20 a20; + A21 a21; + A22 a22; + A23 a23; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 25; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; + A18 a18; + A19 a19; + A20 a20; + A21 a21; + A22 a22; + A23 a23; + A24 a24; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 26; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24, typename tuple_type::transparent_reference _a25) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; + A18 a18; + A19 a19; + A20 a20; + A21 a21; + A22 a22; + A23 a23; + A24 a24; + A25 a25; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 27; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24, typename tuple_type::transparent_reference _a25, typename tuple_type::transparent_reference _a26) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; + A18 a18; + A19 a19; + A20 a20; + A21 a21; + A22 a22; + A23 a23; + A24 a24; + A25 a25; + A26 a26; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 28; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24, typename tuple_type::transparent_reference _a25, typename tuple_type::transparent_reference _a26, typename tuple_type::transparent_reference _a27) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; + A18 a18; + A19 a19; + A20 a20; + A21 a21; + A22 a22; + A23 a23; + A24 a24; + A25 a25; + A26 a26; + A27 a27; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 29; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24, typename tuple_type::transparent_reference _a25, typename tuple_type::transparent_reference _a26, typename tuple_type::transparent_reference _a27, typename tuple_type::transparent_reference _a28) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; + A18 a18; + A19 a19; + A20 a20; + A21 a21; + A22 a22; + A23 a23; + A24 a24; + A25 a25; + A26 a26; + A27 a27; + A28 a28; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 30; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24, typename tuple_type::transparent_reference _a25, typename tuple_type::transparent_reference _a26, typename tuple_type::transparent_reference _a27, typename tuple_type::transparent_reference _a28, typename tuple_type::transparent_reference _a29) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; + A18 a18; + A19 a19; + A20 a20; + A21 a21; + A22 a22; + A23 a23; + A24 a24; + A25 a25; + A26 a26; + A27 a27; + A28 a28; + A29 a29; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 31; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24, typename tuple_type::transparent_reference _a25, typename tuple_type::transparent_reference _a26, typename tuple_type::transparent_reference _a27, typename tuple_type::transparent_reference _a28, typename tuple_type::transparent_reference _a29, typename tuple_type::transparent_reference _a30) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; + A18 a18; + A19 a19; + A20 a20; + A21 a21; + A22 a22; + A23 a23; + A24 a24; + A25 a25; + A26 a26; + A27 a27; + A28 a28; + A29 a29; + A30 a30; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +template +struct tuple { + typedef tuple value_type; + std::size_t size() const { return 32; } + tuple() {} + tuple(typename tuple_type::transparent_reference _a0, typename tuple_type::transparent_reference _a1, typename tuple_type::transparent_reference _a2, typename tuple_type::transparent_reference _a3, typename tuple_type::transparent_reference _a4, typename tuple_type::transparent_reference _a5, typename tuple_type::transparent_reference _a6, typename tuple_type::transparent_reference _a7, typename tuple_type::transparent_reference _a8, typename tuple_type::transparent_reference _a9, typename tuple_type::transparent_reference _a10, typename tuple_type::transparent_reference _a11, typename tuple_type::transparent_reference _a12, typename tuple_type::transparent_reference _a13, typename tuple_type::transparent_reference _a14, typename tuple_type::transparent_reference _a15, typename tuple_type::transparent_reference _a16, typename tuple_type::transparent_reference _a17, typename tuple_type::transparent_reference _a18, typename tuple_type::transparent_reference _a19, typename tuple_type::transparent_reference _a20, typename tuple_type::transparent_reference _a21, typename tuple_type::transparent_reference _a22, typename tuple_type::transparent_reference _a23, typename tuple_type::transparent_reference _a24, typename tuple_type::transparent_reference _a25, typename tuple_type::transparent_reference _a26, typename tuple_type::transparent_reference _a27, typename tuple_type::transparent_reference _a28, typename tuple_type::transparent_reference _a29, typename tuple_type::transparent_reference _a30, typename tuple_type::transparent_reference _a31) : + a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30), a31(_a31) {} + tuple(msgpack::object const& o) { o.convert(*this); } + template typename tuple_element::reference get() + { return tuple_element(*this).get(); } + template typename const_tuple_element::const_reference get() const + { return const_tuple_element(*this).get(); } + + A0 a0; + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + A6 a6; + A7 a7; + A8 a8; + A9 a9; + A10 a10; + A11 a11; + A12 a12; + A13 a13; + A14 a14; + A15 a15; + A16 a16; + A17 a17; + A18 a18; + A19 a19; + A20 a20; + A21 a21; + A22 a22; + A23 a23; + A24 a24; + A25 a25; + A26 a26; + A27 a27; + A28 a28; + A29 a29; + A30 a30; + A31 a31; +}; + +template +inline typename type::tuple_element, N>::reference get(type::tuple& t) +{ return t.template get(); } +template +inline typename type::const_tuple_element, N>::const_reference get(type::tuple const& t) +{ return t.template get(); } + +/// @endcond + +inline tuple<> make_tuple() +{ + return tuple<>(); +} + +/// @cond + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0) +{ + return tuple(a0); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1) +{ + return tuple(a0, a1); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2) +{ + return tuple(a0, a1, a2); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3) +{ + return tuple(a0, a1, a2, a3); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4) +{ + return tuple(a0, a1, a2, a3, a4); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5) +{ + return tuple(a0, a1, a2, a3, a4, a5); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24, typename tuple_type::transparent_reference a25) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24, typename tuple_type::transparent_reference a25, typename tuple_type::transparent_reference a26) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24, typename tuple_type::transparent_reference a25, typename tuple_type::transparent_reference a26, typename tuple_type::transparent_reference a27) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24, typename tuple_type::transparent_reference a25, typename tuple_type::transparent_reference a26, typename tuple_type::transparent_reference a27, typename tuple_type::transparent_reference a28) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24, typename tuple_type::transparent_reference a25, typename tuple_type::transparent_reference a26, typename tuple_type::transparent_reference a27, typename tuple_type::transparent_reference a28, typename tuple_type::transparent_reference a29) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24, typename tuple_type::transparent_reference a25, typename tuple_type::transparent_reference a26, typename tuple_type::transparent_reference a27, typename tuple_type::transparent_reference a28, typename tuple_type::transparent_reference a29, typename tuple_type::transparent_reference a30) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30); +} + +template +inline tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24, typename tuple_type::transparent_reference a25, typename tuple_type::transparent_reference a26, typename tuple_type::transparent_reference a27, typename tuple_type::transparent_reference a28, typename tuple_type::transparent_reference a29, typename tuple_type::transparent_reference a30, typename tuple_type::transparent_reference a31) +{ + return tuple(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31); +} + +/// @endcond + +} // namespace type + +namespace adaptor { + +template <> +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple<>&) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + return o; + } +}; + +/// @cond + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 18) + o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 18) + o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 19) + o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 18) + o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 19) + o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 20) + o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 18) + o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 19) + o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 20) + o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 21) + o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 18) + o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 19) + o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 20) + o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 21) + o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 22) + o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 18) + o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 19) + o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 20) + o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 21) + o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 22) + o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 23) + o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 18) + o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 19) + o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 20) + o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 21) + o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 22) + o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 23) + o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 24) + o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 18) + o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 19) + o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 20) + o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 21) + o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 22) + o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 23) + o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 24) + o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 25) + o.via.array.ptr[25].msgpack::object::convert::type>(v.template get<25>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 18) + o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 19) + o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 20) + o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 21) + o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 22) + o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 23) + o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 24) + o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 25) + o.via.array.ptr[25].msgpack::object::convert::type>(v.template get<25>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 26) + o.via.array.ptr[26].msgpack::object::convert::type>(v.template get<26>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 18) + o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 19) + o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 20) + o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 21) + o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 22) + o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 23) + o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 24) + o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 25) + o.via.array.ptr[25].msgpack::object::convert::type>(v.template get<25>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 26) + o.via.array.ptr[26].msgpack::object::convert::type>(v.template get<26>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 27) + o.via.array.ptr[27].msgpack::object::convert::type>(v.template get<27>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 18) + o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 19) + o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 20) + o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 21) + o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 22) + o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 23) + o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 24) + o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 25) + o.via.array.ptr[25].msgpack::object::convert::type>(v.template get<25>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 26) + o.via.array.ptr[26].msgpack::object::convert::type>(v.template get<26>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 27) + o.via.array.ptr[27].msgpack::object::convert::type>(v.template get<27>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 28) + o.via.array.ptr[28].msgpack::object::convert::type>(v.template get<28>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 18) + o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 19) + o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 20) + o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 21) + o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 22) + o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 23) + o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 24) + o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 25) + o.via.array.ptr[25].msgpack::object::convert::type>(v.template get<25>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 26) + o.via.array.ptr[26].msgpack::object::convert::type>(v.template get<26>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 27) + o.via.array.ptr[27].msgpack::object::convert::type>(v.template get<27>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 28) + o.via.array.ptr[28].msgpack::object::convert::type>(v.template get<28>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 29) + o.via.array.ptr[29].msgpack::object::convert::type>(v.template get<29>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 18) + o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 19) + o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 20) + o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 21) + o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 22) + o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 23) + o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 24) + o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 25) + o.via.array.ptr[25].msgpack::object::convert::type>(v.template get<25>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 26) + o.via.array.ptr[26].msgpack::object::convert::type>(v.template get<26>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 27) + o.via.array.ptr[27].msgpack::object::convert::type>(v.template get<27>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 28) + o.via.array.ptr[28].msgpack::object::convert::type>(v.template get<28>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 29) + o.via.array.ptr[29].msgpack::object::convert::type>(v.template get<29>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 30) + o.via.array.ptr[30].msgpack::object::convert::type>(v.template get<30>()); + return o; + } +}; + +template +struct convert > { + msgpack::object const& operator()( + msgpack::object const& o, + type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 0) + o.via.array.ptr[0].msgpack::object::convert::type>(v.template get<0>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 1) + o.via.array.ptr[1].msgpack::object::convert::type>(v.template get<1>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 2) + o.via.array.ptr[2].msgpack::object::convert::type>(v.template get<2>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 3) + o.via.array.ptr[3].msgpack::object::convert::type>(v.template get<3>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 4) + o.via.array.ptr[4].msgpack::object::convert::type>(v.template get<4>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 5) + o.via.array.ptr[5].msgpack::object::convert::type>(v.template get<5>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 6) + o.via.array.ptr[6].msgpack::object::convert::type>(v.template get<6>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 7) + o.via.array.ptr[7].msgpack::object::convert::type>(v.template get<7>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 8) + o.via.array.ptr[8].msgpack::object::convert::type>(v.template get<8>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 9) + o.via.array.ptr[9].msgpack::object::convert::type>(v.template get<9>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 10) + o.via.array.ptr[10].msgpack::object::convert::type>(v.template get<10>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 11) + o.via.array.ptr[11].msgpack::object::convert::type>(v.template get<11>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 12) + o.via.array.ptr[12].msgpack::object::convert::type>(v.template get<12>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 13) + o.via.array.ptr[13].msgpack::object::convert::type>(v.template get<13>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 14) + o.via.array.ptr[14].msgpack::object::convert::type>(v.template get<14>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 15) + o.via.array.ptr[15].msgpack::object::convert::type>(v.template get<15>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 16) + o.via.array.ptr[16].msgpack::object::convert::type>(v.template get<16>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 17) + o.via.array.ptr[17].msgpack::object::convert::type>(v.template get<17>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 18) + o.via.array.ptr[18].msgpack::object::convert::type>(v.template get<18>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 19) + o.via.array.ptr[19].msgpack::object::convert::type>(v.template get<19>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 20) + o.via.array.ptr[20].msgpack::object::convert::type>(v.template get<20>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 21) + o.via.array.ptr[21].msgpack::object::convert::type>(v.template get<21>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 22) + o.via.array.ptr[22].msgpack::object::convert::type>(v.template get<22>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 23) + o.via.array.ptr[23].msgpack::object::convert::type>(v.template get<23>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 24) + o.via.array.ptr[24].msgpack::object::convert::type>(v.template get<24>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 25) + o.via.array.ptr[25].msgpack::object::convert::type>(v.template get<25>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 26) + o.via.array.ptr[26].msgpack::object::convert::type>(v.template get<26>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 27) + o.via.array.ptr[27].msgpack::object::convert::type>(v.template get<27>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 28) + o.via.array.ptr[28].msgpack::object::convert::type>(v.template get<28>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 29) + o.via.array.ptr[29].msgpack::object::convert::type>(v.template get<29>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 30) + o.via.array.ptr[30].msgpack::object::convert::type>(v.template get<30>()); + // In order to avoid clang++'s invalid warning, msgpack::object:: has been added. + if(o.via.array.size > 31) + o.via.array.ptr[31].msgpack::object::convert::type>(v.template get<31>()); + return o; + } +}; + +/// @endcond + +template <> +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple<>&) const { + o.pack_array(0); + return o; + } +}; + +/// @cond + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(1); + + o.pack(v.template get<0>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(2); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(3); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(4); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(5); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(6); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(7); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(8); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(9); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(10); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(11); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(12); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(13); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(14); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(15); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(16); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(17); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(18); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(19); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + o.pack(v.template get<18>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(20); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + o.pack(v.template get<18>()); + o.pack(v.template get<19>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(21); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + o.pack(v.template get<18>()); + o.pack(v.template get<19>()); + o.pack(v.template get<20>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(22); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + o.pack(v.template get<18>()); + o.pack(v.template get<19>()); + o.pack(v.template get<20>()); + o.pack(v.template get<21>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(23); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + o.pack(v.template get<18>()); + o.pack(v.template get<19>()); + o.pack(v.template get<20>()); + o.pack(v.template get<21>()); + o.pack(v.template get<22>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(24); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + o.pack(v.template get<18>()); + o.pack(v.template get<19>()); + o.pack(v.template get<20>()); + o.pack(v.template get<21>()); + o.pack(v.template get<22>()); + o.pack(v.template get<23>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(25); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + o.pack(v.template get<18>()); + o.pack(v.template get<19>()); + o.pack(v.template get<20>()); + o.pack(v.template get<21>()); + o.pack(v.template get<22>()); + o.pack(v.template get<23>()); + o.pack(v.template get<24>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(26); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + o.pack(v.template get<18>()); + o.pack(v.template get<19>()); + o.pack(v.template get<20>()); + o.pack(v.template get<21>()); + o.pack(v.template get<22>()); + o.pack(v.template get<23>()); + o.pack(v.template get<24>()); + o.pack(v.template get<25>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(27); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + o.pack(v.template get<18>()); + o.pack(v.template get<19>()); + o.pack(v.template get<20>()); + o.pack(v.template get<21>()); + o.pack(v.template get<22>()); + o.pack(v.template get<23>()); + o.pack(v.template get<24>()); + o.pack(v.template get<25>()); + o.pack(v.template get<26>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(28); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + o.pack(v.template get<18>()); + o.pack(v.template get<19>()); + o.pack(v.template get<20>()); + o.pack(v.template get<21>()); + o.pack(v.template get<22>()); + o.pack(v.template get<23>()); + o.pack(v.template get<24>()); + o.pack(v.template get<25>()); + o.pack(v.template get<26>()); + o.pack(v.template get<27>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(29); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + o.pack(v.template get<18>()); + o.pack(v.template get<19>()); + o.pack(v.template get<20>()); + o.pack(v.template get<21>()); + o.pack(v.template get<22>()); + o.pack(v.template get<23>()); + o.pack(v.template get<24>()); + o.pack(v.template get<25>()); + o.pack(v.template get<26>()); + o.pack(v.template get<27>()); + o.pack(v.template get<28>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(30); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + o.pack(v.template get<18>()); + o.pack(v.template get<19>()); + o.pack(v.template get<20>()); + o.pack(v.template get<21>()); + o.pack(v.template get<22>()); + o.pack(v.template get<23>()); + o.pack(v.template get<24>()); + o.pack(v.template get<25>()); + o.pack(v.template get<26>()); + o.pack(v.template get<27>()); + o.pack(v.template get<28>()); + o.pack(v.template get<29>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(31); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + o.pack(v.template get<18>()); + o.pack(v.template get<19>()); + o.pack(v.template get<20>()); + o.pack(v.template get<21>()); + o.pack(v.template get<22>()); + o.pack(v.template get<23>()); + o.pack(v.template get<24>()); + o.pack(v.template get<25>()); + o.pack(v.template get<26>()); + o.pack(v.template get<27>()); + o.pack(v.template get<28>()); + o.pack(v.template get<29>()); + o.pack(v.template get<30>()); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()( + msgpack::packer& o, + const type::tuple& v) const { + o.pack_array(32); + + o.pack(v.template get<0>()); + o.pack(v.template get<1>()); + o.pack(v.template get<2>()); + o.pack(v.template get<3>()); + o.pack(v.template get<4>()); + o.pack(v.template get<5>()); + o.pack(v.template get<6>()); + o.pack(v.template get<7>()); + o.pack(v.template get<8>()); + o.pack(v.template get<9>()); + o.pack(v.template get<10>()); + o.pack(v.template get<11>()); + o.pack(v.template get<12>()); + o.pack(v.template get<13>()); + o.pack(v.template get<14>()); + o.pack(v.template get<15>()); + o.pack(v.template get<16>()); + o.pack(v.template get<17>()); + o.pack(v.template get<18>()); + o.pack(v.template get<19>()); + o.pack(v.template get<20>()); + o.pack(v.template get<21>()); + o.pack(v.template get<22>()); + o.pack(v.template get<23>()); + o.pack(v.template get<24>()); + o.pack(v.template get<25>()); + o.pack(v.template get<26>()); + o.pack(v.template get<27>()); + o.pack(v.template get<28>()); + o.pack(v.template get<29>()); + o.pack(v.template get<30>()); + o.pack(v.template get<31>()); + return o; + } +}; + +/// @endcond + +template <> +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple<>&) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } +}; + +/// @cond + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*1, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 1; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*2, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 2; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*3, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 3; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*4, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 4; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*5, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 5; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*6, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 6; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*7, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 7; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*8, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 8; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*9, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 9; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*10, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 10; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*11, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 11; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*12, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 12; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*13, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 13; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*14, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 14; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*15, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 15; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*16, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 16; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*17, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 17; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*18, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 18; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*19, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 19; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*20, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 20; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); + o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*21, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 21; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); + o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); + o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*22, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 22; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); + o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); + o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); + o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*23, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 23; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); + o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); + o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); + o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); + o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*24, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 24; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); + o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); + o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); + o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); + o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); + o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*25, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 25; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); + o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); + o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); + o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); + o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); + o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); + o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*26, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 26; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); + o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); + o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); + o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); + o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); + o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); + o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); + o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*27, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 27; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); + o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); + o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); + o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); + o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); + o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); + o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); + o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); + o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*28, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 28; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); + o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); + o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); + o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); + o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); + o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); + o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); + o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); + o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); + o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*29, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 29; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); + o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); + o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); + o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); + o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); + o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); + o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); + o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); + o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); + o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); + o.via.array.ptr[28] = msgpack::object(v.template get<28>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*30, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 30; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); + o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); + o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); + o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); + o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); + o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); + o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); + o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); + o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); + o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); + o.via.array.ptr[28] = msgpack::object(v.template get<28>(), o.zone); + o.via.array.ptr[29] = msgpack::object(v.template get<29>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*31, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 31; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); + o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); + o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); + o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); + o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); + o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); + o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); + o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); + o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); + o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); + o.via.array.ptr[28] = msgpack::object(v.template get<28>(), o.zone); + o.via.array.ptr[29] = msgpack::object(v.template get<29>(), o.zone); + o.via.array.ptr[30] = msgpack::object(v.template get<30>(), o.zone); + } +}; + +template +struct object_with_zone > { + void operator()( + msgpack::object::with_zone& o, + const type::tuple& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*32, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = 32; + + o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); + o.via.array.ptr[1] = msgpack::object(v.template get<1>(), o.zone); + o.via.array.ptr[2] = msgpack::object(v.template get<2>(), o.zone); + o.via.array.ptr[3] = msgpack::object(v.template get<3>(), o.zone); + o.via.array.ptr[4] = msgpack::object(v.template get<4>(), o.zone); + o.via.array.ptr[5] = msgpack::object(v.template get<5>(), o.zone); + o.via.array.ptr[6] = msgpack::object(v.template get<6>(), o.zone); + o.via.array.ptr[7] = msgpack::object(v.template get<7>(), o.zone); + o.via.array.ptr[8] = msgpack::object(v.template get<8>(), o.zone); + o.via.array.ptr[9] = msgpack::object(v.template get<9>(), o.zone); + o.via.array.ptr[10] = msgpack::object(v.template get<10>(), o.zone); + o.via.array.ptr[11] = msgpack::object(v.template get<11>(), o.zone); + o.via.array.ptr[12] = msgpack::object(v.template get<12>(), o.zone); + o.via.array.ptr[13] = msgpack::object(v.template get<13>(), o.zone); + o.via.array.ptr[14] = msgpack::object(v.template get<14>(), o.zone); + o.via.array.ptr[15] = msgpack::object(v.template get<15>(), o.zone); + o.via.array.ptr[16] = msgpack::object(v.template get<16>(), o.zone); + o.via.array.ptr[17] = msgpack::object(v.template get<17>(), o.zone); + o.via.array.ptr[18] = msgpack::object(v.template get<18>(), o.zone); + o.via.array.ptr[19] = msgpack::object(v.template get<19>(), o.zone); + o.via.array.ptr[20] = msgpack::object(v.template get<20>(), o.zone); + o.via.array.ptr[21] = msgpack::object(v.template get<21>(), o.zone); + o.via.array.ptr[22] = msgpack::object(v.template get<22>(), o.zone); + o.via.array.ptr[23] = msgpack::object(v.template get<23>(), o.zone); + o.via.array.ptr[24] = msgpack::object(v.template get<24>(), o.zone); + o.via.array.ptr[25] = msgpack::object(v.template get<25>(), o.zone); + o.via.array.ptr[26] = msgpack::object(v.template get<26>(), o.zone); + o.via.array.ptr[27] = msgpack::object(v.template get<27>(), o.zone); + o.via.array.ptr[28] = msgpack::object(v.template get<28>(), o.zone); + o.via.array.ptr[29] = msgpack::object(v.template get<29>(), o.zone); + o.via.array.ptr[30] = msgpack::object(v.template get<30>(), o.zone); + o.via.array.ptr[31] = msgpack::object(v.template get<31>(), o.zone); + } +}; + +/// @endcond + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_CPP03_MSGPACK_TUPLE_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple_decl.hpp new file mode 100644 index 000000000000..0c9200d86296 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple_decl.hpp @@ -0,0 +1,317 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP03_MSGPACK_TUPLE_DECL_HPP +#define MSGPACK_V1_CPP03_MSGPACK_TUPLE_DECL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/object.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +// FIXME operator== +// FIXME operator!= + + +/// @cond +template +struct tuple; +/// @endcond + +template +struct tuple_element; + +template +struct const_tuple_element; + +template +struct tuple_type; + +/// @cond + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +template +typename type::tuple_element, N>::reference get(type::tuple& t); +template +typename type::const_tuple_element, N>::const_reference get(type::tuple const& t); + +/// @endcond + +tuple<> make_tuple(); + +/// @cond + +template +tuple make_tuple(typename tuple_type::transparent_reference a0); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24, typename tuple_type::transparent_reference a25); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24, typename tuple_type::transparent_reference a25, typename tuple_type::transparent_reference a26); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24, typename tuple_type::transparent_reference a25, typename tuple_type::transparent_reference a26, typename tuple_type::transparent_reference a27); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24, typename tuple_type::transparent_reference a25, typename tuple_type::transparent_reference a26, typename tuple_type::transparent_reference a27, typename tuple_type::transparent_reference a28); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24, typename tuple_type::transparent_reference a25, typename tuple_type::transparent_reference a26, typename tuple_type::transparent_reference a27, typename tuple_type::transparent_reference a28, typename tuple_type::transparent_reference a29); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24, typename tuple_type::transparent_reference a25, typename tuple_type::transparent_reference a26, typename tuple_type::transparent_reference a27, typename tuple_type::transparent_reference a28, typename tuple_type::transparent_reference a29, typename tuple_type::transparent_reference a30); + +template +tuple make_tuple(typename tuple_type::transparent_reference a0, typename tuple_type::transparent_reference a1, typename tuple_type::transparent_reference a2, typename tuple_type::transparent_reference a3, typename tuple_type::transparent_reference a4, typename tuple_type::transparent_reference a5, typename tuple_type::transparent_reference a6, typename tuple_type::transparent_reference a7, typename tuple_type::transparent_reference a8, typename tuple_type::transparent_reference a9, typename tuple_type::transparent_reference a10, typename tuple_type::transparent_reference a11, typename tuple_type::transparent_reference a12, typename tuple_type::transparent_reference a13, typename tuple_type::transparent_reference a14, typename tuple_type::transparent_reference a15, typename tuple_type::transparent_reference a16, typename tuple_type::transparent_reference a17, typename tuple_type::transparent_reference a18, typename tuple_type::transparent_reference a19, typename tuple_type::transparent_reference a20, typename tuple_type::transparent_reference a21, typename tuple_type::transparent_reference a22, typename tuple_type::transparent_reference a23, typename tuple_type::transparent_reference a24, typename tuple_type::transparent_reference a25, typename tuple_type::transparent_reference a26, typename tuple_type::transparent_reference a27, typename tuple_type::transparent_reference a28, typename tuple_type::transparent_reference a29, typename tuple_type::transparent_reference a30, typename tuple_type::transparent_reference a31); + +/// @endcond + +} // namespace type + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_CPP03_MSGPACK_TUPLE_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp new file mode 100644 index 000000000000..f9e29ea61a04 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp @@ -0,0 +1,45 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2017 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP11_CONVERT_HELPER_HPP +#define MSGPACK_V1_CPP11_CONVERT_HELPER_HPP + +#include + +#include + +namespace msgpack { +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond +namespace type { + +template +inline typename std::enable_if< + has_as::value +>::type +convert_helper(msgpack::object const& o, T& t) { + t = o.as(); +} +template +inline typename std::enable_if< + !has_as::value +>::type +convert_helper(msgpack::object const& o, T& t) { + o.convert(t); +} + +} // namespace type + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond +} // namespace msgpack + +#endif // MSGPACK_V1_CPP11_CONVERT_HELPER_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp new file mode 100644 index 000000000000..bec4a053bd4d --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp @@ -0,0 +1,128 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP11_DEFINE_ARRAY_HPP +#define MSGPACK_V1_CPP11_DEFINE_ARRAY_HPP + +#include "msgpack/v1/adaptor/detail/cpp11_define_array_decl.hpp" +#include "msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp" + +#include + +namespace msgpack { +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond +namespace type { + +template +struct define_array_imp { + template + static void pack(Packer& pk, Tuple const& t) { + define_array_imp::pack(pk, t); + pk.pack(std::get(t)); + } + static void unpack(msgpack::object const& o, Tuple& t) { + define_array_imp::unpack(o, t); + const size_t size = o.via.array.size; + if(size <= N-1) { return; } + convert_helper(o.via.array.ptr[N-1], std::get(t)); + } + static void object(msgpack::object* o, msgpack::zone& z, Tuple const& t) { + define_array_imp::object(o, z, t); + o->via.array.ptr[N-1] = msgpack::object(std::get(t), z); + } +}; + +template +struct define_array_imp { + template + static void pack(Packer& pk, Tuple const& t) { + pk.pack(std::get<0>(t)); + } + static void unpack(msgpack::object const& o, Tuple& t) { + const size_t size = o.via.array.size; + if(size <= 0) { return; } + convert_helper(o.via.array.ptr[0], std::get<0>(t)); + } + static void object(msgpack::object* o, msgpack::zone& z, Tuple const& t) { + o->via.array.ptr[0] = msgpack::object(std::get<0>(t), z); + } +}; + +template +struct define_array { + typedef define_array value_type; + typedef std::tuple tuple_type; + define_array(Args&... args) : + a(args...) {} + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(sizeof...(Args)); + + define_array_imp, sizeof...(Args)>::pack(pk, a); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + + define_array_imp, sizeof...(Args)>::unpack(o, a); + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*sizeof...(Args), MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o->via.array.size = sizeof...(Args); + + define_array_imp, sizeof...(Args)>::object(o, z, a); + } + + std::tuple a; +}; + +template <> +struct define_array<> { + typedef define_array<> value_type; + typedef std::tuple<> tuple_type; + template + void msgpack_pack(Packer& pk) const + { + pk.pack_array(0); + } + void msgpack_unpack(msgpack::object const& o) + { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + } + void msgpack_object(msgpack::object* o, msgpack::zone&) const + { + o->type = msgpack::type::ARRAY; + o->via.array.ptr = NULL; + o->via.array.size = 0; + } +}; + +inline define_array<> make_define_array() +{ + return define_array<>(); +} + +template +inline define_array make_define_array(Args&... args) +{ + return define_array(args...); +} + +} // namespace type +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond +} // namespace msgpack + +#endif // MSGPACK_V1_CPP11_DEFINE_ARRAY_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_array_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_array_decl.hpp new file mode 100644 index 000000000000..6333f660a930 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_array_decl.hpp @@ -0,0 +1,39 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP11_DEFINE_ARRAY_DECL_HPP +#define MSGPACK_V1_CPP11_DEFINE_ARRAY_DECL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" + +namespace msgpack { +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond +namespace type { + +template +struct define_array_imp; + +template +struct define_array; + +define_array<> make_define_array(); + +template +inline define_array make_define_array(Args&... args); + +} // namespace type +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond +} // namespace msgpack + +#endif // MSGPACK_V1_CPP11_DEFINE_ARRAY_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp new file mode 100644 index 000000000000..d1ab70150f3a --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp @@ -0,0 +1,110 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP11_DEFINE_MAP_HPP +#define MSGPACK_V1_CPP11_DEFINE_MAP_HPP + +#include "msgpack/v1/adaptor/detail/cpp11_define_map_decl.hpp" +#include "msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp" + +#include +#include + +namespace msgpack { +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond +namespace type { + +template +struct define_map_imp { + template + static void pack(Packer& pk, Tuple const& t) { + define_map_imp::pack(pk, t); + pk.pack(std::get(t)); + } + static void unpack( + msgpack::object const& o, Tuple const& t, + std::map const& kvmap) { + define_map_imp::unpack(o, t, kvmap); + auto it = kvmap.find(std::get(t)); + if (it != kvmap.end()) { + convert_helper(*it->second, std::get(t)); + } + } + static void object(msgpack::object* o, msgpack::zone& z, Tuple const& t) { + define_map_imp::object(o, z, t); + o->via.map.ptr[(N-1)/2].key = msgpack::object(std::get(t), z); + o->via.map.ptr[(N-1)/2].val = msgpack::object(std::get(t), z); + } +}; + +template +struct define_map_imp { + template + static void pack(Packer&, Tuple const&) {} + static void unpack( + msgpack::object const&, Tuple const&, + std::map const&) {} + static void object(msgpack::object*, msgpack::zone&, Tuple const&) {} +}; + +template +struct define_map { + define_map(Args&... args) : + a(args...) {} + template + void msgpack_pack(Packer& pk) const + { + static_assert(sizeof...(Args) % 2 == 0, ""); + pk.pack_map(sizeof...(Args) / 2); + + define_map_imp, sizeof...(Args)>::pack(pk, a); + } + void msgpack_unpack(msgpack::object const& o) const + { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + std::map kvmap; + for (uint32_t i = 0; i < o.via.map.size; ++i) { + if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); } + kvmap.emplace( + std::string( + o.via.map.ptr[i].key.via.str.ptr, + o.via.map.ptr[i].key.via.str.size), + &o.via.map.ptr[i].val); + } + define_map_imp, sizeof...(Args)>::unpack(o, a, kvmap); + } + void msgpack_object(msgpack::object* o, msgpack::zone& z) const + { + static_assert(sizeof...(Args) % 2 == 0, ""); + o->type = msgpack::type::MAP; + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*sizeof...(Args)/2, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + o->via.map.size = sizeof...(Args) / 2; + + define_map_imp, sizeof...(Args)>::object(o, z, a); + } + + std::tuple a; +}; + + +template +inline define_map make_define_map(Args&... args) +{ + return define_map(args...); +} + +} // namespace type +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond +} // namespace msgpack + +#endif // MSGPACK_V1_CPP11_DEFINE_MAP_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_map_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_map_decl.hpp new file mode 100644 index 000000000000..403e68c079e7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_define_map_decl.hpp @@ -0,0 +1,37 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP11_DEFINE_MAP_DECL_HPP +#define MSGPACK_V1_CPP11_DEFINE_MAP_DECL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" + +namespace msgpack { +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond +namespace type { + +template +struct define_map_imp; + +template +struct define_map; + +template +define_map make_define_map(Args&... args); + +} // namespace type +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond +} // namespace msgpack + +#endif // MSGPACK_V1_CPP11_DEFINE_MAP_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp new file mode 100644 index 000000000000..9aa0c31a499c --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp @@ -0,0 +1,220 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP11_MSGPACK_TUPLE_HPP +#define MSGPACK_V1_CPP11_MSGPACK_TUPLE_HPP + +#include "msgpack/v1/adaptor/detail/cpp11_msgpack_tuple_decl.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/pack.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +template +inline tuple make_tuple(Args&&... args) { + return tuple(std::forward(args)...); +} + +template +inline tuple forward_as_tuple (Args&&... args) noexcept { + return tuple(std::forward(args)...); +} + +template +inline auto tuple_cat(Tuples&&... args) -> + decltype( + std::tuple_cat(std::forward::type::base>(args)...) + ) { + return std::tuple_cat(std::forward::type::base>(args)...); +} + +template +inline tuple tie(Args&... args) { + return tuple(args...); +} +} // namespace type + +// --- Pack from tuple to packer stream --- +template +struct MsgpackTuplePacker { + static void pack( + msgpack::packer& o, + const Tuple& v) { + MsgpackTuplePacker::pack(o, v); + o.pack(type::get(v)); + } +}; + +template +struct MsgpackTuplePacker { + static void pack ( + msgpack::packer& o, + const Tuple& v) { + o.pack(type::get<0>(v)); + } +}; + +template +struct MsgpackTuplePacker { + static void pack ( + msgpack::packer&, + const Tuple&) { + } +}; + +namespace adaptor { + +template +struct pack> { + template + msgpack::packer& operator()( + msgpack::packer& o, + const msgpack::type::tuple& v) const { + o.pack_array(sizeof...(Args)); + MsgpackTuplePacker::pack(o, v); + return o; + } +}; + +} // namespace adaptor + +// --- Convert from tuple to object --- + +template +struct MsgpackTupleAsImpl { + static msgpack::type::tuple as(msgpack::object const& o) { + return msgpack::type::tuple_cat( + msgpack::type::make_tuple(o.via.array.ptr[o.via.array.size - sizeof...(Args) - 1].as()), + MsgpackTupleAs::as(o)); + } +}; + +template +struct MsgpackTupleAs { + static msgpack::type::tuple as(msgpack::object const& o) { + return MsgpackTupleAsImpl::as(o); + } +}; + +template <> +struct MsgpackTupleAs<> { + static msgpack::type::tuple<> as (msgpack::object const&) { + return msgpack::type::tuple<>(); + } +}; + +template +struct MsgpackTupleConverter { + static void convert( + msgpack::object const& o, + Tuple& v) { + MsgpackTupleConverter::convert(o, v); + if (o.via.array.size >= N) + o.via.array.ptr[N-1].convert(v))>::type>(type::get(v)); + } +}; + +template +struct MsgpackTupleConverter { + static void convert ( + msgpack::object const& o, + Tuple& v) { + o.via.array.ptr[0].convert(v))>::type>(type::get<0>(v)); + } +}; + +template +struct MsgpackTupleConverter { + static void convert ( + msgpack::object const&, + Tuple&) { + } +}; + +namespace adaptor { + +template +struct as, typename std::enable_if::value>::type> { + msgpack::type::tuple operator()( + msgpack::object const& o) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + return MsgpackTupleAs::as(o); + } +}; + +template +struct convert> { + msgpack::object const& operator()( + msgpack::object const& o, + msgpack::type::tuple& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + MsgpackTupleConverter::convert(o, v); + return o; + } +}; + +} // namespace adaptor + +// --- Convert from tuple to object with zone --- +template +struct MsgpackTupleToObjectWithZone { + static void convert( + msgpack::object::with_zone& o, + const Tuple& v) { + MsgpackTupleToObjectWithZone::convert(o, v); + o.via.array.ptr[N-1] = msgpack::object(type::get(v), o.zone); + } +}; + +template +struct MsgpackTupleToObjectWithZone { + static void convert ( + msgpack::object::with_zone& o, + const Tuple& v) { + o.via.array.ptr[0] = msgpack::object(type::get<0>(v), o.zone); + } +}; + +template +struct MsgpackTupleToObjectWithZone { + static void convert ( + msgpack::object::with_zone&, + const Tuple&) { + } +}; + +namespace adaptor { + +template + struct object_with_zone> { + void operator()( + msgpack::object::with_zone& o, + msgpack::type::tuple const& v) const { + o.type = msgpack::type::ARRAY; + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*sizeof...(Args), MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.size = sizeof...(Args); + MsgpackTupleToObjectWithZone::convert(o, v); + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +///@endcond + +} // namespace msgpack + +#endif // MSGPACK_CPP11_MSGPACK_TUPLE_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple_decl.hpp new file mode 100644 index 000000000000..9b6d5d4959fc --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple_decl.hpp @@ -0,0 +1,120 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2015 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP11_MSGPACK_TUPLE_DECL_HPP +#define MSGPACK_V1_CPP11_MSGPACK_TUPLE_DECL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/object_fwd.hpp" +#include "msgpack/meta.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + // tuple + using std::get; + using std::tuple_size; + using std::tuple_element; + using std::uses_allocator; + using std::ignore; + using std::swap; + + template< class... Types > + class tuple : public std::tuple { + public: + using base = std::tuple; + + tuple(tuple const&) = default; + tuple(tuple&&) = default; + + template + tuple(OtherTypes&&... other):base(std::forward(other)...) {} + + template + tuple(tuple const& other):base(static_cast const&>(other)) {} + template + tuple(tuple && other):base(static_cast &&>(other)) {} + + tuple& operator=(tuple const&) = default; + tuple& operator=(tuple&&) = default; + + template + tuple& operator=(tuple const& other) { + *static_cast(this) = static_cast const&>(other); + return *this; + } + template + tuple& operator=(tuple && other) { + *static_cast(this) = static_cast &&>(other); + return *this; + } + + template< std::size_t I> + typename tuple_element::type& + get() & { return std::get(*this); } + + template< std::size_t I> + typename tuple_element::type const& + get() const& { return std::get(*this); } + + template< std::size_t I> + typename tuple_element::type&& + get() && { return std::get(*this); } + + std::size_t size() const { return sizeof...(Types); } + }; + + template + tuple make_tuple(Args&&... args); + + template + tuple forward_as_tuple (Args&&... args) noexcept; + + template + auto tuple_cat(Tuples&&... args) -> + decltype( + std::tuple_cat(std::forward::type::base>(args)...) + ); + + template + tuple tie(Args&... args); + +} // namespace type + +// --- Pack from tuple to packer stream --- +template +struct MsgpackTuplePacker; + +// --- Convert from tuple to object --- +template +struct MsgpackTupleAs; + +template +struct MsgpackTupleAsImpl; + +template +struct MsgpackTupleConverter; + +// --- Convert from tuple to object with zone --- +template +struct MsgpackTupleToObjectWithZone; + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +///@endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_CPP11_MSGPACK_TUPLE_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/ext.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/ext.hpp new file mode 100644 index 000000000000..de375975fb4f --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/ext.hpp @@ -0,0 +1,236 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_EXT_HPP +#define MSGPACK_V1_TYPE_EXT_HPP + +#include "msgpack/v1/adaptor/ext_decl.hpp" +#include "msgpack/adaptor/check_container_size.hpp" +#include +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +class ext { +public: + ext() : m_data(1, 0) {} + ext(int8_t t, const char* p, uint32_t s) { + msgpack::detail::check_container_size_for_ext(s); + m_data.reserve(static_cast(s) + 1); + m_data.push_back(static_cast(t)); + m_data.insert(m_data.end(), p, p + s); + } + ext(int8_t t, uint32_t s) { + msgpack::detail::check_container_size_for_ext(s); + m_data.resize(static_cast(s) + 1); + m_data[0] = static_cast(t); + } + ext(ext_ref const&); + int8_t type() const { + return static_cast(m_data[0]); + } + const char* data() const { + return &m_data[0] + 1; + } + char* data() { + return &m_data[0] + 1; + } + uint32_t size() const { + return static_cast(m_data.size()) - 1; + } + bool operator== (const ext& x) const { + return m_data == x.m_data; + } + + bool operator!= (const ext& x) const { + return !(*this == x); + } + + bool operator< (const ext& x) const { + return m_data < x.m_data; + } + + bool operator> (const ext& x) const { + return m_data > x.m_data; + } +private: + std::vector m_data; + friend class ext_ref; +}; + +} // namespace type + +namespace adaptor { + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, msgpack::type::ext& v) const { + if(o.type != msgpack::type::EXT) { + throw msgpack::type_error(); + } + v = msgpack::type::ext(o.via.ext.type(), o.via.ext.data(), o.via.ext.size); + return o; + } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const msgpack::type::ext& v) const { + // size limit has already been checked at ext's constructor + uint32_t size = v.size(); + o.pack_ext(size, v.type()); + o.pack_ext_body(v.data(), size); + return o; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const msgpack::type::ext& v) const { + // size limit has already been checked at ext's constructor + uint32_t size = v.size(); + o.type = msgpack::type::EXT; + char* ptr = static_cast(o.zone.allocate_align(size + 1, MSGPACK_ZONE_ALIGNOF(char))); + o.via.ext.ptr = ptr; + o.via.ext.size = size; + ptr[0] = static_cast(v.type()); + std::memcpy(ptr + 1, v.data(), size); + } +}; + +} // namespace adaptor + +namespace type { + +class ext_ref { +public: + // ext_ref should be default constructible to support 'convert'. + // A default constructed ext_ref object::m_ptr doesn't have the buffer to point to. + // In order to avoid nullptr checking branches, m_ptr points to m_size. + // So type() returns unspecified but valid value. It might be a zero because m_size + // is initialized as zero, but shouldn't assume that. + ext_ref() : m_ptr(static_cast(static_cast(&m_size))), m_size(0) {} + ext_ref(const char* p, uint32_t s) : + m_ptr(s == 0 ? static_cast(static_cast(&m_size)) : p), + m_size(s == 0 ? 0 : s - 1) { + msgpack::detail::check_container_size_for_ext(s); + } + + // size limit has already been checked at ext's constructor + ext_ref(ext const& x) : m_ptr(&x.m_data[0]), m_size(x.size()) {} + + const char* data() const { + return m_ptr + 1; + } + + uint32_t size() const { + return m_size; + } + + int8_t type() const { + return static_cast(m_ptr[0]); + } + + std::string str() const { + return std::string(m_ptr + 1, m_size); + } + + bool operator== (const ext_ref& x) const { + return m_size == x.m_size && std::memcmp(m_ptr, x.m_ptr, m_size) == 0; + } + + bool operator!= (const ext_ref& x) const { + return !(*this == x); + } + + bool operator< (const ext_ref& x) const { + if (m_size < x.m_size) return true; + if (m_size > x.m_size) return false; + return std::memcmp(m_ptr, x.m_ptr, m_size) < 0; + } + + bool operator> (const ext_ref& x) const { + if (m_size > x.m_size) return true; + if (m_size < x.m_size) return false; + return std::memcmp(m_ptr, x.m_ptr, m_size) > 0; + } +private: + const char* m_ptr; + uint32_t m_size; + friend struct adaptor::object; +}; + +inline ext::ext(ext_ref const& x) { + // size limit has already been checked at ext_ref's constructor + m_data.reserve(x.size() + 1); + + m_data.push_back(x.type()); + m_data.insert(m_data.end(), x.data(), x.data() + x.size()); +} + +} // namespace type + +namespace adaptor { + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, msgpack::type::ext_ref& v) const { + if(o.type != msgpack::type::EXT) { throw msgpack::type_error(); } + v = msgpack::type::ext_ref(o.via.ext.ptr, o.via.ext.size + 1); + return o; + } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const msgpack::type::ext_ref& v) const { + // size limit has already been checked at ext_ref's constructor + uint32_t size = v.size(); + o.pack_ext(size, v.type()); + o.pack_ext_body(v.data(), size); + return o; + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, const msgpack::type::ext_ref& v) const { + // size limit has already been checked at ext_ref's constructor + uint32_t size = v.size(); + o.type = msgpack::type::EXT; + o.via.ext.ptr = v.m_ptr; + o.via.ext.size = size; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const msgpack::type::ext_ref& v) const { + static_cast(o) << v; + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_EXT_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/ext_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/ext_decl.hpp new file mode 100644 index 000000000000..df5bd19965c5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/ext_decl.hpp @@ -0,0 +1,38 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_EXT_DECL_HPP +#define MSGPACK_V1_TYPE_EXT_DECL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +class ext_ref; +class ext; + +} // namespace type + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_EXT_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/fixint.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/fixint.hpp new file mode 100644 index 000000000000..7361edf9d6f7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/fixint.hpp @@ -0,0 +1,299 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_FIXINT_HPP +#define MSGPACK_V1_TYPE_FIXINT_HPP + +#include "msgpack/v1/adaptor/fixint_decl.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +template +struct fix_int { + fix_int() : value(0) { } + fix_int(T value) : value(value) { } + + operator T() const { return value; } + + T get() const { return value; } + +private: + T value; +}; + +} // namespace type + +namespace adaptor { + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, type::fix_int8& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, type::fix_int16& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, type::fix_int32& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, type::fix_int64& v) const + { v = type::detail::convert_integer(o); return o; } +}; + + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, type::fix_uint8& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, type::fix_uint16& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, type::fix_uint32& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, type::fix_uint64& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const type::fix_int8& v) const + { o.pack_fix_int8(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const type::fix_int16& v) const + { o.pack_fix_int16(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const type::fix_int32& v) const + { o.pack_fix_int32(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const type::fix_int64& v) const + { o.pack_fix_int64(v); return o; } +}; + + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const type::fix_uint8& v) const + { o.pack_fix_uint8(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const type::fix_uint16& v) const + { o.pack_fix_uint16(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const type::fix_uint32& v) const + { o.pack_fix_uint32(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const type::fix_uint64& v) const + { o.pack_fix_uint64(v); return o; } +}; + +template <> +struct object { + void operator()(msgpack::object& o, type::fix_int8 v) const { + if (v.get() < 0) { + o.type = msgpack::type::NEGATIVE_INTEGER; + o.via.i64 = v.get(); + } + else { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v.get(); + } + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, type::fix_int16 v) const { + if(v.get() < 0) { + o.type = msgpack::type::NEGATIVE_INTEGER; + o.via.i64 = v.get(); + } + else { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v.get(); + } + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, type::fix_int32 v) const { + if (v.get() < 0) { + o.type = msgpack::type::NEGATIVE_INTEGER; + o.via.i64 = v.get(); + } + else { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v.get(); + } + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, type::fix_int64 v) const { + if (v.get() < 0) { + o.type = msgpack::type::NEGATIVE_INTEGER; + o.via.i64 = v.get(); + } + else { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v.get(); + } + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, type::fix_uint8 v) const { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v.get(); + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, type::fix_uint16 v) const { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v.get(); + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, type::fix_uint32 v) const { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v.get(); + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, type::fix_uint64 v) const { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v.get(); + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, type::fix_int8 v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, type::fix_int16 v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, type::fix_int32 v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, type::fix_int64 v) const { + static_cast(o) << v; + } +}; + + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, type::fix_uint8 v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, type::fix_uint16 v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, type::fix_uint32 v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, type::fix_uint64 v) const { + static_cast(o) << v; + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_FIXINT_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/fixint_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/fixint_decl.hpp new file mode 100644 index 000000000000..1c4a439a9cbe --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/fixint_decl.hpp @@ -0,0 +1,46 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_FIXINT_DECL_HPP +#define MSGPACK_V1_TYPE_FIXINT_DECL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/int.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +template +struct fix_int; + +typedef fix_int fix_uint8; +typedef fix_int fix_uint16; +typedef fix_int fix_uint32; +typedef fix_int fix_uint64; + +typedef fix_int fix_int8; +typedef fix_int fix_int16; +typedef fix_int fix_int32; +typedef fix_int fix_int64; + +} // namespace type + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_FIXINT_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/float.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/float.hpp new file mode 100644 index 000000000000..ae075fc62013 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/float.hpp @@ -0,0 +1,123 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2009 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_FLOAT_HPP +#define MSGPACK_V1_TYPE_FLOAT_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/object_fwd.hpp" +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +// FIXME check overflow, underflow + +namespace adaptor { + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, float& v) const { + if(o.type == msgpack::type::FLOAT32 || o.type == msgpack::type::FLOAT64) { + v = static_cast(o.via.f64); + } + else if (o.type == msgpack::type::POSITIVE_INTEGER) { + v = static_cast(o.via.u64); + } + else if (o.type == msgpack::type::NEGATIVE_INTEGER) { + v = static_cast(o.via.i64); + } + else { + throw msgpack::type_error(); + } + return o; + } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const float& v) const { + o.pack_float(v); + return o; + } +}; + + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, double& v) const { + if(o.type == msgpack::type::FLOAT32 || o.type == msgpack::type::FLOAT64) { + v = o.via.f64; + } + else if (o.type == msgpack::type::POSITIVE_INTEGER) { + v = static_cast(o.via.u64); + } + else if (o.type == msgpack::type::NEGATIVE_INTEGER) { + v = static_cast(o.via.i64); + } + else { + throw msgpack::type_error(); + } + return o; + } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const double& v) const { + o.pack_double(v); + return o; + } +}; + + +template <> +struct object { + void operator()(msgpack::object& o, float v) const { + o.type = msgpack::type::FLOAT32; + o.via.f64 = static_cast(v); + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, double v) const { + o.type = msgpack::type::FLOAT64; + o.via.f64 = v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, float v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, double v) const { + static_cast(o) << v; + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_FLOAT_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/int.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/int.hpp new file mode 100644 index 000000000000..962e66ff9ea6 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/int.hpp @@ -0,0 +1,448 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_INT_HPP +#define MSGPACK_V1_TYPE_INT_HPP + +#include "msgpack/v1/adaptor/int_decl.hpp" +#include "msgpack/object.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1){ +/// @endcond + +namespace type { +namespace detail { + +template +struct convert_integer_sign { + static T convert(msgpack::object const& o) { + if(o.type == msgpack::type::POSITIVE_INTEGER) { + if(o.via.u64 > static_cast(std::numeric_limits::max())) + { throw msgpack::type_error(); } + return static_cast(o.via.u64); + } else if(o.type == msgpack::type::NEGATIVE_INTEGER) { + if(o.via.i64 < static_cast(std::numeric_limits::min())) + { throw msgpack::type_error(); } + return static_cast(o.via.i64); + } + throw msgpack::type_error(); + } +}; + +template +struct convert_integer_sign { + static T convert(msgpack::object const& o) { + if(o.type == msgpack::type::POSITIVE_INTEGER) { + if(o.via.u64 > static_cast(std::numeric_limits::max())) + { throw msgpack::type_error(); } + return static_cast(o.via.u64); + } + throw msgpack::type_error(); + } +}; + +template +struct is_signed { + static const bool value = std::numeric_limits::is_signed; +}; + +template +inline T convert_integer(msgpack::object const& o) +{ + return detail::convert_integer_sign::value>::convert(o); +} + +template <> +struct object_char_sign { + template + static typename msgpack::enable_if::value>::type + make(msgpack::object& o, T v) { + if (v < 0) { + o.type = msgpack::type::NEGATIVE_INTEGER; + o.via.i64 = v; + } + else { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v; + } + } +}; + +template <> +struct object_char_sign { + static void make(msgpack::object& o, char v) { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v; + } +}; + +inline void object_char(msgpack::object& o, char v) { + return object_char_sign::value>::make(o, v); +} + +} // namespace detail +} // namespace type + +namespace adaptor { + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, char& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, signed char& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, signed short& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, signed int& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, signed long& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, signed long long& v) const + { v = type::detail::convert_integer(o); return o; } +}; + + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, unsigned char& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, unsigned short& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, unsigned int& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, unsigned long& v) const + { v = type::detail::convert_integer(o); return o; } +}; + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, unsigned long long& v) const + { v = type::detail::convert_integer(o); return o; } +}; + + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, char v) const + { o.pack_char(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, signed char v) const + { o.pack_signed_char(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, signed short v) const + { o.pack_short(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, signed int v) const + { o.pack_int(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, signed long v) const + { o.pack_long(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, signed long long v) const + { o.pack_long_long(v); return o; } +}; + + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, unsigned char v) const + { o.pack_unsigned_char(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, unsigned short v) const + { o.pack_unsigned_short(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, unsigned int v) const + { o.pack_unsigned_int(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, unsigned long v) const + { o.pack_unsigned_long(v); return o; } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, unsigned long long v) const + { o.pack_unsigned_long_long(v); return o; } +}; + + +template <> +struct object { + void operator()(msgpack::object& o, char v) const + { type::detail::object_char(o, v); } +}; + +template <> +struct object { + void operator()(msgpack::object& o, signed char v) const { + if (v < 0) { + o.type = msgpack::type::NEGATIVE_INTEGER; + o.via.i64 = v; + } + else { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v; + } + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, signed short v) const { + if (v < 0) { + o.type = msgpack::type::NEGATIVE_INTEGER; + o.via.i64 = v; + } + else { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v; + } + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, signed int v) const { + if (v < 0) { + o.type = msgpack::type::NEGATIVE_INTEGER; + o.via.i64 = v; + } + else { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v; + } + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, signed long v) const { + if (v < 0) { + o.type = msgpack::type::NEGATIVE_INTEGER; + o.via.i64 = v; + } + else { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v; + } + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, signed long long v) const { + if (v < 0) { + o.type = msgpack::type::NEGATIVE_INTEGER; + o.via.i64 = v; + } + else{ + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v; + } + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, unsigned char v) const { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v; + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, unsigned short v) const { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v; + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, unsigned int v) const { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v; + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, unsigned long v) const { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v; + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, unsigned long long v) const { + o.type = msgpack::type::POSITIVE_INTEGER; + o.via.u64 = v; + } +}; + + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, char v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, signed char v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, signed short v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, signed int v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, signed long v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const signed long long& v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, unsigned char v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, unsigned short v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, unsigned int v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, unsigned long v) const { + static_cast(o) << v; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const unsigned long long& v) const { + static_cast(o) << v; + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_INT_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/int_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/int_decl.hpp new file mode 100644 index 000000000000..eb596c7ac1fd --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/int_decl.hpp @@ -0,0 +1,49 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_INT_DECL_HPP +#define MSGPACK_V1_TYPE_INT_DECL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1){ +/// @endcond + +namespace type { +namespace detail { + +template +struct convert_integer_sign; + +template +struct is_signed; + +template +T convert_integer(msgpack::object const& o); + +template +struct object_char_sign; + +void object_char(msgpack::object& o, char v); + +} // namespace detail +} // namespace type + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_INT_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/list.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/list.hpp new file mode 100644 index 000000000000..d16c8d21923a --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/list.hpp @@ -0,0 +1,106 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2015 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_LIST_HPP +#define MSGPACK_V1_TYPE_LIST_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +#if !defined(MSGPACK_USE_CPP03) + +template +struct as, typename std::enable_if::value>::type> { + std::list operator()(msgpack::object const& o) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + std::list v; + msgpack::object* p = o.via.array.ptr; + msgpack::object* const pend = o.via.array.ptr + o.via.array.size; + for (; p < pend; ++p) { + v.push_back(p->as()); + } + return v; + } +}; + +#endif // !defined(MSGPACK_USE_CPP03) + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, std::list& v) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + v.resize(o.via.array.size); + msgpack::object* p = o.via.array.ptr; + msgpack::object* const pend = o.via.array.ptr + o.via.array.size; + typename std::list::iterator it = v.begin(); + for (; p < pend; ++p, ++it) { + p->convert(*it); + } + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const std::list& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for (typename std::list::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(*it); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const std::list& v) const { + o.type = msgpack::type::ARRAY; + if (v.empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } + else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + msgpack::object* const pend = p + size; + o.via.array.ptr = p; + o.via.array.size = size; + typename std::list::const_iterator it(v.begin()); + do { + *p = msgpack::object(*it, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_LIST_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/map.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/map.hpp new file mode 100644 index 000000000000..2c1793e16e23 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/map.hpp @@ -0,0 +1,314 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_MAP_HPP +#define MSGPACK_V1_TYPE_MAP_HPP + +#include "msgpack/v1/adaptor/map_decl.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" + +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +template +class assoc_vector : public std::vector< std::pair, Alloc > { +#if !defined(MSGPACK_USE_CPP03) + using std::vector, Alloc>::vector; +#endif // !defined(MSGPACK_USE_CPP03) +}; + +namespace detail { + template + struct pair_first_less { + bool operator() (const std::pair& x, const std::pair& y) const + { return Compare()(x.first, y.first); } + }; +} + +} //namespace type + +namespace adaptor { + +#if !defined(MSGPACK_USE_CPP03) + +template +struct as< + type::assoc_vector, + typename std::enable_if::value || msgpack::has_as::value>::type> { + type::assoc_vector operator()(msgpack::object const& o) const { + if (o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + type::assoc_vector v; + v.reserve(o.via.map.size); + msgpack::object_kv* p = o.via.map.ptr; + msgpack::object_kv* const pend = o.via.map.ptr + o.via.map.size; + for (; p < pend; ++p) { + v.emplace_back(p->key.as(), p->val.as()); + } + std::sort(v.begin(), v.end(), type::detail::pair_first_less()); + return v; + } +}; + +#endif // !defined(MSGPACK_USE_CPP03) + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, type::assoc_vector& v) const { + if (o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + v.resize(o.via.map.size); + if (o.via.map.size != 0) { + msgpack::object_kv* p = o.via.map.ptr; + msgpack::object_kv* const pend = o.via.map.ptr + o.via.map.size; + std::pair* it(&v.front()); + for (; p < pend; ++p, ++it) { + p->key.convert(it->first); + p->val.convert(it->second); + } + std::sort(v.begin(), v.end(), type::detail::pair_first_less()); + } + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const type::assoc_vector& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_map(size); + for (typename type::assoc_vector::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(it->first); + o.pack(it->second); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const type::assoc_vector& v) const { + o.type = msgpack::type::MAP; + if (v.empty()) { + o.via.map.ptr = MSGPACK_NULLPTR; + o.via.map.size = 0; + } + else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + msgpack::object_kv* const pend = p + size; + o.via.map.ptr = p; + o.via.map.size = size; + typename type::assoc_vector::const_iterator it(v.begin()); + do { + p->key = msgpack::object(it->first, o.zone); + p->val = msgpack::object(it->second, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +#if !defined(MSGPACK_USE_CPP03) + +template +struct as< + std::map, + typename std::enable_if::value || msgpack::has_as::value>::type> { + std::map operator()(msgpack::object const& o) const { + if (o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + msgpack::object_kv* p(o.via.map.ptr); + msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size); + std::map v; + for (; p != pend; ++p) { + v.emplace(p->key.as(), p->val.as()); + } + return v; + } +}; + +#endif // !defined(MSGPACK_USE_CPP03) + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, std::map& v) const { + if (o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + msgpack::object_kv* p(o.via.map.ptr); + msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size); + std::map tmp; + for (; p != pend; ++p) { + K key; + p->key.convert(key); +#if __cplusplus >= 201103L + p->val.convert(tmp[std::move(key)]); +#else + p->val.convert(tmp[key]); +#endif + } +#if __cplusplus >= 201103L + v = std::move(tmp); +#else + tmp.swap(v); +#endif + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const std::map& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_map(size); + for (typename std::map::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(it->first); + o.pack(it->second); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const std::map& v) const { + o.type = msgpack::type::MAP; + if (v.empty()) { + o.via.map.ptr = MSGPACK_NULLPTR; + o.via.map.size = 0; + } + else { + uint32_t size = checked_get_container_size(v.size()); + + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + msgpack::object_kv* const pend = p + size; + o.via.map.ptr = p; + o.via.map.size = size; + typename std::map::const_iterator it(v.begin()); + do { +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + p->key = msgpack::object(it->first, o.zone); + p->val = msgpack::object(it->second, o.zone); +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + ++p; + ++it; + } while(p < pend); + } + } +}; + +#if !defined(MSGPACK_USE_CPP03) + +template +struct as< + std::multimap, + typename std::enable_if::value || msgpack::has_as::value>::type> { + std::multimap operator()(msgpack::object const& o) const { + if (o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + msgpack::object_kv* p(o.via.map.ptr); + msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size); + std::multimap v; + for (; p != pend; ++p) { + v.emplace(p->key.as(), p->val.as()); + } + return v; + } +}; + +#endif // !defined(MSGPACK_USE_CPP03) + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, std::multimap& v) const { + if (o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + msgpack::object_kv* p(o.via.map.ptr); + msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size); + std::multimap tmp; + for (; p != pend; ++p) { + std::pair value; + p->key.convert(value.first); + p->val.convert(value.second); +#if __cplusplus >= 201103L + tmp.insert(std::move(value)); +#else + tmp.insert(value); +#endif + } +#if __cplusplus >= 201103L + v = std::move(tmp); +#else + tmp.swap(v); +#endif + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const std::multimap& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_map(size); + for (typename std::multimap::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(it->first); + o.pack(it->second); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const std::multimap& v) const { + o.type = msgpack::type::MAP; + if (v.empty()) { + o.via.map.ptr = MSGPACK_NULLPTR; + o.via.map.size = 0; + } + else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + msgpack::object_kv* const pend = p + size; + o.via.map.ptr = p; + o.via.map.size = size; + typename std::multimap::const_iterator it(v.begin()); + do { + p->key = msgpack::object(it->first, o.zone); + p->val = msgpack::object(it->second, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_MAP_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/map_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/map_decl.hpp new file mode 100644 index 000000000000..ad0376c6cc0b --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/map_decl.hpp @@ -0,0 +1,36 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_MAP_DECL_HPP +#define MSGPACK_V1_TYPE_MAP_DECL_HPP + +#include "msgpack/versioning.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +template , typename Alloc = std::allocator > > +class assoc_vector; + +} //namespace type + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_MAP_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/msgpack_tuple.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/msgpack_tuple.hpp new file mode 100644 index 000000000000..03d5c66e524e --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/msgpack_tuple.hpp @@ -0,0 +1,21 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_MSGPACK_TUPLE_HPP +#define MSGPACK_V1_MSGPACK_TUPLE_HPP + +#include "msgpack/cpp_config.hpp" + +#if defined(MSGPACK_USE_CPP03) +#include "msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp" +#else // MSGPACK_USE_CPP03 +#include "msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp" +#endif // MSGPACK_USE_CPP03 + +#endif // MSGPACK_V1_MSGPACK_TUPLE_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/msgpack_tuple_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/msgpack_tuple_decl.hpp new file mode 100644 index 000000000000..c13bea756bf1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/msgpack_tuple_decl.hpp @@ -0,0 +1,21 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_MSGPACK_TUPLE_DECL_HPP +#define MSGPACK_V1_MSGPACK_TUPLE_DECL_HPP + +#include "msgpack/cpp_config.hpp" + +#if defined(MSGPACK_USE_CPP03) +#include "msgpack/v1/adaptor/detail/cpp03_msgpack_tuple_decl.hpp" +#else // MSGPACK_USE_CPP03 +#include "msgpack/v1/adaptor/detail/cpp11_msgpack_tuple_decl.hpp" +#endif // MSGPACK_USE_CPP03 + +#endif // MSGPACK_V1_MSGPACK_TUPLE_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/nil.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/nil.hpp new file mode 100644 index 000000000000..f65972ce34d1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/nil.hpp @@ -0,0 +1,76 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_NIL_HPP +#define MSGPACK_V1_TYPE_NIL_HPP + +#include "msgpack/v1/adaptor/nil_decl.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +struct nil_t { }; + +inline bool operator<(nil_t const& lhs, nil_t const& rhs) { + return &lhs < &rhs; +} + +inline bool operator==(nil_t const& lhs, nil_t const& rhs) { + return &lhs == &rhs; +} + +} // namespace type + +namespace adaptor { + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, type::nil_t&) const { + if(o.type != msgpack::type::NIL) { throw msgpack::type_error(); } + return o; + } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const type::nil_t&) const { + o.pack_nil(); + return o; + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, type::nil_t) const { + o.type = msgpack::type::NIL; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, type::nil_t v) const { + static_cast(o) << v; + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_NIL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/nil_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/nil_decl.hpp new file mode 100644 index 000000000000..4830ff201e97 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/nil_decl.hpp @@ -0,0 +1,44 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_NIL_DECL_HPP +#define MSGPACK_V1_TYPE_NIL_DECL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +struct nil_t; + +#if !defined(MSGPACK_DISABLE_LEGACY_NIL) + +typedef nil_t nil; + +#endif // !defined(MSGPACK_DISABLE_LEGACY_NIL) + +bool operator<(nil_t const& lhs, nil_t const& rhs); + +bool operator==(nil_t const& lhs, nil_t const& rhs); + +} // namespace type + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_NIL_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/pair.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/pair.hpp new file mode 100644 index 000000000000..890abc2b87cf --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/pair.hpp @@ -0,0 +1,83 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2009 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_PAIR_HPP +#define MSGPACK_V1_TYPE_PAIR_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/meta.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +#if !defined(MSGPACK_USE_CPP03) + +template +struct as, + typename std::enable_if::value>::type> { + std::pair operator()(msgpack::object const& o) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + if (o.via.array.size != 2) { throw msgpack::type_error(); } + return std::make_pair(o.via.array.ptr[0].as(), o.via.array.ptr[1].as()); + } +}; + +#endif // !defined(MSGPACK_USE_CPP03) + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, std::pair& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + if(o.via.array.size != 2) { throw msgpack::type_error(); } + o.via.array.ptr[0].convert(v.first); + o.via.array.ptr[1].convert(v.second); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const std::pair& v) const { + o.pack_array(2); + o.pack(v.first); + o.pack(v.second); + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const std::pair& v) const { + o.type = msgpack::type::ARRAY; + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*2, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + o.via.array.ptr = p; + o.via.array.size = 2; + p[0] = msgpack::object(v.first, o.zone); + p[1] = msgpack::object(v.second, o.zone); + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_PAIR_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/raw.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/raw.hpp new file mode 100644 index 000000000000..80efdc78cfce --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/raw.hpp @@ -0,0 +1,106 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2009 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_RAW_HPP +#define MSGPACK_V1_TYPE_RAW_HPP + +#include "msgpack/v1/adaptor/raw_decl.hpp" + +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +struct raw_ref { + raw_ref() : size(0), ptr(MSGPACK_NULLPTR) {} + raw_ref(const char* p, uint32_t s) : size(s), ptr(p) {} + + uint32_t size; + const char* ptr; + + std::string str() const { return std::string(ptr, size); } + + bool operator== (const raw_ref& x) const + { + return size == x.size && std::memcmp(ptr, x.ptr, size) == 0; + } + + bool operator!= (const raw_ref& x) const + { + return !(*this == x); + } + + bool operator< (const raw_ref& x) const + { + if(size == x.size) { return std::memcmp(ptr, x.ptr, size) < 0; } + else { return size < x.size; } + } + + bool operator> (const raw_ref& x) const + { + if(size == x.size) { return std::memcmp(ptr, x.ptr, size) > 0; } + else { return size > x.size; } + } +}; + +} // namespace type + +namespace adaptor { + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, type::raw_ref& v) const { + if(o.type != msgpack::type::BIN) { throw msgpack::type_error(); } + v.ptr = o.via.bin.ptr; + v.size = o.via.bin.size; + return o; + } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const type::raw_ref& v) const { + o.pack_bin(v.size); + o.pack_bin_body(v.ptr, v.size); + return o; + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, const type::raw_ref& v) const { + o.type = msgpack::type::BIN; + o.via.bin.ptr = v.ptr; + o.via.bin.size = v.size; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const type::raw_ref& v) const { + static_cast(o) << v; + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_RAW_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/raw_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/raw_decl.hpp new file mode 100644 index 000000000000..db186d18aa3f --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/raw_decl.hpp @@ -0,0 +1,36 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_RAW_DECL_HPP +#define MSGPACK_V1_TYPE_RAW_DECL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +struct raw_ref; + +} // namespace type + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_RAW_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/set.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/set.hpp new file mode 100644 index 000000000000..96abe25f0224 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/set.hpp @@ -0,0 +1,188 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2015 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_SET_HPP +#define MSGPACK_V1_TYPE_SET_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +#if !defined(MSGPACK_USE_CPP03) + +template +struct as, typename std::enable_if::value>::type> { + std::set operator()(msgpack::object const& o) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + msgpack::object* p = o.via.array.ptr + o.via.array.size; + msgpack::object* const pbegin = o.via.array.ptr; + std::set v; + while (p > pbegin) { + --p; + v.insert(p->as()); + } + return v; + } +}; + +#endif // !defined(MSGPACK_USE_CPP03) + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, std::set& v) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + msgpack::object* p = o.via.array.ptr + o.via.array.size; + msgpack::object* const pbegin = o.via.array.ptr; + std::set tmp; + while (p > pbegin) { + --p; + tmp.insert(p->as()); + } +#if __cplusplus >= 201103L + v = std::move(tmp); +#else + tmp.swap(v); +#endif + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const std::set& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for (typename std::set::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(*it); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const std::set& v) const { + o.type = msgpack::type::ARRAY; + if (v.empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } + else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + msgpack::object* const pend = p + size; + o.via.array.ptr = p; + o.via.array.size = size; + typename std::set::const_iterator it(v.begin()); + do { + *p = msgpack::object(*it, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +#if !defined(MSGPACK_USE_CPP03) + +template +struct as, typename std::enable_if::value>::type> { + std::multiset operator()(msgpack::object const& o) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + msgpack::object* p = o.via.array.ptr + o.via.array.size; + msgpack::object* const pbegin = o.via.array.ptr; + std::multiset v; + while (p > pbegin) { + --p; + v.insert(p->as()); + } + return v; + } +}; + +#endif // !defined(MSGPACK_USE_CPP03) + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, std::multiset& v) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + msgpack::object* p = o.via.array.ptr + o.via.array.size; + msgpack::object* const pbegin = o.via.array.ptr; + std::multiset tmp; + while (p > pbegin) { + --p; + tmp.insert(p->as()); + } +#if __cplusplus >= 201103L + v = std::move(tmp); +#else + tmp.swap(v); +#endif + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const std::multiset& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for (typename std::multiset::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(*it); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const std::multiset& v) const { + o.type = msgpack::type::ARRAY; + if (v.empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + msgpack::object* const pend = p + size; + o.via.array.ptr = p; + o.via.array.size = size; + typename std::multiset::const_iterator it(v.begin()); + do { + *p = msgpack::object(*it, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_SET_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/size_equal_only.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/size_equal_only.hpp new file mode 100644 index 000000000000..39f6f3433af5 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/size_equal_only.hpp @@ -0,0 +1,118 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_SIZE_EQUAL_ONLY_HPP +#define MSGPACK_V1_TYPE_SIZE_EQUAL_ONLY_HPP + +#include "msgpack/v1/adaptor/size_equal_only_decl.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +template +inline std::size_t size(T const& t) { + return t.size(); +} + +template +inline std::size_t size(const T(&)[N]) { + return N; +} + + +#if !defined(MSGPACK_USE_CPP03) + +template +inline std::size_t size(std::tuple const&) { + return sizeof...(T); +} + +#endif // !defined(MSGPACK_USE_CPP03) + + +template +struct size_equal_only { + size_equal_only(T& t):m_t(t) {} + T& m_t; +}; + +template +inline size_equal_only make_size_equal_only(T& t) { + return size_equal_only(t); +} + +template +inline bool operator<(size_equal_only const& lhs, size_equal_only const& rhs) { + return lhs.m_t < rhs.m_t; +} + +template +inline bool operator==(size_equal_only const& lhs, size_equal_only const& rhs) { + return lhs.m_t == &rhs.m_t; +} + +} // namespace type + +namespace adaptor { + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, type::size_equal_only& v) const { + switch(o.type) { + case msgpack::type::ARRAY: + if (o.via.array.size != msgpack::type::size(v.m_t)) throw msgpack::type_error(); + break; + case msgpack::type::MAP: + if (o.via.map.size != msgpack::type::size(v.m_t)) throw msgpack::type_error(); + break; + default: + throw msgpack::type_error(); + } + o >> v.m_t; + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const type::size_equal_only& v) const { + o << v.m_t; + return o; + } +}; + +template +struct object > { + void operator()(msgpack::object& o, type::size_equal_only const& v) const { + o << v.m_t; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, type::size_equal_only v) const { + o << v.m_t; + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_SIZE_EQUAL_ONLY_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/size_equal_only_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/size_equal_only_decl.hpp new file mode 100644 index 000000000000..6eac047b034a --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/size_equal_only_decl.hpp @@ -0,0 +1,52 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_SIZE_EQUAL_ONLY_DECL_HPP +#define MSGPACK_V1_TYPE_SIZE_EQUAL_ONLY_DECL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/msgpack_tuple.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +template +struct size_equal_only; + +template +size_equal_only make_size_equal_only(T& t); + +template +std::size_t size(T const& t); + +template +std::size_t size(const T(&)[N]); + +#if !defined(MSGPACK_USE_CPP03) + +template +std::size_t size(std::tuple const&); + +#endif // !defined(MSGPACK_USE_CPP03) + +} // namespace type + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_SIZE_EQUAL_ONLY_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/string.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/string.hpp new file mode 100644 index 000000000000..ca7d3e509f8a --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/string.hpp @@ -0,0 +1,87 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2015 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_STRING_HPP +#define MSGPACK_V1_TYPE_STRING_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, std::string& v) const { + switch (o.type) { + case msgpack::type::BIN: + v.assign(o.via.bin.ptr, o.via.bin.size); + break; + case msgpack::type::STR: + v.assign(o.via.str.ptr, o.via.str.size); + break; + default: + throw msgpack::type_error(); + break; + } + return o; + } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const std::string& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_str(size); + o.pack_str_body(v.data(), size); + return o; + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, const std::string& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::STR; + o.via.str.ptr = v.data(); + o.via.str.size = size; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const std::string& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::STR; + char* ptr = static_cast(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); + o.via.str.ptr = ptr; + o.via.str.size = size; + std::memcpy(ptr, v.data(), v.size()); + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_STRING_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/tr1/unordered_map.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/tr1/unordered_map.hpp new file mode 100644 index 000000000000..9c8190e855c1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/tr1/unordered_map.hpp @@ -0,0 +1,171 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2015 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_TR1_UNORDERED_MAP_HPP +#define MSGPACK_TYPE_TR1_UNORDERED_MAP_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) + +#define MSGPACK_HAS_STD_UNORDERED_MAP +#include +#define MSGPACK_STD_TR1 std + +#else // defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) + +#if __GNUC__ >= 4 + +#define MSGPACK_HAS_STD_TR1_UNORDERED_MAP + +#include +#define MSGPACK_STD_TR1 std::tr1 + +#endif // __GNUC__ >= 4 + +#endif // defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) + +#if defined(MSGPACK_STD_TR1) + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, MSGPACK_STD_TR1::unordered_map& v) const { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + msgpack::object_kv* p(o.via.map.ptr); + msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size); + MSGPACK_STD_TR1::unordered_map tmp; + for(; p != pend; ++p) { + K key; + p->key.convert(key); + p->val.convert(tmp[key]); + } + tmp.swap(v); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const MSGPACK_STD_TR1::unordered_map& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_map(size); + for(typename MSGPACK_STD_TR1::unordered_map::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(it->first); + o.pack(it->second); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const MSGPACK_STD_TR1::unordered_map& v) const { + o.type = msgpack::type::MAP; + if(v.empty()) { + o.via.map.ptr = MSGPACK_NULLPTR; + o.via.map.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + msgpack::object_kv* const pend = p + size; + o.via.map.ptr = p; + o.via.map.size = size; + typename MSGPACK_STD_TR1::unordered_map::const_iterator it(v.begin()); + do { + p->key = msgpack::object(it->first, o.zone); + p->val = msgpack::object(it->second, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, MSGPACK_STD_TR1::unordered_multimap& v) const { + if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); } + msgpack::object_kv* p(o.via.map.ptr); + msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size); + MSGPACK_STD_TR1::unordered_multimap tmp; + for(; p != pend; ++p) { + std::pair value; + p->key.convert(value.first); + p->val.convert(value.second); + tmp.insert(value); + } + tmp.swap(v); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const MSGPACK_STD_TR1::unordered_multimap& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_map(size); + for(typename MSGPACK_STD_TR1::unordered_multimap::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(it->first); + o.pack(it->second); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const MSGPACK_STD_TR1::unordered_multimap& v) const { + o.type = msgpack::type::MAP; + if(v.empty()) { + o.via.map.ptr = MSGPACK_NULLPTR; + o.via.map.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); + msgpack::object_kv* const pend = p + size; + o.via.map.ptr = p; + o.via.map.size = size; + typename MSGPACK_STD_TR1::unordered_multimap::const_iterator it(v.begin()); + do { + p->key = msgpack::object(it->first, o.zone); + p->val = msgpack::object(it->second, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#undef MSGPACK_STD_TR1 + +#endif // MSGPACK_STD_TR1 + +#endif // MSGPACK_TYPE_TR1_UNORDERED_MAP_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/tr1/unordered_set.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/tr1/unordered_set.hpp new file mode 100644 index 000000000000..dd6c0448fc63 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/tr1/unordered_set.hpp @@ -0,0 +1,165 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2015 FURUHASHI Sadayuki +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_TYPE_TR1_UNORDERED_SET_HPP +#define MSGPACK_TYPE_TR1_UNORDERED_SET_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) + +#define MSGPACK_HAS_STD_UNORDERED_SET +#include +#define MSGPACK_STD_TR1 std + +#else // defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) + +#if __GNUC__ >= 4 + +#define MSGPACK_HAS_STD_TR1_UNORDERED_SET + +#include +#define MSGPACK_STD_TR1 std::tr1 + +#endif // __GNUC__ >= 4 + +#endif // defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) + +#if defined(MSGPACK_STD_TR1) + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, MSGPACK_STD_TR1::unordered_set& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + msgpack::object* p = o.via.array.ptr + o.via.array.size; + msgpack::object* const pbegin = o.via.array.ptr; + MSGPACK_STD_TR1::unordered_set tmp; + while(p > pbegin) { + --p; + tmp.insert(p->as()); + } + tmp.swap(v); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const MSGPACK_STD_TR1::unordered_set& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for(typename MSGPACK_STD_TR1::unordered_set::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(*it); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const MSGPACK_STD_TR1::unordered_set& v) const { + o.type = msgpack::type::ARRAY; + if(v.empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + msgpack::object* const pend = p + size; + o.via.array.ptr = p; + o.via.array.size = size; + typename MSGPACK_STD_TR1::unordered_set::const_iterator it(v.begin()); + do { + *p = msgpack::object(*it, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, MSGPACK_STD_TR1::unordered_multiset& v) const { + if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + msgpack::object* p = o.via.array.ptr + o.via.array.size; + msgpack::object* const pbegin = o.via.array.ptr; + MSGPACK_STD_TR1::unordered_multiset tmp; + while(p > pbegin) { + --p; + tmp.insert(p->as()); + } + tmp.swap(v); + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const MSGPACK_STD_TR1::unordered_multiset& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for(typename MSGPACK_STD_TR1::unordered_multiset::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(*it); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const MSGPACK_STD_TR1::unordered_multiset& v) const { + o.type = msgpack::type::ARRAY; + if(v.empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + msgpack::object* const pend = p + size; + o.via.array.ptr = p; + o.via.array.size = size; + typename MSGPACK_STD_TR1::unordered_multiset::const_iterator it(v.begin()); + do { + *p = msgpack::object(*it, o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#undef MSGPACK_STD_TR1 + +#endif // MSGPACK_STD_TR1 + +#endif // MSGPACK_TYPE_TR1_UNORDERED_SET_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/v4raw.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/v4raw.hpp new file mode 100644 index 000000000000..f03f4a068c0b --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/v4raw.hpp @@ -0,0 +1,105 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_V4RAW_HPP +#define MSGPACK_V1_TYPE_V4RAW_HPP + +#include "msgpack/v1/adaptor/v4raw_decl.hpp" +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +struct v4raw_ref { + v4raw_ref() : size(0), ptr(MSGPACK_NULLPTR) {} + v4raw_ref(const char* p, uint32_t s) : size(s), ptr(p) {} + + uint32_t size; + const char* ptr; + + std::string str() const { return std::string(ptr, size); } + + bool operator== (const v4raw_ref& x) const + { + return size == x.size && std::memcmp(ptr, x.ptr, size) == 0; + } + + bool operator!= (const v4raw_ref& x) const + { + return !(*this == x); + } + + bool operator< (const v4raw_ref& x) const + { + if(size == x.size) { return std::memcmp(ptr, x.ptr, size) < 0; } + else { return size < x.size; } + } + + bool operator> (const v4raw_ref& x) const + { + if(size == x.size) { return std::memcmp(ptr, x.ptr, size) > 0; } + else { return size > x.size; } + } +}; + +} // namespace type + +namespace adaptor { + +template <> +struct convert { + msgpack::object const& operator()(msgpack::object const& o, type::v4raw_ref& v) const { + if(o.type != msgpack::type::STR) { throw msgpack::type_error(); } + v.ptr = o.via.str.ptr; + v.size = o.via.str.size; + return o; + } +}; + +template <> +struct pack { + template + msgpack::packer& operator()(msgpack::packer& o, const type::v4raw_ref& v) const { + o.pack_v4raw(v.size); + o.pack_v4raw_body(v.ptr, v.size); + return o; + } +}; + +template <> +struct object { + void operator()(msgpack::object& o, const type::v4raw_ref& v) const { + o.type = msgpack::type::STR; + o.via.str.ptr = v.ptr; + o.via.str.size = v.size; + } +}; + +template <> +struct object_with_zone { + void operator()(msgpack::object::with_zone& o, const type::v4raw_ref& v) const { + static_cast(o) << v; + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_V4RAW_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/v4raw_decl.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/v4raw_decl.hpp new file mode 100644 index 000000000000..ae213f7e2cec --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/v4raw_decl.hpp @@ -0,0 +1,34 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_V4RAW_DECL_HPP +#define MSGPACK_V1_TYPE_V4RAW_DECL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace type { + +struct v4raw_ref; + +} // namespace type + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_V4RAW_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/vector.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/vector.hpp new file mode 100644 index 000000000000..2a0345b12977 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/vector.hpp @@ -0,0 +1,121 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2008-2015 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_VECTOR_HPP +#define MSGPACK_V1_TYPE_VECTOR_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +#if !defined(MSGPACK_USE_CPP03) + +template +struct as, typename std::enable_if::value>::type> { + std::vector operator()(const msgpack::object& o) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + std::vector v; + v.reserve(o.via.array.size); + if (o.via.array.size > 0) { + msgpack::object* p = o.via.array.ptr; + msgpack::object* const pend = o.via.array.ptr + o.via.array.size; + do { + v.push_back(p->as()); + ++p; + } while (p < pend); + } + return v; + } +}; + +#endif // !defined(MSGPACK_USE_CPP03) + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, std::vector& v) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + v.resize(o.via.array.size); + if (o.via.array.size > 0) { + msgpack::object* p = o.via.array.ptr; + msgpack::object* const pend = o.via.array.ptr + o.via.array.size; + typename std::vector::iterator it = v.begin(); + do { + p->convert(*it); + ++p; + ++it; + } while(p < pend); + } + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const std::vector& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for (typename std::vector::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(*it); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const std::vector& v) const { + o.type = msgpack::type::ARRAY; + if (v.empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } + else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + msgpack::object* const pend = p + size; + o.via.array.ptr = p; + o.via.array.size = size; + typename std::vector::const_iterator it(v.begin()); + do { +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + *p = msgpack::object(*it, o.zone); +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + ++p; + ++it; + } while(p < pend); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_VECTOR_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/vector_bool.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/vector_bool.hpp new file mode 100644 index 000000000000..d6ec24592716 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/vector_bool.hpp @@ -0,0 +1,90 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_VECTOR_BOOL_HPP +#define MSGPACK_V1_TYPE_VECTOR_BOOL_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/object_fwd.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, std::vector& v) const { + if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); } + if (o.via.array.size > 0) { + v.resize(o.via.array.size); + msgpack::object* p = o.via.array.ptr; + for (typename std::vector::iterator it = v.begin(), end = v.end(); + it != end; + ++it) { + *it = p->as(); + ++p; + } + } + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const std::vector& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_array(size); + for(typename std::vector::const_iterator it(v.begin()), it_end(v.end()); + it != it_end; ++it) { + o.pack(static_cast(*it)); + } + return o; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const std::vector& v) const { + o.type = msgpack::type::ARRAY; + if(v.empty()) { + o.via.array.ptr = MSGPACK_NULLPTR; + o.via.array.size = 0; + } else { + uint32_t size = checked_get_container_size(v.size()); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); + msgpack::object* const pend = p + size; + o.via.array.ptr = p; + o.via.array.size = size; + typename std::vector::const_iterator it(v.begin()); + do { + *p = msgpack::object(static_cast(*it), o.zone); + ++p; + ++it; + } while(p < pend); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_VECTOR_BOOL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/vector_char.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/vector_char.hpp new file mode 100644 index 000000000000..315dad678568 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/vector_char.hpp @@ -0,0 +1,114 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2014-2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_VECTOR_CHAR_HPP +#define MSGPACK_V1_TYPE_VECTOR_CHAR_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, std::vector& v) const { + switch (o.type) { + case msgpack::type::BIN: + v.resize(o.via.bin.size); + if (o.via.bin.size != 0) { +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + std::memcpy(&v.front(), o.via.bin.ptr, o.via.bin.size); +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + } + break; + case msgpack::type::STR: + v.resize(o.via.str.size); + if (o.via.str.size != 0) { +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + std::memcpy(&v.front(), o.via.str.ptr, o.via.str.size); +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + } + break; + default: + throw msgpack::type_error(); + break; + } + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const std::vector& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_bin(size); + if (size != 0) { + o.pack_bin_body(&v.front(), size); + } + + return o; + } +}; + +template +struct object > { + void operator()(msgpack::object& o, const std::vector& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::BIN; + if (size != 0) { + o.via.bin.ptr = &v.front(); + } + o.via.bin.size = size; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const std::vector& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::BIN; + o.via.bin.size = size; + if (size != 0) { + char* ptr = static_cast(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); + o.via.bin.ptr = ptr; + std::memcpy(ptr, &v.front(), size); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_VECTOR_CHAR_HPP diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp new file mode 100644 index 000000000000..9db72fe7df6e --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp @@ -0,0 +1,114 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2014-2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_VECTOR_UNSIGNED_CHAR_HPP +#define MSGPACK_V1_TYPE_VECTOR_UNSIGNED_CHAR_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, std::vector& v) const { + switch (o.type) { + case msgpack::type::BIN: + v.resize(o.via.bin.size); + if (o.via.bin.size != 0) { +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + std::memcpy(&v.front(), o.via.bin.ptr, o.via.bin.size); +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + } + break; + case msgpack::type::STR: + v.resize(o.via.str.size); + if (o.via.str.size != 0) { +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + std::memcpy(&v.front(), o.via.str.ptr, o.via.str.size); +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + } + break; + default: + throw msgpack::type_error(); + break; + } + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const std::vector& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_bin(size); + if (size != 0) { + o.pack_bin_body(reinterpret_cast(&v.front()), size); + } + + return o; + } +}; + +template +struct object > { + void operator()(msgpack::object& o, const std::vector& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::BIN; + if (size != 0) { + o.via.bin.ptr = reinterpret_cast(&v.front()); + } + o.via.bin.size = size; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const std::vector& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::BIN; + o.via.bin.size = size; + if (size != 0) { + char* ptr = static_cast(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); + o.via.bin.ptr = ptr; + std::memcpy(ptr, &v.front(), size); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_TYPE_VECTOR_UNSIGNED_CHAR_HPP diff --git a/third_party/msgpack/include/msgpack/v1/cpp_config.hpp b/third_party/msgpack/include/msgpack/v1/cpp_config.hpp new file mode 100644 index 000000000000..0eb518d833dd --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/cpp_config.hpp @@ -0,0 +1,139 @@ +// +// MessagePack for C++ C++03/C++11 Adaptation +// +// Copyright (C) 2013-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP_CONFIG_HPP +#define MSGPACK_V1_CPP_CONFIG_HPP + +#include "msgpack/cpp_config_decl.hpp" + +#if defined(MSGPACK_USE_CPP03) + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +template +struct unique_ptr : std::auto_ptr { + explicit unique_ptr(T* p = 0) throw() : std::auto_ptr(p) {} + unique_ptr(unique_ptr& a) throw() : std::auto_ptr(a) {} + template + unique_ptr (unique_ptr& a) throw() : std::auto_ptr(a) {} +}; + +template +T& move(T& t) +{ + return t; +} + +template +T const& move(T const& t) +{ + return t; +} + +template +struct enable_if { + typedef T type; +}; + +template +struct enable_if { +}; + +template +struct integral_constant { + static T const value = val; + typedef T value_type; + typedef integral_constant type; +}; + +typedef integral_constant true_type; +typedef integral_constant false_type; + +template +struct is_same : false_type {}; + +template +struct is_same : true_type {}; + +template +struct underlying_type { + typedef int type; +}; + +template +struct is_array : false_type {}; + +template +struct is_array : true_type {}; + +template +struct is_array : true_type {}; + + +template +struct remove_const { + typedef T type; +}; +template +struct remove_const { + typedef T type; +}; + +template +struct remove_volatile { + typedef T type; +}; +template +struct remove_volatile { + typedef T type; +}; + +template +struct remove_cv { + typedef typename msgpack::remove_volatile< + typename msgpack::remove_const::type + >::type type; +}; + +namespace detail { + +template +struct is_pointer_helper : false_type {}; + +template +struct is_pointer_helper : true_type {}; + +} // namespace detail + +template struct is_pointer : detail::is_pointer_helper::type> {}; + + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_USE_CPP03 + +#if __cplusplus >= 201402L +#if defined(_MSC_VER) +#define MSGPACK_DEPRECATED(msg) __declspec(deprecated(msg)) +#else // _MSC_VER 1914+ with /Zc:__cplusplus, @see https://docs.microsoft.com/cpp/build/reference/zc-cplusplus +#define MSGPACK_DEPRECATED(msg) [[deprecated(msg)]] +#endif +#else // __cplusplus >= 201402L +#define MSGPACK_DEPRECATED(msg) +#endif // __cplusplus >= 201402L + +#endif // MSGPACK_V1_CPP_CONFIG_HPP diff --git a/third_party/msgpack/include/msgpack/v1/cpp_config_decl.hpp b/third_party/msgpack/include/msgpack/v1/cpp_config_decl.hpp new file mode 100644 index 000000000000..c9752f237cf1 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/cpp_config_decl.hpp @@ -0,0 +1,137 @@ +// +// MessagePack for C++ C++03/C++11 Adaptation +// +// Copyright (C) 2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP_CONFIG_DECL_HPP +#define MSGPACK_V1_CPP_CONFIG_DECL_HPP + +#include "msgpack/versioning.hpp" + +#if !defined(MSGPACK_USE_CPP03) +# if defined(_MSC_VER) +# if _MSC_VER < 1900 +# define MSGPACK_USE_CPP03 +# endif +# elif (__cplusplus < 201103L) +# define MSGPACK_USE_CPP03 +# endif +#endif // MSGPACK_USE_CPP03 + + +#if defined(MSGPACK_USE_CPP03) + +#if defined(nullptr) +# if defined (__cplusplus_cli) +# define MSGPACK_NULLPTR __nullptr +# else // defined (__cplusplus_cli) +# define MSGPACK_NULLPTR nullptr +# endif // defined (__cplusplus_cli) +#else // defined(nullptr) +# define MSGPACK_NULLPTR (0) +#endif // defined(nullptr) + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +template +struct unique_ptr; + +template +T& move(T& t); + +template +T const& move(T const& t); + +template +struct enable_if; + +template +struct integral_constant; + +typedef integral_constant true_type; +typedef integral_constant false_type; + +template +struct is_same; + +template +struct underlying_type; + +template +struct is_array; + +template +struct remove_const; +template +struct remove_volatile; +template +struct remove_cv; + +template +struct is_pointer; + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + + +#else // MSGPACK_USE_CPP03 + +#if defined (__cplusplus_cli) +# define MSGPACK_NULLPTR __nullptr +#else // defined (__cplusplus_cli) +# define MSGPACK_NULLPTR nullptr +#endif // defined (__cplusplus_cli) + +#include +#include + +namespace msgpack { +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + + // unique_ptr + using std::unique_ptr; + // using std::make_unique; // since C++14 + using std::hash; + + // utility + using std::move; + using std::swap; + using std::enable_if; + using std::is_same; + using std::underlying_type; + using std::is_array; + using std::remove_const; + using std::remove_volatile; + using std::remove_cv; + using std::is_pointer; + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond +} // namespace msgpack + + +#endif // MSGPACK_USE_CPP03 + +#if defined(__has_include) +#define MSGPACK_HAS_INCLUDE __has_include +#else // defined(__has_include) +#define MSGPACK_HAS_INCLUDE(header) 0 +#endif // defined(__has_include) + +#endif // MSGPACK_V1_CPP_CONFIG_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/detail/cpp03_zone.hpp b/third_party/msgpack/include/msgpack/v1/detail/cpp03_zone.hpp new file mode 100644 index 000000000000..73abe69416cf --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/detail/cpp03_zone.hpp @@ -0,0 +1,664 @@ +// +// MessagePack for C++ memory pool +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP03_ZONE_HPP +#define MSGPACK_V1_CPP03_ZONE_HPP + +#include "msgpack/zone_decl.hpp" + + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +class zone { + struct finalizer { + finalizer(void (*func)(void*), void* data):m_func(func), m_data(data) {} + void operator()() { m_func(m_data); } + void (*m_func)(void*); + void* m_data; + }; + struct finalizer_array { + finalizer_array():m_tail(MSGPACK_NULLPTR), m_end(MSGPACK_NULLPTR), m_array(MSGPACK_NULLPTR) {} + void call() { + finalizer* fin = m_tail; + for(; fin != m_array; --fin) (*(fin-1))(); + } + ~finalizer_array() { + call(); + ::free(m_array); + } + void clear() { + call(); + m_tail = m_array; + } + void push(void (*func)(void* data), void* data) + { + finalizer* fin = m_tail; + + if(fin == m_end) { + push_expand(func, data); + return; + } + + fin->m_func = func; + fin->m_data = data; + + ++m_tail; + } + void push_expand(void (*func)(void*), void* data) { + const size_t nused = m_end - m_array; + size_t nnext; + if(nused == 0) { + nnext = (sizeof(finalizer) < 72/2) ? + 72 / sizeof(finalizer) : 8; + } else { + nnext = nused * 2; + } + finalizer* tmp = + static_cast(::realloc(m_array, sizeof(finalizer) * nnext)); + if(!tmp) { + throw std::bad_alloc(); + } + m_array = tmp; + m_end = tmp + nnext; + m_tail = tmp + nused; + new (m_tail) finalizer(func, data); + + ++m_tail; + } + finalizer* m_tail; + finalizer* m_end; + finalizer* m_array; + }; + struct chunk { + chunk* m_next; + }; + struct chunk_list { + chunk_list(size_t chunk_size) + { + chunk* c = static_cast(::malloc(sizeof(chunk) + chunk_size)); + if(!c) { + throw std::bad_alloc(); + } + + m_head = c; + m_free = chunk_size; + m_ptr = reinterpret_cast(c) + sizeof(chunk); + c->m_next = MSGPACK_NULLPTR; + } + ~chunk_list() + { + chunk* c = m_head; + while(c) { + chunk* n = c->m_next; + ::free(c); + c = n; + } + } + void clear(size_t chunk_size) + { + chunk* c = m_head; + while(true) { + chunk* n = c->m_next; + if(n) { + ::free(c); + c = n; + } else { + m_head = c; + break; + } + } + m_head->m_next = MSGPACK_NULLPTR; + m_free = chunk_size; + m_ptr = reinterpret_cast(m_head) + sizeof(chunk); + } + size_t m_free; + char* m_ptr; + chunk* m_head; + }; + size_t m_chunk_size; + chunk_list m_chunk_list; + finalizer_array m_finalizer_array; + +public: + zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE) /* throw() */; + +public: + void* allocate_align(size_t size, size_t align = MSGPACK_ZONE_ALIGN); + void* allocate_no_align(size_t size); + + void push_finalizer(void (*func)(void*), void* data); + + template + void push_finalizer(msgpack::unique_ptr obj); + + void clear(); + + void swap(zone& o); + static void* operator new(std::size_t size) + { + void* p = ::malloc(size); + if (!p) throw std::bad_alloc(); + return p; + } + static void operator delete(void *p) /* throw() */ + { + ::free(p); + } + static void* operator new(std::size_t size, void* place) /* throw() */ + { + return ::operator new(size, place); + } + static void operator delete(void* p, void* place) /* throw() */ + { + ::operator delete(p, place); + } + /// @cond + + template + T* allocate(); + + template + T* allocate(A1 a1); + + template + T* allocate(A1 a1, A2 a2); + + template + T* allocate(A1 a1, A2 a2, A3 a3); + + template + T* allocate(A1 a1, A2 a2, A3 a3, A4 a4); + + template + T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5); + + template + T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6); + + template + T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7); + + template + T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8); + + template + T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9); + + template + T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10); + + template + T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11); + + template + T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12); + + template + T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13); + + template + T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14); + + template + T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14, A15 a15); + + /// @endcond + +private: + void undo_allocate(size_t size); + + template + static void object_destruct(void* obj); + + template + static void object_delete(void* obj); + + static char* get_aligned(char* ptr, size_t align); + + char* allocate_expand(size_t size); +private: + zone(const zone&); + zone& operator=(const zone&); +}; + +inline zone::zone(size_t chunk_size) /* throw() */ :m_chunk_size(chunk_size), m_chunk_list(m_chunk_size) +{ +} + +inline char* zone::get_aligned(char* ptr, size_t align) +{ + return + reinterpret_cast( + reinterpret_cast( + (ptr + (align - 1))) / align * align); +} + +inline void* zone::allocate_align(size_t size, size_t align) +{ + char* aligned = get_aligned(m_chunk_list.m_ptr, align); + size_t adjusted_size = size + (aligned - m_chunk_list.m_ptr); + if (m_chunk_list.m_free < adjusted_size) { + size_t enough_size = size + align - 1; + char* ptr = allocate_expand(enough_size); + aligned = get_aligned(ptr, align); + adjusted_size = size + (aligned - m_chunk_list.m_ptr); + } + m_chunk_list.m_free -= adjusted_size; + m_chunk_list.m_ptr += adjusted_size; + return aligned; +} + +inline void* zone::allocate_no_align(size_t size) +{ + char* ptr = m_chunk_list.m_ptr; + if(m_chunk_list.m_free < size) { + ptr = allocate_expand(size); + } + m_chunk_list.m_free -= size; + m_chunk_list.m_ptr += size; + + return ptr; +} + +inline char* zone::allocate_expand(size_t size) +{ + chunk_list* const cl = &m_chunk_list; + + size_t sz = m_chunk_size; + + while(sz < size) { + size_t tmp_sz = sz * 2; + if (tmp_sz <= sz) { + sz = size; + break; + } + sz = tmp_sz; + } + + chunk* c = static_cast(::malloc(sizeof(chunk) + sz)); + if (!c) throw std::bad_alloc(); + + char* ptr = reinterpret_cast(c) + sizeof(chunk); + + c->m_next = cl->m_head; + cl->m_head = c; + cl->m_free = sz; + cl->m_ptr = ptr; + + return ptr; +} + +inline void zone::push_finalizer(void (*func)(void*), void* data) +{ + m_finalizer_array.push(func, data); +} + +template +inline void zone::push_finalizer(msgpack::unique_ptr obj) +{ + m_finalizer_array.push(&zone::object_delete, obj.release()); +} + +inline void zone::clear() +{ + m_finalizer_array.clear(); + m_chunk_list.clear(m_chunk_size); +} + +inline void zone::swap(zone& o) +{ + using std::swap; + swap(m_chunk_size, o.m_chunk_size); + swap(m_chunk_list, o.m_chunk_list); + swap(m_finalizer_array, o.m_finalizer_array); +} + +template +void zone::object_destruct(void* obj) +{ + static_cast(obj)->~T(); +} + +template +void zone::object_delete(void* obj) +{ + delete static_cast(obj); +} + +inline void zone::undo_allocate(size_t size) +{ + m_chunk_list.m_ptr -= size; + m_chunk_list.m_free += size; +} + +inline std::size_t aligned_size( + std::size_t size, + std::size_t align) { + return (size + align - 1) / align * align; +} + +/// @cond + +template +T* zone::allocate() +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1, A2 a2) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1, a2); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1, A2 a2, A3 a3) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1, a2, a3); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1, a2, a3, a4); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1, a2, a3, a4, a5); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1, a2, a3, a4, a5, a6); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1, a2, a3, a4, a5, a6, a7); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8, a9); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +template +T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14, A15 a15) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +/// @endcond + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_CPP03_ZONE_HPP diff --git a/third_party/msgpack/include/msgpack/v1/detail/cpp03_zone_decl.hpp b/third_party/msgpack/include/msgpack/v1/detail/cpp03_zone_decl.hpp new file mode 100644 index 000000000000..66d4cac0a532 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/detail/cpp03_zone_decl.hpp @@ -0,0 +1,54 @@ +// +// MessagePack for C++ memory pool +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP03_ZONE_DECL_HPP +#define MSGPACK_V1_CPP03_ZONE_DECL_HPP + +#include +#include +#include + +#include "msgpack/versioning.hpp" + +#ifndef MSGPACK_ZONE_CHUNK_SIZE +#define MSGPACK_ZONE_CHUNK_SIZE 8192 +#endif + +#ifndef MSGPACK_ZONE_ALIGN +#define MSGPACK_ZONE_ALIGN sizeof(void*) +#endif + +#if defined(_MSC_VER) +#define MSGPACK_ZONE_ALIGNOF(type) __alignof(type) +#else +#define MSGPACK_ZONE_ALIGNOF(type) __alignof__(type) +#endif +// For a compiler that doesn't support __alignof__: +// #define MSGPACK_ZONE_ALIGNOF(type) MSGPACK_ZONE_ALIGN + + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +class zone; + +std::size_t aligned_size( + std::size_t size, + std::size_t align = MSGPACK_ZONE_ALIGN); + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_CPP03_ZONE_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/detail/cpp11_zone.hpp b/third_party/msgpack/include/msgpack/v1/detail/cpp11_zone.hpp new file mode 100644 index 000000000000..04659ba60b0f --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/detail/cpp11_zone.hpp @@ -0,0 +1,366 @@ +// +// MessagePack for C++ memory pool +// +// Copyright (C) 2008-2013 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_CPP11_ZONE_HPP +#define MSGPACK_CPP11_ZONE_HPP + +#include "msgpack/versioning.hpp" +#include "msgpack/cpp_config.hpp" +#include "msgpack/zone_decl.hpp" + +#include +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +class zone { +private: + struct finalizer { + finalizer(void (*func)(void*), void* data):m_func(func), m_data(data) {} + void operator()() { m_func(m_data); } + void (*m_func)(void*); + void* m_data; + }; + struct finalizer_array { + finalizer_array():m_tail(MSGPACK_NULLPTR), m_end(MSGPACK_NULLPTR), m_array(MSGPACK_NULLPTR) {} + void call() { + finalizer* fin = m_tail; + for(; fin != m_array; --fin) (*(fin-1))(); + } + ~finalizer_array() { + call(); + ::free(m_array); + } + void clear() { + call(); + m_tail = m_array; + } + void push(void (*func)(void* data), void* data) + { + finalizer* fin = m_tail; + + if(fin == m_end) { + push_expand(func, data); + return; + } + + fin->m_func = func; + fin->m_data = data; + + ++m_tail; + } + void push_expand(void (*func)(void*), void* data) { + const size_t nused = m_end - m_array; + size_t nnext; + if(nused == 0) { + nnext = (sizeof(finalizer) < 72/2) ? + 72 / sizeof(finalizer) : 8; + } else { + nnext = nused * 2; + } + finalizer* tmp = + static_cast(::realloc(m_array, sizeof(finalizer) * nnext)); + if(!tmp) { + throw std::bad_alloc(); + } + m_array = tmp; + m_end = tmp + nnext; + m_tail = tmp + nused; + new (m_tail) finalizer(func, data); + + ++m_tail; + } + finalizer_array(finalizer_array&& other) noexcept + :m_tail(other.m_tail), m_end(other.m_end), m_array(other.m_array) + { + other.m_tail = MSGPACK_NULLPTR; + other.m_end = MSGPACK_NULLPTR; + other.m_array = MSGPACK_NULLPTR; + } + finalizer_array& operator=(finalizer_array&& other) noexcept + { + this->~finalizer_array(); + new (this) finalizer_array(std::move(other)); + return *this; + } + + finalizer* m_tail; + finalizer* m_end; + finalizer* m_array; + + private: + finalizer_array(const finalizer_array&); + finalizer_array& operator=(const finalizer_array&); + }; + struct chunk { + chunk* m_next; + }; + struct chunk_list { + chunk_list(size_t chunk_size) + { + chunk* c = static_cast(::malloc(sizeof(chunk) + chunk_size)); + if(!c) { + throw std::bad_alloc(); + } + + m_head = c; + m_free = chunk_size; + m_ptr = reinterpret_cast(c) + sizeof(chunk); + c->m_next = MSGPACK_NULLPTR; + } + ~chunk_list() + { + chunk* c = m_head; + while(c) { + chunk* n = c->m_next; + ::free(c); + c = n; + } + } + void clear(size_t chunk_size) + { + chunk* c = m_head; + while(true) { + chunk* n = c->m_next; + if(n) { + ::free(c); + c = n; + } else { + m_head = c; + break; + } + } + m_head->m_next = MSGPACK_NULLPTR; + m_free = chunk_size; + m_ptr = reinterpret_cast(m_head) + sizeof(chunk); + } + chunk_list(chunk_list&& other) noexcept + :m_free(other.m_free), m_ptr(other.m_ptr), m_head(other.m_head) + { + other.m_head = MSGPACK_NULLPTR; + } + chunk_list& operator=(chunk_list&& other) noexcept + { + this->~chunk_list(); + new (this) chunk_list(std::move(other)); + return *this; + } + + size_t m_free; + char* m_ptr; + chunk* m_head; + private: + chunk_list(const chunk_list&); + chunk_list& operator=(const chunk_list&); + }; + size_t m_chunk_size; + chunk_list m_chunk_list; + finalizer_array m_finalizer_array; + +public: + zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE) noexcept; + +public: + void* allocate_align(size_t size, size_t align = MSGPACK_ZONE_ALIGN); + void* allocate_no_align(size_t size); + + void push_finalizer(void (*func)(void*), void* data); + + template + void push_finalizer(msgpack::unique_ptr obj); + + void clear(); + + void swap(zone& o); + + static void* operator new(std::size_t size) + { + void* p = ::malloc(size); + if (!p) throw std::bad_alloc(); + return p; + } + static void operator delete(void *p) noexcept + { + ::free(p); + } + static void* operator new(std::size_t /*size*/, void* mem) noexcept + { + return mem; + } + static void operator delete(void * /*p*/, void* /*mem*/) noexcept + { + } + + template + T* allocate(Args... args); + + zone(zone&&) = default; + zone& operator=(zone&&) = default; + zone(const zone&) = delete; + zone& operator=(const zone&) = delete; + +private: + void undo_allocate(size_t size); + + template + static void object_destruct(void* obj); + + template + static void object_delete(void* obj); + + static char* get_aligned(char* ptr, size_t align); + + char* allocate_expand(size_t size); +}; + +inline zone::zone(size_t chunk_size) noexcept:m_chunk_size(chunk_size), m_chunk_list(m_chunk_size) +{ +} + +inline char* zone::get_aligned(char* ptr, size_t align) +{ + return + reinterpret_cast( + reinterpret_cast( + (ptr + (align - 1))) / align * align); +} + +inline void* zone::allocate_align(size_t size, size_t align) +{ + char* aligned = get_aligned(m_chunk_list.m_ptr, align); + size_t adjusted_size = size + (aligned - m_chunk_list.m_ptr); + if (m_chunk_list.m_free < adjusted_size) { + size_t enough_size = size + align - 1; + char* ptr = allocate_expand(enough_size); + aligned = get_aligned(ptr, align); + adjusted_size = size + (aligned - m_chunk_list.m_ptr); + } + m_chunk_list.m_free -= adjusted_size; + m_chunk_list.m_ptr += adjusted_size; + return aligned; +} + +inline void* zone::allocate_no_align(size_t size) +{ + char* ptr = m_chunk_list.m_ptr; + if(m_chunk_list.m_free < size) { + ptr = allocate_expand(size); + } + m_chunk_list.m_free -= size; + m_chunk_list.m_ptr += size; + + return ptr; +} + +inline char* zone::allocate_expand(size_t size) +{ + chunk_list* const cl = &m_chunk_list; + + size_t sz = m_chunk_size; + + while(sz < size) { + size_t tmp_sz = sz * 2; + if (tmp_sz <= sz) { + sz = size; + break; + } + sz = tmp_sz; + } + + chunk* c = static_cast(::malloc(sizeof(chunk) + sz)); + if (!c) throw std::bad_alloc(); + + char* ptr = reinterpret_cast(c) + sizeof(chunk); + + c->m_next = cl->m_head; + cl->m_head = c; + cl->m_free = sz; + cl->m_ptr = ptr; + + return ptr; +} + +inline void zone::push_finalizer(void (*func)(void*), void* data) +{ + m_finalizer_array.push(func, data); +} + +template +inline void zone::push_finalizer(msgpack::unique_ptr obj) +{ + m_finalizer_array.push(&zone::object_delete, obj.release()); +} + +inline void zone::clear() +{ + m_finalizer_array.clear(); + m_chunk_list.clear(m_chunk_size); +} + +inline void zone::swap(zone& o) +{ + std::swap(*this, o); +} + +template +void zone::object_delete(void* obj) +{ + delete static_cast(obj); +} + +template +void zone::object_destruct(void* obj) +{ + static_cast(obj)->~T(); +} + +inline void zone::undo_allocate(size_t size) +{ + m_chunk_list.m_ptr -= size; + m_chunk_list.m_free += size; +} + + +template +T* zone::allocate(Args... args) +{ + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); + try { + m_finalizer_array.push(&zone::object_destruct, x); + } catch (...) { + undo_allocate(sizeof(T)); + throw; + } + try { + return new (x) T(args...); + } catch (...) { + --m_finalizer_array.m_tail; + undo_allocate(sizeof(T)); + throw; + } +} + +inline std::size_t aligned_size( + std::size_t size, + std::size_t align) { + return (size + align - 1) / align * align; +} + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_CPP11_ZONE_HPP diff --git a/third_party/msgpack/include/msgpack/v1/detail/cpp11_zone_decl.hpp b/third_party/msgpack/include/msgpack/v1/detail/cpp11_zone_decl.hpp new file mode 100644 index 000000000000..367501844897 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/detail/cpp11_zone_decl.hpp @@ -0,0 +1,55 @@ +// +// MessagePack for C++ memory pool +// +// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_CPP11_ZONE_DECL_HPP +#define MSGPACK_V1_CPP11_ZONE_DECL_HPP + +#include "msgpack/versioning.hpp" + +#include +#include +#include + +#include "msgpack/cpp_config.hpp" + +#ifndef MSGPACK_ZONE_CHUNK_SIZE +#define MSGPACK_ZONE_CHUNK_SIZE 8192 +#endif + +#ifndef MSGPACK_ZONE_ALIGN +#define MSGPACK_ZONE_ALIGN sizeof(void*) +#endif + +#if defined(_MSC_VER) +#define MSGPACK_ZONE_ALIGNOF(type) __alignof(type) +#else +#define MSGPACK_ZONE_ALIGNOF(type) __alignof__(type) +#endif +// For a compiler that doesn't support __alignof__: +// #define MSGPACK_ZONE_ALIGNOF(type) MSGPACK_ZONE_ALIGN + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +class zone; + +std::size_t aligned_size( + std::size_t size, + std::size_t align = MSGPACK_ZONE_ALIGN); + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_CPP11_ZONE_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/fbuffer.hpp b/third_party/msgpack/include/msgpack/v1/fbuffer.hpp new file mode 100644 index 000000000000..265af19baf24 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/fbuffer.hpp @@ -0,0 +1,60 @@ +// +// MessagePack for C++ FILE* buffer adaptor +// +// Copyright (C) 2013 Vladimir Volodko +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_FBUFFER_HPP +#define MSGPACK_V1_FBUFFER_HPP + +#include "msgpack/v1/fbuffer_decl.hpp" + +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +class fbuffer { +public: + explicit fbuffer(FILE* file) : m_file(file) { } + +public: + void write(const char* buf, unsigned int len) + { + if (1 != fwrite(buf, len, 1, m_file)) { + throw std::runtime_error("fwrite() failed"); + } + } + + FILE* file() const + { + return m_file; + } + +#if defined(MSGPACK_USE_CPP03) +private: + fbuffer(const fbuffer&); + fbuffer& operator=(const fbuffer&); +#else // defined(MSGPACK_USE_CPP03) + fbuffer(const fbuffer&) = delete; + fbuffer& operator=(const fbuffer&) = delete; +#endif // defined(MSGPACK_USE_CPP03) + +private: + FILE* m_file; +}; + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_FBUFFER_HPP diff --git a/third_party/msgpack/include/msgpack/v1/fbuffer_decl.hpp b/third_party/msgpack/include/msgpack/v1/fbuffer_decl.hpp new file mode 100644 index 000000000000..1e9726a6a3af --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/fbuffer_decl.hpp @@ -0,0 +1,32 @@ +// +// MessagePack for C++ FILE* buffer adaptor +// +// Copyright (C) 2013-2016 Vladimir Volodko and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_FBUFFER_DECL_HPP +#define MSGPACK_V1_FBUFFER_DECL_HPP + +#include "msgpack/versioning.hpp" + +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +class fbuffer; + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_V1_FBUFFER_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/iterator.hpp b/third_party/msgpack/include/msgpack/v1/iterator.hpp new file mode 100644 index 000000000000..fac593752591 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/iterator.hpp @@ -0,0 +1,40 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 MIZUKI Hirata +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_V1_ITERATOR_HPP +#define MSGPACK_V1_ITERATOR_HPP +#if !defined(MSGPACK_USE_CPP03) + +#include "msgpack/v1/fbuffer_decl.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +inline msgpack::object_kv* begin(msgpack::object_map &map) { return map.ptr; } +inline const msgpack::object_kv* begin(const msgpack::object_map &map) { return map.ptr; } +inline msgpack::object_kv* end(msgpack::object_map &map) { return map.ptr + map.size; } +inline const msgpack::object_kv* end(const msgpack::object_map &map) { return map.ptr + map.size; } + +inline msgpack::object* begin(msgpack::object_array &array) { return array.ptr; } +inline const msgpack::object* begin(const msgpack::object_array &array) { return array.ptr; } +inline msgpack::object* end(msgpack::object_array &array) { return array.ptr + array.size; } +inline const msgpack::object* end(const msgpack::object_array &array) { return array.ptr + array.size; } + +/// @cond +} +/// @endcond + +} + +#endif // !defined(MSGPACK_USE_CPP03) +#endif // MSGPACK_V1_ITERATOR_HPP diff --git a/third_party/msgpack/include/msgpack/v1/iterator_decl.hpp b/third_party/msgpack/include/msgpack/v1/iterator_decl.hpp new file mode 100644 index 000000000000..1bec2e380dc7 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/iterator_decl.hpp @@ -0,0 +1,40 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 MIZUKI Hirata +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_V1_ITERATOR_DECL_HPP +#define MSGPACK_V1_ITERATOR_DECL_HPP +#if !defined(MSGPACK_USE_CPP03) + +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +msgpack::object_kv* begin(msgpack::object_map &map); +const msgpack::object_kv* begin(const msgpack::object_map &map); +msgpack::object_kv* end(msgpack::object_map &map); +const msgpack::object_kv* end(const msgpack::object_map &map); + +msgpack::object* begin(msgpack::object_array &array); +const msgpack::object* begin(const msgpack::object_array &array); +msgpack::object* end(msgpack::object_array &array); +const msgpack::object* end(const msgpack::object_array &array); + +/// @cond +} +/// @endcond + +} + +#endif // !defined(MSGPACK_USE_CPP03) +#endif // MSGPACK_V1_ITERATOR_DECL_HPP diff --git a/third_party/msgpack/include/msgpack/v1/meta.hpp b/third_party/msgpack/include/msgpack/v1/meta.hpp new file mode 100644 index 000000000000..75ab7978d009 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/meta.hpp @@ -0,0 +1,53 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_V1_META_HPP +#define MSGPACK_V1_META_HPP + +#if !defined(MSGPACK_USE_CPP03) + +#include "msgpack/v1/meta_decl.hpp" + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + + + +namespace detail { + +template struct all_of_imp + : std::is_same, bool_pack>{}; + +template struct any_of_imp { + static const bool value = !std::is_same, bool_pack>::value; +}; + +} // namespace detail + +template struct seq {}; + +template +struct gen_seq : gen_seq {}; + +template +struct gen_seq<0, Is...> : seq {}; + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // !defined(MSGPACK_USE_CPP03) + +#endif // MSGPACK_V1_META_HPP diff --git a/third_party/msgpack/include/msgpack/v1/meta_decl.hpp b/third_party/msgpack/include/msgpack/v1/meta_decl.hpp new file mode 100644 index 000000000000..c3254e7607e2 --- /dev/null +++ b/third_party/msgpack/include/msgpack/v1/meta_decl.hpp @@ -0,0 +1,57 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2015-2016 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_V1_META_DECL_HPP +#define MSGPACK_V1_META_DECL_HPP + +#if !defined(MSGPACK_USE_CPP03) + +#include "msgpack/versioning.hpp" +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace detail { + +template struct bool_pack; + +template struct all_of_imp; + +template struct any_of_imp; + +} // namespace detail + +template